Question about uboot initialisation

Dear all,
Is there any way that allows us to know that uboot has initialised all his peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad initialisation and choose a different uboot .
Thanks for your answer in advance. Aubin

Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised all his peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad initialisation and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed successfully.
Regards, Simon

Hi Simon,
Thanks for your answer.
The script that you are telling it is Env.txt right ?
What is a 'dm tree' ? Please could you provide me more infos about this ?
Thanks for your answer in advance.
On Sat, 27 Aug 2022 at 02:21, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised all
his
peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad
initialisation
and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed successfully.
Regards, Simon

Hi Simon, I got what is the 'dm tree' which is a driver model. This command could be done only in uboot stage. but i got the situation in which the initialisation of u-boot has not finished yet as showing in the following picture.
[image: image.png] .i would like to know what is wrong in the initialisation ?
Best Regard, Aubin
On Mon, 29 Aug 2022 at 05:24, momo aubin aubinno@gmail.com wrote:
Hi Simon,
Thanks for your answer.
The script that you are telling it is Env.txt right ?
What is a 'dm tree' ? Please could you provide me more infos about this ?
Thanks for your answer in advance.
On Sat, 27 Aug 2022 at 02:21, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised all
his
peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad
initialisation
and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed successfully.
Regards, Simon

Hi Aubin,
On Mon, 29 Aug 2022 at 01:40, momo aubin aubinno@gmail.com wrote:
Hi Simon, I got what is the 'dm tree' which is a driver model. This command could be done only in uboot stage. but i got the situation in which the initialisation of u-boot has not finished yet as showing in the following picture.
.i would like to know what is wrong in the initialisation ?
Please try to avoid top posting.
I think the best thing is to move to the latest U-Boot. You are about 9 years behind! But as to your question, I am really not sure. If it is a TI board, you could try asking them?
Regards, Simon
Best Regard, Aubin
On Mon, 29 Aug 2022 at 05:24, momo aubin aubinno@gmail.com wrote:
Hi Simon,
Thanks for your answer.
The script that you are telling it is Env.txt right ?
What is a 'dm tree' ? Please could you provide me more infos about this ?
Thanks for your answer in advance.
On Sat, 27 Aug 2022 at 02:21, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised all his peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad initialisation and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed successfully.
Regards, Simon

Hi Simon,
Thanks for getting back to me.
How can I avoid top posting ? i'm a new
How uboot know that the kernel has started ? If the system is blocked during the u-boot stage, is it possible to restart all the systems ? It is possible to put a timer in the u-boot stage in case of the kernel has not started , can the system reboot by choosing another u-boot ?
Thanks for your answer in advance. Aubin
On Tue, 30 Aug 2022 at 04:30, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Mon, 29 Aug 2022 at 01:40, momo aubin aubinno@gmail.com wrote:
Hi Simon, I got what is the 'dm tree' which is a driver model. This command could
be done only in uboot stage. but i got the situation in which the initialisation of u-boot has not finished yet as showing in the following picture.
.i would like to know what is wrong in the initialisation ?
Please try to avoid top posting.
I think the best thing is to move to the latest U-Boot. You are about 9 years behind! But as to your question, I am really not sure. If it is a TI board, you could try asking them?
Regards, Simon
Best Regard, Aubin
On Mon, 29 Aug 2022 at 05:24, momo aubin aubinno@gmail.com wrote:
Hi Simon,
Thanks for your answer.
The script that you are telling it is Env.txt right ?
What is a 'dm tree' ? Please could you provide me more infos about this
?
Thanks for your answer in advance.
On Sat, 27 Aug 2022 at 02:21, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised
all his
peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad
initialisation
and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for
U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed
successfully.
Regards, Simon

Hi Momo,
On Sun, 11 Sept 2022 at 08:29, momo aubin aubinno@gmail.com wrote:
Hi Simon,
Thanks for getting back to me.
How can I avoid top posting ? i'm a new
You can do a web search for "top posting" which explains the issue better than I can.
How uboot know that the kernel has started ?
Generally it does not. U-Boot's job is typically over once it jumps to the kernel.
If the system is blocked during the u-boot stage, is it possible to restart all the systems ? It is possible to put a timer in the u-boot stage in case of the kernel has not started , can the system reboot by choosing another u-boot ?
You can use a watchdog timer to reboot the system. It can be set up in U-Boot, then it Linux does not kick it in time, it will cause a reboot. To choose another U-Boot, you would need to do some scripting, or use mender. There is some work on VBE going on (U-Boot standard boot) but it will take a while to all land.
Regards, SImon
Thanks for your answer in advance. Aubin
On Tue, 30 Aug 2022 at 04:30, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Mon, 29 Aug 2022 at 01:40, momo aubin aubinno@gmail.com wrote:
Hi Simon, I got what is the 'dm tree' which is a driver model. This command could be done only in uboot stage. but i got the situation in which the initialisation of u-boot has not finished yet as showing in the following picture.
.i would like to know what is wrong in the initialisation ?
Please try to avoid top posting.
I think the best thing is to move to the latest U-Boot. You are about 9 years behind! But as to your question, I am really not sure. If it is a TI board, you could try asking them?
Regards, Simon
Best Regard, Aubin
On Mon, 29 Aug 2022 at 05:24, momo aubin aubinno@gmail.com wrote:
Hi Simon,
Thanks for your answer.
The script that you are telling it is Env.txt right ?
What is a 'dm tree' ? Please could you provide me more infos about this ?
Thanks for your answer in advance.
On Sat, 27 Aug 2022 at 02:21, Simon Glass sjg@chromium.org wrote:
Hi Aubin,
On Fri, 26 Aug 2022 at 06:41, momo aubin aubinno@gmail.com wrote:
Dear all,
Is there any way that allows us to know that uboot has initialised all his peripherals before starting loading kernel ?
The goal of this check is to reset the board in case of bad initialisation and choose a different uboot .
Thanks for your answer in advance. Aubin
If there is a failure then it likely results in an error-return code from board_init_f() or board_init_r(). These generally halt U-Boot / cause a reboot. But this only covers the peripherals that U-Boot sets up early, like serial, clocks, pinctrl, MMC, PCI, etc.
U-Boot typically does not init a peripheral unless it is needed for U-Boot.
While U-Boot is running (e.g. a script) it may start up other peripherals (e.g. to read a kernel from USB) and in those cases errors can be handled by the script.
You can use 'dm tree' to see what devices have been probed successfully.
Regards, Simon
participants (2)
-
momo aubin
-
Simon Glass