
Dear Matthias,
in message 200804211509.43558.matthias.fuchs@esd-electronics.com you wrote:
I am wondering if bootm behaves correctly on CRC errors in kernel and/or ramdisk images. This is what I observed:
Most has already been said in previous replies, so here just a summary of the situation:
- 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.
This expectation is incorrect.
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?
No, it is not a bug. Kernel image and ramdisk image get processed sequentiually. As soon as you uncompress and copy the kernel image to it's load address (typically 0x0000 for PowerPC), it will overwrite the exception vectors used by U-Boot. The next interrupt (for example timer) would then kill kill you. That's why there is a point of no return just before we start uncompressing / loading the kernel image.
Any errors after this point can only be resolved by a reset.
That's intentional and documented. There are no intentions to change this behaviour.
Best regards,
Wolfgang Denk