Как найти точку входа ARM Linux, когда она не может распаковать?

Я пытаюсь загрузить Linux через U-boot на специальной плате с i.MX6 (ядро процессора - ARM Cortex A9)

Похоже, мы успешно портировали Das U-Boot (2009.08). Но загрузка Linux завершается неудачно при последнем сообщении U-Boot: "Стартовое ядро ... »

Вот моя соответствующая среда:

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

Выход загрузки

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 ...  

Когда я objdump ядро, по адресу 80008000, я вижу точку входа в arch / arm / kernel / head.S, а не arch / arm / boot / сжатый / head.S

Я вижу, что ядро даже не распаковывается. Я попытался добавить некоторый код манипуляции с регистром, чтобы сигнализировать GPIO в сжатых / head.S без ответа.

У меня вопрос, как я могу убедиться, что U-Boot вызывает правильную точку входа?

Точно такой же двоичный файл ядра успешно загружается на Freescale 'Справочная доска с использованием тех же команд U-Boot.

РЕДАКТИРОВАТЬ: я добавил несколько следов в U-Boot. Непосредственно перед вызовом ядра указатель theKernel - 10008000, а не 10800000. Значит ли это, что U-boot прыгает в неправильном месте?

Ответы на вопрос(3)

Ваш ответ на вопрос