[U-Boot-Users] do_run_[os]. why restart if there is a minor problem?

Hi,
in function do_run_linux if it finds ramdisk's crc is bad or it's not "u-boot-ized" (mkimage) it resets the board. and many other similar minor things. so why restart? I propose making do_run_linux return something to indicate there is no need to reboot the board and bootm checks this value and returns.
if you find this may cause backwards compatibility problems, let's make it depending on some preprocessor define.
I can submit a patch if you say ok.
__ Thanks, Ara

In message 005501c50539$af259e00$1000000a@araavanesyan you wrote:
in function do_run_linux if it finds ramdisk's crc is bad or it's not "u-boot-ized" (mkimage) it resets the board. and many other similar minor things. so why restart? I propose making do_run_linux return something to indicate there is no need to reboot the board and bootm checks this value and returns.
Your proposal indicates that you did not follow the boot process. What is being done right before the ramdisk is being testet? Right, we uncompressed and loaded the Linux kernel, writing it to RAM starting at address 0x0000, thus overwriting the exception vertors installed by U-Boot.
if you find this may cause backwards compatibility problems, let's make it depending on some preprocessor define.
I can submit a patch if you say ok.
I'd be really, really surprised if you could do that. Actually U-Boot will crash at the next timer interrupt, when it junps into completely unexpected handler code.
I strongly recommend to check your ideas before posting.
I also recommend to read the code, ideally before posting. Pay special attention to comments. Sometimes these are actually helpful, like here:
"common/cmd_bootm.c":
284 /* 285 * We have reached the point of no return: we are going to 286 * overwrite all exception vector code, so we cannot easily 287 * recover from any failures any more... 288 */
Best regards,
Wolfgang Denk

Hi Wolfgang,
Subject: Re: [U-Boot-Users] do_run_[os]. why restart if there is a minor problem?
In message 005501c50539$af259e00$1000000a@araavanesyan you wrote:
in function do_run_linux if it finds ramdisk's crc is bad or it's not "u-boot-ized" (mkimage) it resets the board. and many other similar
minor
things. so why restart? I propose making do_run_linux return something
to
indicate there is no need to reboot the board and bootm checks this
value
and returns.
Your proposal indicates that you did not follow the boot process. What is being done right before the ramdisk is being testet? Right, we uncompressed and loaded the Linux kernel, writing it to RAM starting at address 0x0000, thus overwriting the exception vertors installed by U-Boot.
Oh, my changes were working for my board (seems because my hdr->ih_load == 0x8000). Anyways, I'm sure u-boot should not enter into un-recoverable state before making sure there are no Minor errors, such as ramdisk's checksum etc. How about calling a function like can_run_[os] before entering into un-recoverable state? I think this would make u-boot more user friendly.
__ Thanks, Ara

In message 002101c505df$adfd6d40$1000000a@araavanesyan you wrote:
Oh, my changes were working for my board (seems because my hdr->ih_load == 0x8000).
This will not work on PowerPC systems where the kernel must be loaded to physical address 0x000.
I think this would make u-boot more user friendly.
Maybe.
Best regards,
Wolfgang Denk

Hi Wolfgang,
----- Original Message ----- From: "Wolfgang Denk" wd@denx.de To: "Ara Avanesyan" araav@hylink.am Cc: u-boot-users@lists.sourceforge.net Sent: Saturday, January 29, 2005 9:10 PM Subject: Re: [U-Boot-Users] do_run_[os]. why restart if there is a minor problem?
In message 002101c505df$adfd6d40$1000000a@araavanesyan you wrote:
Oh, my changes were working for my board (seems because my hdr->ih_load
==
0x8000).
This will not work on PowerPC systems where the kernel must be loaded to physical address 0x000.
I think this would make u-boot more user friendly.
Maybe.
So what's next?
btw, a small typo in tools/env/fw_env.c:line 729 DEVNAME (2) should be DEVNAME (1) :)
__ Thanks, Ara
participants (2)
-
Ara Avanesyan
-
Wolfgang Denk