[U-Boot-Users] intended behavior of bootm

Matthias Fuchs matthias.fuchs at esd-electronics.com
Mon Apr 21 16:58:25 CEST 2008


Hi,

after going through the boom code I found out, that
setting the 'autostart' variable to 'no' brings me a little closer
to what I want. But finally I end up
in the enable_interrupts() at the very end of do_bootm(). This freezes
my system. The reason for this is the Linux kernel image that is loaded to address 0
and that overwrites the vector table. So reenabling the interrupts in U-Boot with
Linux interrupt table is a bad idea.

So what's the best idea to fix this? I could copy the vector table onto the stack
in do_bootm() and copy it back just before reenabling the interrupts.

Any better idea?

Matthias

On Monday 21 April 2008 15:09, Matthias Fuchs wrote:
> Hi,
> 
> I am wondering if bootm behaves correctly on CRC errors in kernel and/or ramdisk images.
> This is what I observed:
> 
> 1) I loaded a Linux kernel into RAM at 0x200000 on a 405 system. I loaded an initial ramdisk images
> into RAM at address 0x300000. Now 'bootm 200000 300000' boots my system correctly.
> 
> 2) Same loading as above. But I made the kernel image CRC check fail (mw 220000 12345678).
> I get:
> ...
>    Verifying Checksum ... Bad Data CRC
> ERROR: can't get kernel image!
> =>
> 
> That's ok.
> 
> 3) Same loading as above. But I make the ramdisk CRC check fail (mw 320000 12345678).
> I get:
> ## Booting kernel from Legacy Image at 00200000 ...
> ...
> ## Loading init Ramdisk from Legacy Image at 00300000 ...
> ...
>    Verifying Checksum ... Bad Data CRC
> <system reset>
> U-Boot 1.3.2-00450-g77dd47f (Apr 21 2008 - 14:43:23)
> 
> Hmm, I expected the same behavior as for a corrupted kernel image.
> So what should be the correct behavior? I would like to get back to the prompt
> on any CRC error. So is this a bug?
> 
> Matthias




More information about the U-Boot mailing list