Hello,
I created firmware image using LSDK with Yocto using following commands:
repo init -u https://github.com/nxp-qoriq/yocto-sdk -b kirkstone -m ls-5.15.71-2.2.0_distro.xml
repo sync
. setup-env -m ls1012ardb
cd ..
DISTRO=fsl-qoriq-distro MACHINE=ls1012ardb source distro-setup-env
bitbake fsl-image-lite
bitbake qoriq-composite-firmware
Updated Bootloader to support larger NOR flash chip (due to image generated by LSDK exceeds standard flash size).
Then booting up. Bootloader recognizes the flash chip, but unable to load kernel image:
Bad FIT kernel image format! (err=-22)
ERROR: can't get kernel image!
Boot log:
U-Boot 2022.04+fsl+g181859317b (Nov 15 2022 - 06:28:05 +0000)
SoC: LS1012AE Rev2.0 (0x87040020)
Clock Configuration:
CPU0(A53):1000 MHz
Bus: 250 MHz DDR: 1000 MT/s
Reset Configuration Word (RCW):
00000000: 0800000a 00000000 00000000 00000000
00000010: 35080000 c000000c 40000000 00001800
00000020: 00000000 00000000 00000000 00014571
00000030: 00000000 18c2a120 00000096 00000000
DRAM: 958 MiB
Using SERDES1 Protocol: 13576 (0x3508)
Core: 17 devices, 13 uclasses, devicetree: separate
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from SPIFlash... SF: Detected n25q00a with page size 256 Bytes, erase size 64 KiB, total 128 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Model: LS1012A RDB Board
Board: LS1012ARDB Version: RevE, boot from QSPI: bank1
Net: PFE class pe firmware for Linux
PFE tmu pe firmware for Linux
PFE class pe firmware for u-boot
PFE tmu pe firmware for u-boot
Warning: pfe_eth0 (eth0) using random MAC address - d2:55:81:08:20:1c
eth0: pfe_eth0
Warning: pfe_eth1 (eth1) using random MAC address - 6a:a7:87:70:bb:9a
, eth1: pfe_eth1
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
** Unable to read file / **
Failed to load '/'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk esdhc@1560000.blk...
Scanning disk esdhc@1580000.blk...
Found 3 disks
No EFI system partition
ERROR: invalid device tree
starting USB...
Bus usb3@2f00000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@2f00000 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Device 0: unknown device
PCIe1: pcie@3400000 Root Complex: no link
scanning bus for devices...
SATA link 0 timeout.
AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
Device 0: unknown device
pfe_eth0 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY pfe_eth0
Speed detected 64
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17
Retry time exceeded; starting again
Speed detected 64
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17
Retry time exceeded; starting again
Trying load from qspi..
SF: Detected n25q00a with page size 256 Bytes, erase size 64 KiB, total 128 MiB
device 0 offset 0x1000000, size 0x2800000
SF: 41943040 bytes @ 0x1000000 Read: OK
## Loading kernel from FIT Image at a0000000 ...
Bad FIT kernel image format! (err=-22)
ERROR: can't get kernel image!
Memory dump:
=> md a0000000
a0000000: edfe0dd0 d0165003 38000000 b4125003 .....P.....8.P..
a0000010: 28000000 11000000 10000000 00000000 ...(............
a0000020: 6c000000 7c125003 00000000 00000000 ...l.P.|........
a0000030: 00000000 00000000 01000000 00000000 ................
a0000040: 03000000 04000000 5c000000 f09e9b4d ...........\M...
a0000050: 03000000 23000000 00000000 366d7261 .......#....arm6
a0000060: 656b2034 6c656e72 6172202c 7369646d 4 kernel, ramdis
a0000070: 6e61206b 44462064 6c622054 0000626f k and FDT blob..
a0000080: 03000000 04000000 0c000000 01000000 ................
a0000090: 01000000 67616d69 00007365 01000000 ....images......
a00000a0: 6e72656b 00006c65 03000000 0d000000 kernel..........
a00000b0: 00000000 364d5241 654b2034 6c656e72 ....ARM64 Kernel
a00000c0: 00000000 03000000 69dffd00 1b000000 ...........i....
a00000d0: 08088b1f 64b4b48b 6d490300 00656761 .......d..Image.
a00000e0: 780b7dec ffb5d554 924ce73a 490843c9 .}.xT...:.L..C.I
a00000f0: 99020f20 b6315049 1407928a 80264e6c ...IP1.....lN&.
=>
a0000100: c4351428 65ef55e2 c6a55092 9f5086b6 (.5..U.e.P....P.
a0000110: 4409325c caffe92d fa58b184 ccad0048 \2.D-.....X.H...
a0000120: 13116e58 024aae65 bd8b6ab6 ada14317 Xn..e.J..j...C..
a0000130: 212665b5 f2ad8960 323c3210 8f3adfff .e&!`....2<2..:.
a0000140: 509264cc fbdac5b9 b7df277d ece73332 .d.P....}'..23..
a0000150: 6bdad7b3 fb1ebdad a772be75 ac18267c ...k....u.r.|&..
a0000160: bf81a14f 8fff229d 15ff0ba3 89657e97 O....".......~e.
a0000170: 675bcf8c 88f12d13 50b5ee83 8a2f18b4 ..[g.-.....P../.
a0000180: 370d33a8 cdae539e ef8c9f5d 7c295842 .3.7.S..]...BX)|
a0000190: 85be0717 281cedfd d068b7f7 653fa2ff .......(..h...?e
a00001a0: 6bbff0b9 e1ed7f96 34b7cae5 189a5f0d ...k.......4._..
a00001b0: c8858949 f292cd7e 2fcae5e5 48ba476e I...~....../nG.H
a00001c0: 67ea759e d44c9fd8 f6916591 0180601b .u.g..L..e...`..
a00001d0: 80601806 60180601 18060180 06018060 ..`....`....`...
a00001e0: 01806018 80601806 60180601 18060180 .`....`....`....
a00001f0: 06018060 01806018 80601806 60180601 `....`....`....`
Board info:
=> bdinfo
boot_params = 0x0000000000000000
DRAM bank = 0x0000000000000000
-> start = 0x0000000080000000
-> size = 0x000000003be00000
flashstart = 0x0000000000000000
flashsize = 0x0000000000000000
flashoffset = 0x0000000000000000
baudrate = 115200 bps
relocaddr = 0x00000000b7b3a000
reloc off = 0x0000000035b3a000
Build = 64-bit
current eth = pfe_eth1
ethaddr = 12:07:f8:61:0e:07
IP addr = 192.168.86.201
fdt_blob = 0x00000000b7636640
new_fdt = 0x00000000b7636640
fdt_size = 0x0000000000001780
lmb_dump_all:
memory.cnt = 0x1
memory[0] [0x80000000-0xbbdfffff], 0x3be00000 bytes flags: 0
reserved.cnt = 0x1
reserved[0] [0xb76321d0-0xb7bfffff], 0x005cde30 bytes flags: 0
devicetree = separate
arch_number = 0x0000000000000000
TLB addr = 0x00000000b7bf0000
irq_sp = 0x00000000b7636630
sp start = 0x00000000b7636630
Env variables:
=> pri
arch=arm
baudrate=115200
board=ls1012ardb
board_name=ls1012ardb
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; env exists secureboot && load ${devtype} ${devnum}:${distro_bootpart} ${scripthdraddr} ${prefix}${boot_script_hdr}; env exists secureboot && esbc_validate ${scripthdraddr};source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_efi_bootmgr=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_pci_enum=pci enum
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_script_hdr=hdr_ls1012ardb_bs.out
boot_scripts=ls1012ardb_boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 usb0 scsi0 dhcp
bootargs=console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 quiet lpj=250000
bootcmd=run distro_bootcmd; run qspi_bootcmd; env exists secureboot && esbc_halt;
bootcmd_dhcp=devtype=dhcp; run boot_net_usb_start; run boot_pci_enum; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_scsi0=devnum=0; run scsi_boot
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=10
bootfstype=fat
bootm_size=0x10000000
class_elf_firmware=b7943e00
class_elf_size=cf84
console=ttyS0,115200
cpu=armv8
devplist=1
distro_bootcmd=scsi_need_init=; setenv nvme_need_init; for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=52:28:68:66:ad:91
ethact=pfe_eth1
ethaddr=12:07:f8:61:0e:07
fdt_addr=0x90000000
fdt_addr_r=0x90000000
fdtaddr=b7636640
fdtcontroladdr=b7636640
fdtheader_addr_r=0x80100000
fsl_bootcmd_mcinitcmd_set=y
initrd_high=0xffffffffffffffff
installer=load mmc 0:2 $load_addr /flex_installer_arm64.itb; bootm $load_addr#$board
ipaddr=192.168.86.201
kernel_addr=0x01000000
kernel_addr_r=0x96000000
kernel_size=0x2800000
kernelheader_addr=0x600000
kernelheader_addr_r=0x80200000
kernelheader_size=0x40000
load_addr=0xa0000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x90000000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
nvme_boot=run boot_pci_enum; run nvme_init; if nvme dev ${devnum}; then devtype=nvme; run scan_dev_for_boot_part; fi
nvme_init=if ${nvme_need_init}; then setenv nvme_need_init false; nvme scan; fi
qspi_bootcmd=echo Trying load from qspi..;sf probe && sf read $load_addr $kernel_addr $kernel_size; env exists secureboot && sf read $kernelheader_addr_r $kernelheader_addr $kernelheader_size && esbc_validate ${kernelheader_addr_r}; bootm $load_addr#$board
sata_boot=if sata dev ${devnum}; then devtype=sata; run scan_dev_for_boot_part; fi
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x80000000
scripthdraddr=0x80080000
scsi_boot=run boot_pci_enum; run scsi_init; if scsi dev ${devnum}; then devtype=scsi; run scan_dev_for_boot_part; fi
scsi_init=if ${scsi_need_init}; then scsi_need_init=false; scsi scan; fi
serverip=192.168.86.31
soc=fsl-layerscape
stderr=serial
stdin=serial
stdout=serial
tmu_elf_firmware=b7950d90
tmu_elf_size=2d48
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=freescale
verify=no
Environment size: 5316/8188 bytes