How do I find ARM Linux entry point when it fails to uncompress?
I am trying to boot Linux via U-boot on a custom board with i.MX6 (CPU
core is ARM Cortex A9)
We seem to have ported Das U-Boot successfully. But booting Linux fails at
the last U-Boot message: "Starting kernel ..."
Here is my relevant environment:
bootargs=console=ttymxc1,115200 vmalloc=400M root=/dev/mmcblk0p1 rootwait
consoleblank=0 earlyprintk video=mxcfb0:dev=lcd,LCD-ORTUS,if=RGB24
video=mxcfb1:dev=hdmi,1280x720M@60,if=RGB24 calibration tsdev=tsc2004
fbmem=10M,28M
bootcmd=ext2load mmc 0:1 10800000 /boot/uImage ; bootm 10800000
The boot output is
Loading file "/boot/uImage" from mmc device 0:1 (xxa1)
4043552 bytes read
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4043488 Bytes = 3.9 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
When I objdump the kernel, at address 80008000, I see the entry point at
arch/arm/kernel/head.S, and not arch/arm/boot/compressed/head.S
What I see is, the kernel does not even decompress. I tried adding some
register manipulation code to signal GPIOs in compressed/head.S with no
response.
My question is, how can I make sure U-Boot is calling the correct entry
point?
The exact same kernel binary successfully boots on Freescale's reference
board, using the same U-Boot commands.
No comments:
Post a Comment