
Dear David Li,
In message CAADET=eJPeCkxwsoHP5+D7pijbbHGK1XumGTaaDka-TRRVRh8A@mail.gmail.com you wrote:
I am new to using uBoot and learning with a EP405 board.
Which exact board is this?
Basically I built the Linux uImage and device tree blob for EP 405. Both were downloaded on to RAM - uImage at memory 0x200000 and ep405.dtb at 0x4000000.
Note that these addresses are way too low in any case.
When I used "bootm" to boot the kernel, I always get "Bad Magic Number" like this:
=> bootm 0x2000000 - 0x4000000 ## Booting image at 02000000 ... Image Name: Linux-3.7.8 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2571848 Bytes = 2.5 MB
Even your compressed kernel is bigger than the 2 MB where you load it; when uncompressing, it will overwrite both the tail of the UImage itself, and the DTB.
## Loading RAMDisk Image at 00000000 ... Bad Magic Number
Did you now wonder why it's talking about a ramdisk here? You did not pass a ramdisk address (at least you did not mean to).
U-Boot 1.2.0-gd35b508a-dirty (Sep 19 2007 - 14:13:23)
What's wrong? Why it's loading ramdisk at 0000000? I built the kernel and initramfs together in the uImage.
Your U-Boot is more than 6 years old; that is not only stone age, but even long before the introduction of device tree support. You cannot use this ancient U-Boot version to boot a recent LInux kernel with device tree support.
PLease update to a recent U-Boot version, or stick with Linux kernel versions of similar age, i. e. something like v2.6.19 or v.2.6.20 (yes, this is old crap, but so is your version of U-Boot).
Best regards,
Wolfgang Denk