转载地址:https://blog.csdn.net/dana_xiong/article/details/110927180
一、资源准备
在开始搭建 NXP DN For LS1043ARDB 环境之前需要事先需做好资源准备工作。
- Ubantu 环境准备
需要事先装好 Ubuntu 18.04 或以上版本,因为其他版本没有 Docker container ,Ubuntu 18.04 镜像下载地址:Ubuntu 18.04 下载 - LSDK 资料包准备
NXP 官网下载最新的 LSDK 19.06 版本
下载地址:LSDK 19.06 下载
flexbuild_lsdk1906_update_290719.tgz - 解压 flexbuild_lsdk1906_update_290719.tgz
tar -xvzf flexbuild_lsdk1906_update_290719.tgz
cd flexbuild_lsdk1906_update_290719
source setup.env
flex-builder -h
- 1
- 2
- 3
二、编译 LSDK 环境
- 使用 Flexbuild 基于TF-A 镜像 build U-Boot / UEFI
flex-builder -c atf -m ls1043ardb -b sd
or
flex-builder -c atf -m ls1043ardb -b nor -B uefi
- 1
- 2
2. Build sdboot 完成
3. 使用 Flexbuild 构建 Linux 内核
flex-builder -c linux:linux:LSDK-19.06-V4.19 -a arm64
编译完成可以在 /home/dana/work/flexbuild_lsdk1906_update_290719/build/images/
目录下找到 firmware_ls1043ardb_uboot_sdboot.img 镜像
4. 生成 LSDK 引导分区压缩工具
flex-builder -i mkbootpartition -a arm64
flex-builder -i mkbootpartition -a arm32
or
flex-builder -i mkbootpartition -a arm64 -s (for secure boot)
flex-builder -i mkbootpartition -a arm32 -s (for secure boot)
- 1
- 2
- 3
- 4
编译完成
5. 构建应用程序组件
flex-builder -c apps /* 默认构建所有 arm64 位应用组件 */
flex-builder -c edgescale /* 编译 Edgescale */
flex-builder -c dpdk /* 编译 dpdk */
flex-builder -c ovs-dpdk /* 编译 ovs-dpdk */
flex-builder -c fmc -a arm32 /* 编译 fmc for arm32 */
flex-builder -c fmc -a arm64 /* 编译 fmc for arm64 */
flex-builder -c restool /* 编译 restool */
flex-builder -c ptpd /* 编译 ptpd */
flex-builder -c cst /* 编译 cst */
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
三、烧录镜像到 SD
- 提前需要准备一张 32GB 或以上大小的 SD 卡
- 查看当前 SD 卡挂载的设备
sudo fdisk -l
可以发现挂载在 /dev/sdc
3. 自动烧录镜像
flex-installer -i auto -m ls1043ardb -d /dev/sdc
- 使用这条命令会自动将 SD 卡分四个区,当当前目录下没有编译的镜像,系统会自动下载所需镜像,所以需要将编译好的镜像放到当前工作目录下
四、SD 启动 U-Boot
- 将开关 SW4 和 SW5[1] 拨到 0_0100_0000 设置成 SD 卡启动
启动日志:
NOTICE: Fixed DDR on board
NOTICE: 2 GB DDR4, 32-bit, CL=11, ECC off
NOTICE: BL2: v1.5(release):LSDK-19.06
NOTICE: BL2: Built : 09:40:30, Oct 24 2019
NOTICE: BL31: v1.5(release):LSDK-19.06
NOTICE: BL31: Built : 09:40:39, Oct 24 2019
NOTICE: Welcome to LS1043 BL31 Phase
U-Boot 2019.04 (Oct 24 2019 - 09:36:56 +0800)
SoC: LS1043AE Rev1.1 (0x87920011)
Clock Configuration:
CPU0(A53):1600 MHz CPU1(A53):1600 MHz CPU2(A53):1600 MHz
CPU3(A53):1600 MHz
Bus: 400 MHz DDR: 1600 MT/s FMAN: 500 MHz
Reset Configuration Word (RCW):
00000000: 08100010 0a000000 00000000 00000000
00000010: 14550002 80004012 60040000 c1002000
00000020: 00000000 00000000 00000000 00038800
00000030: 00000000 00001100 00000096 00000001
Model:LS1043A RDB Board
Board:LS1043ARDB, boot from SD
CPLD: V2.0
PCBA: V6.0
SERDES Reference Clocks:
SD1_CLK1 = 156.25MHZ, SD1_CLK2 = 100.00MHZ
I2C: ready
DRAM: 1.9 GiB (DDR4, 32-bit, CL=11, ECC off)
Using SERDES1 Protocol: 5205 (0x1455)
SEC0: RNG instantiated
FSL_SDHC:0
MMC read: dev # 0, block # 18944, count 128 ...
Firmware 'Microcode version 0.0.1 for LS1021a r1.0' for 1021 V1.0
QE: uploading microcode 'Microcode for LS1021a r1.0' version 0.0.1
Flash: 128 MiB
NAND: 512 MiB
MMC: Loading Environment from MMC... OK
EEPROM: NXID v1
In: serial
Out: serial
Err: serial
Net:
MMC read: dev # 0, block # 18432, count 128 ...
Fman1: Uploading microcode version 106.4.18
FM1@TGEC1 running firmware version 2.B.E
FM1@TGEC1: system interface XFI
FM1@TGEC1: Aquantia AQR105 Firmware Version 2.b.e
PCIe0: pcie@3400000 disabled
PCIe1: pcie@3500000 Root Complex: no link
PCIe2: pcie@3600000 Root Complex: no link
FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5, FM1@DTSEC6, FM1@TGEC1
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Scanning mmc 0:2...
Found U-Boot script /ls1043ardb_boot.scr
965 bytes read in 5 ms (188.5 KiB/s)
## Executing script at 80000000
25149952 bytes read in 1072 ms (22.4 MiB/s)
40799 bytes read in 10 ms (3.9 MiB/s)
## Flattened Device Tree blob at 90000000
Booting using the fdt blob at 0x90000000
Using Device Tree in place at 0000000090000000, end 000000009001cf5e
WARNING failed to get smmu node: FDT_ERR_NOTFOUND
WARNING failed to get smmu node: FDT_ERR_NOTFOUND
Starting kernel ...
……
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ OK ] Reached target Timers.
[ OK ] Listening on Docker Socket for the API.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting NXP Frame Manager Configuration tool...
Starting Resets System Activity Data Collector...
Starting Login Service...
Starting OpenBSD Secure Shell server...
[ OK ] Started D-Bus System Message Bus.
Starting LSB: HPA's tftp server...
Starting System Logging Service...
Starting Permit User Sessions...
Starting Dispatcher daemon for systemd-networkd...
[ OK ]Started Regular background program processing daemon.
Starting LSB: Execute the kexec -e command to reboot system...
[ OK ]Started Serial Getty on ttyS0.
[ OK ]Started LSB: Execute the kexec -e command to reboot system.
[ OK ]Started Set console scheme.
[ OK ]Created slice system-getty.slice.
[ OK ]Started Getty on tty1.
[ OK ]Reached target Login Prompts.
Starting LSB: Load kernel image with kexec...
[ OK ]Started LSB: HPA's tftp server.
[ OK ]Started LSB: Load kernel image with kexec.
[ OK ]Started Dispatcher daemon for systemd-networkd.
NXP LSDK 1906 main
localhost login: root //账户名是:root
Password: //密码是:root
Last login: Sun Aug 4 00:08:14 UTC 2019 on ttyS0
Welcome to NXP LSDK 1906 main (GNU/Linux 4.19.46-dirty aarch64)
* Support: https://www.nxp.com/lsdk
* Documentation: https://lsdk.github.io/document
* Licensing: https://lsdk.github.io/eula
root@localhost:~#
到这里就完成了!
注:
未经本人允许,不得转载!谢谢!