[U-Boot-Users] Cannot boot from a uImage on the lite5200

I'm having problems getting u-boot to boot linux from a uImage on my lite5200 eval board. I can load a zImage into ram (@ 0x200000) and use the go command to boot it with no problems. When I load a uImage I get the bootup debug banners from the linux kernel and then the board resets before the "Linux version ..." banner (and then my bdi2000 halts the board). I've included the console logs for both cases below.
I noticed that the uImage has the load address set to 0x00000000 instead of the 0x00800000 that the zImage uses. Is this correct? I did try a uImage with load address set to 0x00800000, but I saw no difference.
BTW, ignore the "unable to mount root filesystem" kernel panic in the zImage case; I know how to fix that.
Has anybody had similar problems? I'm digging deeper into it now, but any suggestions would be appreciated.
Thanks, g.
U-Boot: 1.1.2 (I don't have easy access to CVS due to firewall) Linux kernel: stock 2.6.11 (I also don't have easy access to bk trees, otherwise I'd use Sylvain's tree) Toolchain: gcc 3.4.1 built from crosstool 0.30
Loaded zImage and jumped to 0x200000: --------------------
U-Boot 1.1.2 (Apr 18 2005 - 14:20:37)
CPU: MPC5200 v1.2 at 396 MHz Bus 132 MHz, IPB 66 MHz, PCI 33 MHz Board: Motorola MPC5200 (IceCube) I2C: 85 kHz, ready DRAM: 64 MB FLASH: 16 MB PCI: Bus Dev VenId DevId Class Int 00 1a 1057 5803 0680 00 In: serial Out: serial Err: serial Net: FEC ETHERNET IDE: Bus 0: not available
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0 => => => tftpboot 200000 lite5200/zImage.lite5200
U-Boot 1.1.2 (Apr 18 2005 - 14:20:37)
CPU: MPC5200 v1.2 at 396 MHz Bus 132 MHz, IPB 66 MHz, PCI 33 MHz Board: Motorola MPC5200 (IceCube) I2C: 85 kHz, ready DRAM: 64 MB FLASH: 16 MB PCI: Bus Dev VenId DevId Class Int 00 1a 1057 5803 0680 00 In: serial Out: serial Err: serial Net: FEC ETHERNET IDE: Bus 0: not available
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0 => tftpboot 200000 lite5200/zImage.lite5200 Using FEC ETHERNET device TFTP from server 192.168.100.1; our IP address is 192.168.100.10 Filename 'lite5200/zImage.lite5200'. Load address: 0x200000 Loading: ################################################################# ################################################################# ##### done Bytes transferred = 688691 (a8233 hex) => loaded at: 00200000 0029A130 relocated to: 00800000 0089A130 zimage at: 008057B9 00897E50 avail ram: 00400000 00800000
Linux/PPC load: console=ttyS0 root=/dev/ram0 rw Uncompressing Linux...done. Now booting the kernel id mach(): done MMU:enter MMU:hw init MMU:mapin MMU:setio MMU:exit setup_arch: enter setup_arch: bootmem ocp: exit arch: exit Linux version 2.6.11 (glikely@trillian) (gcc version 3.4.1) #1 Mon Apr 18 14:35: 36 MDT 2005 Built 1 zonelists Kernel command line: console=ttyS0 root=/dev/ram0 rw PID hash table entries: 512 (order: 9, 8192 bytes) Console: colour dummy device 80x25 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 63520k available (904k kernel code, 300k data, 84k init, 0k highmem) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Linux NoNET1.0 for Linux 2.6
PCI: Probing PCI hardware Serial: MPC52xx PSC driver ttyS0 at MMIO 0xf0002000 (irq = 39) is a MPC52xx PSC io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize mice: PS/2 mouse device common for all mice Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) <0>Rebooting in 180 seconds..
Loaded uImage and booted at 0x200000: --------------------
U-Boot 1.1.2 (Apr 18 2005 - 14:20:37)
CPU: MPC5200 v1.2 at 396 MHz Bus 132 MHz, IPB 66 MHz, PCI 33 MHz Board: Motorola MPC5200 (IceCube) I2C: 85 kHz, ready DRAM: 64 MB FLASH: 16 MB PCI: Bus Dev VenId DevId Class Int 00 1a 1057 5803 0680 00 In: serial Out: serial Err: serial Net: FEC ETHERNET IDE: Bus 0: not available
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0 => => => tftpboot 200000 /tftpboot/lite5200/uImage Using FEC ETHERNET device TFTP from server 192.168.100.1; our IP address is 192.168.100.10 Filename '/tftpboot/lite5200/uImage'. Load address: 0x200000 Loading: ################################################################# ##################################################### done Bytes transferred = 599767 (926d7 hex) => bootm 200000 ## Booting image at 00200000 ... Image Name: Linux-2.6.11 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 599703 Bytes = 585.6 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK id mach(): done MMU:enter MMU:hw init MMU:mapin MMU:setio MMU:exit setup_arch: enter setup_arch: bootmem ocp: exit arch: exit

