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

Wolfgang Denk wd at denx.de
Fri Jan 28 22:06:38 CET 2005


In message <005501c50539$af259e00$1000000a at 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

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The human mind ordinarily operates at only ten percent of its capaci-
ty - the rest is overhead for the operating system.




More information about the U-Boot mailing list