[U-Boot] Unable to boot Linux Kernel on Media5200

Hi,
I'm trying to gentoo running on the Media5200 but am running into issues getting my kernel to boot. I am able to boot the kernel that came with freescale's BSP for the device, but when I boot my kernel things stall after Uncompressing Kernel Image:
## Booting image at 00400000 ... Image Name: Linux-2.6.30-mpc52xx Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315154 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
I'm not completely sure why my kernel isn't booting while freescale's is. I should have all the correct drivers enabled, but after uncompress kernel Image nothing shows up in the console or on screen (the freescale logo/u-boot screen stays on the screen though). I tried increasing the starting address for kicks, but that made no differnce. I also tried doing something like:
tftp 400000; bootm 400000
but that gave me the same results as well.
Yes, I am using uImage and not cuImage.
When I compile my kernel I issue:
make ARCH="powerpc" CROSS_COMPILE="powerpc-unknown-linux-gnu-" INSTALL_MOD_PATH="${SYSROOT}" "$@" EXTRAVERSION=-mpc52xx uImage
From what I know EXTRAVERSION being set to mpc52xx is unnecessary, but I
saw some people doing it so I tried it for kicks. It didn't make a difference.
Finally, my u-boot enviroment variables and version info are as follows:
U-Boot 1.1.5 (Jan 1 2007 - 00:01:12)
CPU: MPC5200 v2.2, Core v1.4 at 396 MHz Bus 132 MHz, IPB 132 MHz, PCI 33 MHz Board: Media5200 (FPGA 02090403) I2C: 85 kHz, ready DRAM: 128 MB FLASH: 64 MB PCI: Bus Dev VenId DevId Class Int 00 1c 10cf 201e 0380 00 00 1d 1057 5809 0680 00 GFX: CoralP at 0x40000000
Type "run tftp_nfs" to tfp kernel with nfs root
Hit any key to stop autoboot: 0 => print bootdelay=5 baudrate=115200 skipnetcheck=y skipidecheck=y autoload=no autostart=no install_usb=setenv script bootrc.img;run script_usb script_usb=run usbstart;fatload usb 0:${usbpart} ${script_addr} ${script};autoscr ${script_addr} usbstart=usb reset; usb storage usbpart=1 reset_env=erase 0xfff80000 0xfffbffff ethaddr=00:04:9f:00:6f:e0 script=bootrc.img resetserial=setenv stdout serial; setenv stderr serial; echo preboot=run resetserial; echo Type "run tftp_nfs" to tfp kernel with nfs root;echo kernel_flash_addr=ffd00000 jffs2args=setenv bootargs console=ttyPSC5,115200 root=/dev/mtdblock0 rw rootfstype=jffs2 nfsargs=setenv bootargs console=ttyPSC5,115200 root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) netdev=eth0 addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off panic=1 tftp_nfs=tftp $(kernel_ram_addr) $(bootfile);run nfsargs addip;bootm cpkernel=cp $(kernel_flash_addr) $(kernel_ram_addr) $(kernel_flash_size) flash_nfs=run nfsargs addip cpkernel; bootm $(kernel_ram_addr)) flash_jffs2=run jffs2args cpkernel; bootm $(kernel_ram_addr) bootcmd=run tftp_nfs ethact=FEC ETHERNET rootpath=/tftpboot/ltib bootfile=/tftpboot/uImage netmask=255.255.255.0 ipaddr=192.168.1.123 gatewayip=192.168.1.1 serverip=192.168.1.149 script_addr=0x400000 kernel_ram_addr=700000 kernel_flash_size=700000 stdin=serial stdout=serial stderr=serial
Any tips or advice would be greatly appreciated.
Thanks, Chris
Environment size: 1397/262140 bytes

Dear Christopher Beley,
In message 4AC7ADA4.2080404@wisc.edu you wrote:
I'm trying to gentoo running on the Media5200 but am running into issues getting my kernel to boot. I am able to boot the kernel that came with freescale's BSP for the device, but when I boot my kernel things stall after Uncompressing Kernel Image:
## Booting image at 00400000 ... Image Name: Linux-2.6.30-mpc52xx Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315154 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
I don't see any message about loading the device tree blob here?
I'm not completely sure why my kernel isn't booting while freescale's is. I should have all the correct drivers enabled, but after uncompress kernel Image nothing shows up in the console or on screen (the freescale logo/u-boot screen stays on the scree n though). I tried increasing the starting address for kicks, but that made no differnce. I also tried doing something like:
Maybe you are using different image types?
tftp 400000; bootm 400000
but that gave me the same results as well.
Yes, I am using uImage and not cuImage.
With uImage, you need to load the device tree as well and pass it's address as argument to bootm .
Best regards,
Wolfgang Denk