In message 528646bc0504190945638591fc@mail.gmail.com you wrote:
I'm having problems getting u-boot to boot linux from a uImage on my lite5200 eval board. I can load a zImage into ram (@ 0x200000) and use the go command to boot it with no problems. When I load a uImage
This means that your kernel is probably ok in general...
I get the bootup debug banners from the linux kernel and then the board resets before the "Linux version ..." banner (and then my
...and this means that most preobably it is not ported and/or configured for booting with U-Boot.
I noticed that the uImage has the load address set to 0x00000000 instead of the 0x00800000 that the zImage uses. Is this correct? I
Yes, this is correct.
Best regards,
Wolfgang Denk

On 4/19/05, Wolfgang Denk wd@denx.de wrote:
In message 528646bc0504190945638591fc@mail.gmail.com you wrote:
I'm having problems getting u-boot to boot linux from a uImage on my lite5200 eval board. I can load a zImage into ram (@ 0x200000) and use the go command to boot it with no problems. When I load a uImage
This means that your kernel is probably ok in general...
I get the bootup debug banners from the linux kernel and then the board resets before the "Linux version ..." banner (and then my
...and this means that most preobably it is not ported and/or configured for booting with U-Boot.
What specifically needs to be done to configure a kernel for use with u-boot? From the documentation I could only find references to using mkimage to prepare an image (which I've done).
The kernel I was using contains the mpc5200 patches from Sylvain, so it should be "u-boot ready". I've since moved up to stock linux kernel 2.6.12rc2 which includes the lastest patches for the mpc5200, but it made no difference. I could not find anything in the kernel config file related to u-boot for this port. The file Documentation/powerpc/mpc52xx.txt in the kernel tree states that a 'make uImage' should build an image bootable by u-boot. (The Makefile simply calls mkimage for the uImage target)
I've also updated to CVS u-boot, but again no change (but solved my FEC problems nicely)
BTW, I do get some output from the kernel. The pre-boot debug messages (from "id mach(): done" to "arch: exit") from arch/ppc/kernel/setup.c get displayed just like with the zImage. So the jump into inital setup code seems to be working.
Thanks in advance, g.

In message 528646bc0504201254fade191@mail.gmail.com you wrote:
What specifically needs to be done to configure a kernel for use with u-boot? From the documentation I could only find references to using mkimage to prepare an image (which I've done).
You must use the raw kernel image, without the kernel bootstrap stuff. And you must make sure to pass the parameters correctly (struct bd_info). See also the FAQ at http://www.denx.de/twiki/bin/view/DULG/LinuxHangsAfterUncompressingKernel
but it made no difference. I could not find anything in the kernel config file related to u-boot for this port. The file
This is probably the problem.
Documentation/powerpc/mpc52xx.txt in the kernel tree states that a 'make uImage' should build an image bootable by u-boot. (The Makefile simply calls mkimage for the uImage target)
This is probably not enough. At least you must make sure not to include any bootstrap stuff.
Best regards,
Wolfgang Denk

On 4/20/05, Wolfgang Denk wd@denx.de wrote:
In message 528646bc0504201254fade191@mail.gmail.com you wrote:
What specifically needs to be done to configure a kernel for use with u-boot? From the documentation I could only find references to using mkimage to prepare an image (which I've done).
You must use the raw kernel image, without the kernel bootstrap stuff. And you must make sure to pass the parameters correctly (struct bd_info). See also the FAQ at http://www.denx.de/twiki/bin/view/DULG/LinuxHangsAfterUncompressingKernel
Do you mean the bootstrap stuff that's wrapped around a vmlinux.gz to create a zImage, or do you mean arch/ppc/kernel/setup.c and others? I'm building the uImage directly from the vmlinux.gz, so I don't have any of the zImage stuff.
but it made no difference. I could not find anything in the kernel config file related to u-boot for this port. The file
This is probably the problem.
Documentation/powerpc/mpc52xx.txt in the kernel tree states that a 'make uImage' should build an image bootable by u-boot. (The Makefile simply calls mkimage for the uImage target)
This is probably not enough. At least you must make sure not to include any bootstrap stuff.
I've got weird stuff happening here now. With the same uImage I've now seen three different behavious: 1. (most frequently) get initial setup banners ("id arch", et all). Crashes w/ board reset before kernel version banner 2. locks up before printing anything 3. kernel boots fine.
It's looking more like I've got a problem with the hardware configuration on the Linux side now. Time to step through init code....
g.

In message 528646bc050420163579a4fefd@mail.gmail.com you wrote:
Do you mean the bootstrap stuff that's wrapped around a vmlinux.gz to
right.
create a zImage, or do you mean arch/ppc/kernel/setup.c and others?=20 I'm building the uImage directly from the vmlinux.gz, so I don't have any of the zImage stuff.
OK.
It's looking more like I've got a problem with the hardware configuration on the Linux side now. Time to step through init code....
Can you try the same image on different hardware? Is this an original lite5200? [If yes, feel free to send me your kernel image and I will run it on our systems [not to the list, please]].
Best regards,
Wolfgang Denk

On 4/21/05, Wolfgang Denk wd@denx.de wrote:
In message 528646bc050420163579a4fefd@mail.gmail.com you wrote:
It's looking more like I've got a problem with the hardware configuration on the Linux side now. Time to step through init code....
Can you try the same image on different hardware? Is this an original lite5200? [If yes, feel free to send me your kernel image and I will run it on our systems [not to the list, please]].
Yes, it is an original lite5200. I've got another board that I haven't unpacked yet. I'll try that one and also send you my kernel image once I get into the office this afternoon. Thanks!
I was mulling over the problem last night, and I *think* that when I got my 2.6 kernel to boot it was immediately after briefly trying a 2.4 kernel based on the denx linuxppc_2_4 tree (I was compairing the boot sequences between the two kernels). After that the 2.6 kernel started booting correctly. I did not power cycle the board after trying the 2.4 kernel, I used my bdi2k to reset it. After I power cycled the board the 2.6 kernel stopped working again. I'm going to try to recreate the sequence of events once I'm in the office.

On 4/21/05, Grant Likely glikely@gmail.com wrote:
On 4/21/05, Wolfgang Denk wd@denx.de wrote:
In message 528646bc050420163579a4fefd@mail.gmail.com you wrote:
It's looking more like I've got a problem with the hardware configuration on the Linux side now. Time to step through init code....
Can you try the same image on different hardware? Is this an original lite5200? [If yes, feel free to send me your kernel image and I will run it on our systems [not to the list, please]].
Yes, it is an original lite5200. I've got another board that I haven't unpacked yet. I'll try that one and also send you my kernel image once I get into the office this afternoon. Thanks!
BAH! The problem was between my keyboard and my chair.
The zImage used the kernel command line from .config. The uImage got passed the command line from u-boot. The bootargs environment variable did not specify a console. Add "console=ttyS0,115200" and everything works.... I should know better.
Thank you very much for the help. g.
participants (2)
-
Grant Likely
-
Wolfgang Denk