Hi, I am trying to boot the T1040RDB in 64-bit mode and am encountering a problem.
First, I configured a yocto environment for 64-bit "fsl-setup-poky t1040rdb-64b" and built my images.
Next, I'm trying to do a tftp boot using the exact same method I can use successfully with the 32-bit build but with the 64-bit images instead. The steps are described in section 11.2 of the QorIQ T1040 RDB Quick start. Basically, I load my 64-bit uImage into 0x1000000, the rootfs into 0x200000 and the dtb into 0xc00000 and finally do a bootm.
After I run boot I get the following console output with the error on the final line:
Bytes transferred = 5103719 (4de067 hex)
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: 5103655 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: 3308708 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 2fcd8000, end 2ffffca4 ... OK
ERROR: image is not a fdt - must RESET the board to recover.
If I just tftp over the dtb file to 0xc00000 and examine it using the fdt command from u-boot everything looks fine.
=> run my_dtb
=> fdt addr 0xc00000
=> fdt header
magic: 0xd00dfeed
totalsize: 0x8b47 (35655)
off_dt_struct: 0x38
off_dt_strings: 0x7ff0
off_mem_rsvmap: 0x28
version: 17
last_comp_version: 16
boot_cpuid_phys: 0x0
size_dt_strings: 0x757
size_dt_struct: 0x7fb8
number mem_rsv: 0x0
Any ideas what is going on? Is it okay that u-boot is in 36 bit addressing mode or do I need to rebuild part of the flash?
Thanks, Jake
已解决! 转到解答。
Hello Jacob Tummond,
U-boot decompresses Linux Kernel image to lower address. The 64bit uImage size is larger than 32 bit uImage, dtb file is overwritten by the uncompressed Kernel image, you could use the following addresses to deploy images.
tftp 1000000 $dir/$bootfile;tftp 4000000 $dir/$ramdiskfile;tftp e00000 $dir/$fdtfile;setenv bootargs root=/dev/ram rw console=ttyS0,115200 $othbootargs;
bootm 1000000 4000000 e00000
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Jacob Tummond,
U-boot decompresses Linux Kernel image to lower address. The 64bit uImage size is larger than 32 bit uImage, dtb file is overwritten by the uncompressed Kernel image, you could use the following addresses to deploy images.
tftp 1000000 $dir/$bootfile;tftp 4000000 $dir/$ramdiskfile;tftp e00000 $dir/$fdtfile;setenv bootargs root=/dev/ram rw console=ttyS0,115200 $othbootargs;
bootm 1000000 4000000 e00000
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------