embedded – ERROR: Image is Not a FDT – Must RESET the Board to Recover

embeddedu-boot

I am attempting to boot the freescale 1040RDB and am having some difficulty. I'm using a pre-built SDK from Freescale that has a linux VB image with the yocto installation along with all of the yocto layers and configurations pre installed. I've been able to successfully run bitbake and am now trying to deploy the images on the target. Of course, the documentation from Freescale is completely useless. So through trial and error I've found what I think are the kernel image, root filesystem and FDT. I'm loading them onto the target using TFTP and then trying to boot from memory. Below is a capture of the target's serial terminal. The error is on the last line. At this point I'm wondering if something is wrong with the .dtb file or maybe I need to do something to prepare it. I've hexdumped the .dtb file and compared it against a pre-installed device tree in the target's flash and believe them to be similar types of data.

What does this error mean and what can I do to fix it?

=> tftp 0x01000000 uImage
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################
         1.3 MiB/s
done
Bytes transferred = 5103714 (4de062 hex)
=> tftp 0x02000000 rootfs.gz.u-boot
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'rootfs.gz.u-boot'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############################################################
         1.4 MiB/s
done
Bytes transferred = 3310270 (3282be hex)
=> tftp 0x00c00000 uImage.dtb      
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'uImage.dtb'.
Load address: 0xc00000
Loading: #######
         994.1 KiB/s
done
Bytes transferred = 35655 (8b47 hex)
=> bootm 0x01000000 0x02000000 0x00c00000
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   Linux-3.12.19-rt30-QorIQ-SDK-V1.
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    5103650 Bytes = 4.9 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:   fsl-image-minimal-t1040rdb-64b-2
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    3310206 Bytes = 3.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
   Booting using the fdt blob at 0xc00000
   Uncompressing Kernel Image ... OK
   Loading Ramdisk to 2fcd7000, end 2ffff27e ... OK
ERROR: image is not a fdt - must RESET the board to recover.

Best Answer

This seems like the memory at which fdt is getting corrupted (usually due to overwrite) when kernel image starts to un-compress. Try loading fdt at a higher address e.g. 0xe00000.

Related Question