Hi,
We are trying to make use of 5.4.x kernel version with yocto LSDK (YP 3.1–LSDK 2004
) latest release in the QRP ls1088ardb-pb series board.
1. Followed the below guide and successfully compiled the yoctoDunfell (LSDK2004) version and got the required fsl-images in the /tmp/deploy/images/ls1088ardb-pb/*.
- Reference guide: https://www.nxp.com/docs/en/user-guide/LSDKYOCTOUG.pdf
2. Actually, we are facing issue with flashing the image.
- In the uboot screen, TFTP server is not reacheable. Configured the network ip accordingly, still it is showing host is not alive. (Any suggestions?)
- So, tried creating the installer bin (image_installer.bin) using the available mkswimage.sh script.
Successfully created the image_installer.bin file
3. Copied the "image_installer.bin" to qrp board via scp and tried installing it as follows,
$ ./image_installer.bin -u
4. After system reboot, it is ending with "Bad FIT kernel image format! " error. Refer below logs captured after node reboot.
------------------------------------------------------
Logs:
U-Boot SPL 2018.09+fsl (Jan 01 2020 - 00:00:00 +0000)
VID: Core voltage after adjustment is at 1026 mV
Initializing DDR....using SPD
Address hashing enabled.
Trying to boot from MMC1
SoC: LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
CPU0(A53):1600 MHz CPU1(A53):1600 MHz CPU2(A53):1600 MHz
CPU3(A53):1600 MHz CPU4(A53):1600 MHz CPU5(A53):1600 MHz
CPU6(A53):1600 MHz CPU7(A53):1600 MHz
Bus: 700 MHz DDR: 2100 MT/s
Reset Configuration Word (RCW):
00000000: 4000541c 00000040 00000000 00000000
00000010: 00000000 000a0000 00300000 00000000
00000020: 02401150 00002580 00000000 00000040
00000030: 00000c5b 00000000 00002403 00000000
00000040: 00000000 00000000 00000000 00000000
00000050: 00000000 00000000 00000000 00000000
00000060: 00000000 00000000 00000011 000009e7
00000070: 44110000 00107777
RCW CRC: cf251d05
I2C: ready
DRAM: Initializing DDR....using SPD
Detected UDIMM 18ASF1G72AZ-2G6B1
7.9 GiB
DDR 7.9 GiB (DDR4, 64-bit, CL=15, ECC on)
FSL_SDHC: 0
ppa_init: fdt_check_header() failed
Waking secondary cores to start from fbd2f000
All (8) cores are up.
Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 19 (0x13)
NAND: 512 MiB
MMC: Loading Environment from MMC... OK
EEPROM: NXID v1
PCIe0: pcie@3400000 Root Complex: x2 gen3
PCIe1: pcie@3500000 disabled
PCIe2: pcie@3600000 Root Complex: no link
In: serial
Out: serial
Err: serial
Model: NXP Layerscape 1088a RDB Board
Board: LS1088ARDB-PB, Board Arch: V1, Board version: B, boot from SD card
QSPI:0
CPLD: v5.0
SERDES1 Reference : Clock1 = 100MHz Clock2 = 156.25MHz
SERDES2 Reference : Clock1 = 100MHz Clock2 = 100MHz
Net: DPMAC2@xgmii: system interface XFI
DPMAC2@xgmii: Aquantia AQR105 Firmware Version 2.0.b
DPMAC1@xgmii [PRIME], DPMAC2@xgmii, DPMAC3@qsgmii, DPMAC4@qsgmii, DPMAC5@qsgmii, DPMAC6@qsgmii, DPMAC7@qsgmii, DPMAC8@qsgmii, DPMAC9@qsgmii, i
Device: FSL_SDHC
Manufacturer ID: 3
OEM: 5344
Name: SL16G
Bus Speed: 50000000
Mode : SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.8 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
MMC read: dev # 0, block # 20480, count 2048 ... 2048 blocks read: OK
MMC read: dev # 0, block # 28672, count 2048 ... 2048 blocks read: OK
crc32+
fsl-mc: Booting Management Complex ... SUCCESS
fsl-mc: Management Complex booted (version: 10.22.0, boot status: 0x1)
Hit any key to stop autoboot: 0
MMC read: dev # 0, block # 14336, count 2048 ... 2048 blocks read: OK
fsl-mc: Deploying data path layout ... WARNING: Firmware returned an error (GSR: 0x3f)
MMC read: dev # 0, block # 32768, count 19531 ... 19531 blocks read: OK
## Loading kernel from FIT Image at a0000000 ...
Bad FIT kernel image format!
ERROR: can't get kernel image!
=>
___________________________________________________________
Kindly suggest a solution or inputs if any to build yocto LSDK with 5.4.x kernel support and flash the same using automatic image upgrade method (Flash via installer.bin).
Please suggest,
1. How to access TFTP server in uboot screen in LS1088ARBD-PB series board.
Note: Tried enabling the DPMAC ports by following the available community support Q&A.
In host machine TFTP server is active and able to ping the node before reboot and vice-versa. But in the uboot screen even after setting ip addresses it's showing host is not alive.
2. How to flash the compiled image via automatic upgrade method (flash using installer.bin and without using u-boot screen) ?
PB @yipingwang Please let me know your inputs.
Thanks & Regards,
Ravi Shankar,
WLAN Developer
Would you please run "pri" command in your u-boot to show u-boot environment?
It seems that the bootloader on your target board is old, form LSDK 2018.09.
Do you have CodeWarrior TAP and CodeWarrior license? You could deploy QSPI image with CodeWarrior.
You also could deploy SD card boot environment.
Thanks for your reply.
=> pri
BOARD=ls1088ardb_pb
arch=arm
baudrate=115200
board=ls1088a
board_name=ls1088a
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; env exists secureboot && load ${devtype} ${devnu}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_net_pci_enum=pci enum
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_script_hdr=hdr_ls1088ardb_pb_bs.out
boot_scripts=ls1088ardb_pb_boot.scr
boot_targets=mmc0 scsi0
bootargs=console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x3000000 default_hugepagesz=2m hugepagesz=2m huge6
bootcmd=sf read 0x80001000 0xd00000 0x100000;env exists mcinitcmd && env exists secureboot && sf read 0x80780000 0x780000 0x100000 && esbc_v;
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_scsi0=setenv devnum 0; run scsi_boot
bootdelay=2
cpu=armv8
distro_bootcmd=setenv scsi_need_init; for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=00:04:9f:06:23:0b
eth2addr=00:04:9f:06:23:0c
eth3addr=00:04:9f:06:23:0d
eth4addr=00:04:9f:06:23:0e
eth5addr=00:04:9f:06:23:0f
eth6addr=00:04:9f:06:23:10
eth7addr=00:04:9f:06:23:11
eth8addr=00:04:9f:06:23:12
eth9addr=00:04:9f:06:23:13
ethact=DPMAC1@xgmii
ethaddr=00:04:9f:06:23:0a
ethprime=DPMAC1@xgmii
fdt_addr=0x64f00000
fdt_addr_r=0x90000000
fdt_high=0xa0000000
fdtcontroladdr=fbb25120
fdtheader_addr_r=0x80100000
hwconfig=fsl_ddr:bank_intlv=auto
initrd_high=0xffffffffffffffff
installer=load mmc 0:2 $load_addr /flex_installer_arm64.itb; env exists mcinitcmd && run mcinitcmd && mmc read 0x80001000 0x6800 0x800;fsl_mcb
kernel_addr=0x1000000
kernel_addr_r=0x81000000
kernel_addr_sd=0x8000
kernel_size=0x2800000
kernel_size_sd=0x14000
kernel_start=0x580100000
kernelhdr_addr_sd=0x4000
kernelhdr_size_sd=0x10
kernelheader_addr=0x800000
kernelheader_addr_r=0x80200000
kernelheader_size=0x40000
kernelheader_start=0x580800000
load_addr=0xa0000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mcinitcmd=sf probe 0:0;sf read 0x80000000 0xA00000 0x100000;sf read 0x80100000 0xE00000 0x100000;env exists secureboot && sf read 0x80700000 0
mcmemsize=0x70000000
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
qspi_bootcmd=echo Trying load from qspi..;sf probe && sf read $load_addr $kernel_addr $kernel_size ; env exists secureboot && sf read $kernelb
ramdisk_addr=0x800000
ramdisk_size=0x2000000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_scripts; done;
scan_dev_for_boot_part=part list ${devtype} ${devnum} devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist};e
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${pre
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/ei
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Founde
scriptaddr=0x80000000
scripthdraddr=0x80080000
scsi_boot=run scsi_init; if scsi dev ${devnum}; then setenv devtype scsi; run scan_dev_for_boot_part; fi
scsi_init=if ${scsi_need_init}; then setenv scsi_need_init false; scsi scan; fi
scsidevs=0
sd_bootcmd=echo Trying load from sd card..;mmcinfo; mmc read $load_addr $kernel_addr_sd $kernel_size_sd ;env exists secureboot && mmc read $kb
soc=fsl-layerscape
stderr=serial
stdin=serial
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
vendor=freescale
Environment size: 5588/8188 bytes
-----------------------
Regarding the CodeWarrior TAP and license, we are not aware of this. Just followed the steps from "Layerscape Software Development Kit User Guide for Yocto (nxp.com)" to build and flash the image.
We are currently facing below issues,
- In u-boot screen TFTP server is not reachable (host is not alive)
- SD card boot is failing with Bad Image format.
Please let us know your inputs on how to change bootloader directly on board with using tftp server.
You could deploy images to SD card as the following.
1. Please create two partitions with Linux command "fdisk", one 1G FAT16 and 2G one ext2/ext3 or with remainder of the available disk size.
# mkfs.vfat /dev/sdb1
# mkfs.ext2 /dev/sdb2
2. Please deployed RCW + PBI + BL2(bl2_<boot_mode>.pbl)image to SD card as the following.
dd if=bl2_sd.pbl of=/dev/sdb bs=512 seek=8
note:/dev/sdb is SD device name.
Please deploy TF-A FIP image at 0x00800 in SD card.
dd if=fip_uboot.bin of=/dev/sdb bs=512 seek=2048
Please deploy MC firmware at 0x5000 in SD card.
dd if=mc_10.20.4_ls1088a.itb of=/dev/sdb bs=512 seek=20480
Deploy DPAA2 DPL image at 0x06800
dd if=dpl-eth.0x1D_0x0D.dtb of=/dev/sdb bs=512 seek=26624
Deploy DPAA DPC image at 0x07000
dd if=dpc.0x1D-0x0D.dtb of=/dev/sdb bs=512 seek=28672