[U-Boot] uboot newbie question on booting ep405 board

Hi,
I am new to using uBoot and learning with a EP405 board.
The board is up with the original uBoot that comes with it. But I have encountered some problems booting up Linux. I wonder if anyone can give me some hint or help what went wrong.
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.
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 Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 00000000 ... Bad Magic Number
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.

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

Hi Wolfgang,
Thanks for the suggestions. I think I will try to upgrade the u-boot to the latest version. buildroot can also build u-boot image. I 'll look into it.
David
On Sun, Apr 14, 2013 at 10:51 PM, Wolfgang Denk wd@denx.de wrote:
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
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de We, the unwilling, led by the unknowing, are doing the impossible for the ungrateful. We have done so much, for so long, with so little, we are now qualified to do anything with nothing.

Hi Wolfgang or others:
I am trying to build a new uboot image version 2013.01.01 in buildroot. The buildroot "make menuconfig" asks for "uboot board name". I tried to give it "EP405" but this failed the build as it wasn't able to find such a configuration. How can I find out about the right name for the board used by buildroot? I think my board is just a generic ppc board and should have been supported long ago.
Thanks.
David
On Mon, Apr 15, 2013 at 10:55 AM, David Li w.david.li@gmail.com wrote:
Hi Wolfgang,
Thanks for the suggestions. I think I will try to upgrade the u-boot to the latest version. buildroot can also build u-boot image. I 'll look into it.
David
On Sun, Apr 14, 2013 at 10:51 PM, Wolfgang Denk wd@denx.de wrote:
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
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de We, the unwilling, led by the unknowing, are doing the impossible for the ungrateful. We have done so much, for so long, with so little, we are now qualified to do anything with nothing.

Hi David,
On 19.04.2013 01:24, David Li wrote:
I am trying to build a new uboot image version 2013.01.01 in buildroot. The buildroot "make menuconfig" asks for "uboot board name". I tried to give it "EP405" but this failed the build as it wasn't able to find such a configuration. How can I find out about the right name for the board used by buildroot? I think my board is just a generic ppc board and should have been supported long ago.
IIRC, then the "EP405" board was has never been supported in mainline U-Boot. From the Linux kernel (which seem to support it) I can see that it is the "Embedded Planet EP405" board. Is this correct?
I think you have 2 options:
a) Get the U-Boot sources from the board vendor and modify/port it to the latest version.
b) Port U-Boot to the EP405 from scratch using some other 405 boards as reference. That should no be that hard.
Hope this helps.
Thanks, Stefan
participants (3)
-
David Li
-
Stefan Roese
-
Wolfgang Denk