Hello, Wang. With your help, my board ls1043aqds has entered uboot. I use LSDK 21.08 for development, and the boot mode is TF-A. But my qspi flash is small, only 16MB, so I can't write itb directly to flash and start kernel and ramdisk from qspi.
I think the next priority is to burn the kernel and ramdisk into 16GB emmc, and then load the kernel from emmc. But I don't know if I have to use an external writer to burn emmc at the moment, and I don't know exactly what needs to be modified and compiled in the next work.
I really hope to get your help and look forward to your reply as soon as possible. thank you.
Solved! Go to Solution.
You need to modify LS1043AQDS device tree according to your custom board.
In LSDK 21.08 build environment:
$ source setup.env
$ flex-builder -c linux -m ls1043aqds
Go to Linux Kernel source code components/linux/linux, please modify arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts according to your custom board.
For example, please delete the following device node, if there is no IFC NOR flash on your custom board.
nor@0,0 {
compatible = "cfi-flash";
reg = <0x0 0x0 0x8000000>;
big-endian;
bank-width = <2>;
device-width = <1>;
};
Then rebuild Linux Kernel
$ flex-builder -c linux -m ls1043aqds
Regenerate itb image
$ flex-builder -i mkitb -r yocto:tiny
Get the image flexbuild_lsdk2108_github/build/images/lsdk2108_yocto_tiny_LS_arm64.itb
If you need to the bootpartition image, please regenerate it with the following command
$ flex-builder -i mkbootpartition -a arm64
The emmc device is not removable, you could copy all your images to the USB device, then boot up the target board with image lsdk2108_yocto_tiny_LS_arm64.itb and deploy Ubuntu rootfs to emmc device in Linux on the target board.
For example under u-boot,
=> ext2load usb 0:1 0xa0000000 lsdk2108_yocto_tiny_LS_arm64.itb
=> bootm 0xa0000000#ls1043aqds
Under Linux on the target board, please run the following commands to deploy Kernel and Ubuntu rootfs to emmc device.
$ flex-installer -i pf -d /dev/mmcblk0
$ flex-installer -b boot_LS_arm64_lts_5.10.tgz -r rootfs_lsdk2108_ubuntu_main_arm64.tgz -d /dev/mmcblk0
Note:/dev/mmcblk0 is the emmc device name on the target board.
Wang,Thank you very much for your technical reply, and I am honored to get your help in debugging this series of boards for the first time. I have made some progress following your suggestions, but it seems that the kernel is stuck and cannot continue. I have attached the log, and I hope to get your help on what I should do next so that I can successfully enter ramdisk.
You need to modify LS1043AQDS device tree according to your custom board.
In LSDK 21.08 build environment:
$ source setup.env
$ flex-builder -c linux -m ls1043aqds
Go to Linux Kernel source code components/linux/linux, please modify arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts according to your custom board.
For example, please delete the following device node, if there is no IFC NOR flash on your custom board.
nor@0,0 {
compatible = "cfi-flash";
reg = <0x0 0x0 0x8000000>;
big-endian;
bank-width = <2>;
device-width = <1>;
};
Then rebuild Linux Kernel
$ flex-builder -c linux -m ls1043aqds
Regenerate itb image
$ flex-builder -i mkitb -r yocto:tiny
Get the image flexbuild_lsdk2108_github/build/images/lsdk2108_yocto_tiny_LS_arm64.itb
If you need to the bootpartition image, please regenerate it with the following command
$ flex-builder -i mkbootpartition -a arm64