Hi,
Thanks for the response. I think that was it and also, I now see I missed the FAQ that was similar to my question. Sorry for not noticing that.
Anyway, I haven't gotten things working just yet though. I try to do (for example):
setenv bootargs console=ttyPSC5,115200 root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) tftp 900000 /tftpboot/media5200.dtb tftp 500000 /tftpboot/uImage bootm 500000 - 900000
However, after it uncompresses the kernel I get:
## Loading RAMDisk Image at 00000000 ... Bad Magic Number
However, I do not have/want a RAMDisk and according to the FAQ I should just be able to use a - to say I don't have one (since I need to specify in the third argument the address of the dtb). Any idea what I could be doing wrong? I guess I could always create a dummy ram disk and see if it works...but...I shouldn't have to do that.
Also, more for curiosities sake, but I'm a little confused why I don't need to upload a dtb when using the kernel freescale supplies and many of the instructions I see online for different boards make no mention of the dtb. Is it just that the dtb is being appened to the end of the kernel image in those cases maybe?
Thanks, Chris
Wolfgang Denk wrote:
Dear Christopher Beley,
In message 4AC7ADA4.2080404@wisc.edu you wrote:
I'm trying to gentoo running on the Media5200 but am running into issues getting my kernel to boot. I am able to boot the kernel that came with freescale's BSP for the device, but when I boot my kernel things stall after Uncompressing Kernel Image:
## Booting image at 00400000 ... Image Name: Linux-2.6.30-mpc52xx Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315154 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
I don't see any message about loading the device tree blob here?
I'm not completely sure why my kernel isn't booting while freescale's is. I should have all the correct drivers enabled, but after uncompress kernel Image nothing shows up in the console or on screen (the freescale logo/u-boot screen stays on the scree n though). I tried increasing the starting address for kicks, but that made no differnce. I also tried doing something like:
Maybe you are using different image types?
tftp 400000; bootm 400000
but that gave me the same results as well.
Yes, I am using uImage and not cuImage.
With uImage, you need to load the device tree as well and pass it's address as argument to bootm .
Best regards,
Wolfgang Denk

Dear Christopher Beley,
In message 4AC8FB3E.3050609@wisc.edu you wrote:
setenv bootargs console=ttyPSC5,115200 root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) tftp 900000 /tftpboot/media5200.dtb tftp 500000 /tftpboot/uImage bootm 500000 - 900000
However, after it uncompresses the kernel I get:
## Loading RAMDisk Image at 00000000 ... Bad Magic Number
That means that you are running a very, very old version of U-Boot which does not incorporate any device tree support at all.
However, I do not have/want a RAMDisk and according to the FAQ I should just be able to use a - to say I don't have one (since I need to specify in the third argument the address of the dtb). Any idea what I could be doing wrong? I guess I could always create a dummy ram disk and see if it works...but...I shouldn't have to do that.
No, this is not needed. The problem here is that your old U-Boot does not know about the thre argument version of "bootm", and neither knows how to deal with the secoind argument of '-' - it tries to convert it into a ramdisk address, which reasults in the :Loading RAMDisk Image at 00000000" message, which fails.
Also, more for curiosities sake, but I'm a little confused why I don't need to upload a dtb when using the kernel freescale supplies and many of the instructions I see online for different boards make no mention of
This is probably ancient code from the Stone Age as well, where the Device Tree was not invented yet.
Best regards,
Wolfgang Denk

