
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:
- 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.
- 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.
- 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