On Sat, Oct 3, 2009 at 2:01 PM, Christopher Beley cbeley@wisc.edu wrote:
Hi,
I'm trying to gentoo running on the Media5200 but am running into issues getting my kernel to boot. I am able to boot the kernel that came with freescale's BSP for the device, but when I boot my kernel things stall after Uncompressing Kernel Image:
## Booting image at 00400000 ... Image Name: Linux-2.6.30-mpc52xx Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315154 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Hi Christopher,
The version of u-boot that shipped with the media5200 does not include device tree support, so you need to use the cuImage.media5200 to boot the board. Unfortunately, you cannot use media5200.dts file that is currently in the kernel tree as-is because you first need to add a 'chosen' node to specify the console so that you can get boot output. Also, the u-boot image is buggy, and it cannot handle kernel images larger than about 1MB (from my brief experimentation).
I recently ported an up-to-date version of u-boot to the media5200, but I accidentally deleted the branch. I waspretty simple, so it would be easy for you to reproduce. Then you'd be able to use the normal 'bootm <kerneladdr> - <dtbaddr>' command to boot the system with a uImage.
I'm not completely sure why my kernel isn't booting while freescale's is. I should have all the correct drivers enabled, but after uncompress kernel Image nothing shows up in the console or on screen (the freescale logo/u-boot screen stays on the screen though). I tried increasing the starting address for kicks, but that made no differnce. I also tried doing something like:
The freescale kernel image is a much older image from the arch/ppc branch which doesn't use the device tree. There was a fair bit of upheaval as mpc5200 support moved from arch/ppc to arch/powerpc.
g.

Hi,
Thanks for getting back to me (sorry for the late response, I've had a lot going on). To be honest though, a lot of this is a little over my head. I was looking at some of your old patches and taking a look at the source for the total5200, which I think is pretty similar to the media5200, but am not totally sure how to go about it all. Could you maybe suggest some reading sources or tips on how to go about this? I've been looking at some documentation which describes what and where everything is, but I'm not really sure where to go from there. I'll probally have to do a fair amount of reading either way for this.
I never tried bringing the kernel down to 1MB, but i'm not sure what to do about the dts file either way.
--Chris
P.S. You know though, from the little I can find about the Media5200, I'm beginning to think it was never very popular.
Grant Likely wrote:
On Sat, Oct 3, 2009 at 2:01 PM, Christopher Beley cbeley@wisc.edu wrote:
Hi,
I'm trying to gentoo running on the Media5200 but am running into issues getting my kernel to boot. I am able to boot the kernel that came with freescale's BSP for the device, but when I boot my kernel things stall after Uncompressing Kernel Image:
## Booting image at 00400000 ... Image Name: Linux-2.6.30-mpc52xx Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2315154 Bytes = 2.2 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Hi Christopher,
The version of u-boot that shipped with the media5200 does not include device tree support, so you need to use the cuImage.media5200 to boot the board. Unfortunately, you cannot use media5200.dts file that is currently in the kernel tree as-is because you first need to add a 'chosen' node to specify the console so that you can get boot output. Also, the u-boot image is buggy, and it cannot handle kernel images larger than about 1MB (from my brief experimentation).
I recently ported an up-to-date version of u-boot to the media5200, but I accidentally deleted the branch. I waspretty simple, so it would be easy for you to reproduce. Then you'd be able to use the normal 'bootm <kerneladdr> - <dtbaddr>' command to boot the system with a uImage.
I'm not completely sure why my kernel isn't booting while freescale's is. I should have all the correct drivers enabled, but after uncompress kernel Image nothing shows up in the console or on screen (the freescale logo/u-boot screen stays on the screen though). I tried increasing the starting address for kicks, but that made no differnce. I also tried doing something like:
The freescale kernel image is a much older image from the arch/ppc branch which doesn't use the device tree. There was a fair bit of upheaval as mpc5200 support moved from arch/ppc to arch/powerpc.
g.

On Wed, Oct 14, 2009 at 5:04 PM, Christopher Beley cbeley@wisc.edu wrote:
Hi,
Thanks for getting back to me (sorry for the late response, I've had a lot going on). To be honest though, a lot of this is a little over my head. I was looking at some of your old patches and taking a look at the source for the total5200, which I think is pretty similar to the media5200, but am not totally sure how to go about it all. Could you maybe suggest some reading sources or tips on how to go about this? I've been looking at some documentation which describes what and where everything is, but I'm not really sure where to go from there. I'll probally have to do a fair amount of reading either way for this.
Look at an existing MPC5200 u-boot board port (like the phytec pcm030) and duplicate it. It also helps to look at the original media5200 u-boot patches that Freescale shipped on the software CD-ROM.
I never tried bringing the kernel down to 1MB, but i'm not sure what to do about the dts file either way.
You really need to update u-boot I think. Getting the kernel down below 1MB and still be useful will be hard. I would do it for you, it's not really all that hard, but I don't really have any time at the moment.
P.S. You know though, from the little I can find about the Media5200, I'm beginning to think it was never very popular.
It really wasn't. I've got one, and you're the only person I know outside of Freescale who has another.
g.
participants (3)
-
Christopher Beley
-
Grant Likely
-
Wolfgang Denk