一、代码&&工具
1. linux源码下载
git clone -b toradex_5.4-2.1.x-imx git://git.toradex.cn/linux-toradex.git
2. 交叉编译工具链
ftp://ftp.toradex.cn/Linux/toolchain/gcc-9.2/64bit_Arm/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
3. uboot
git clone -b toradex_imx_v2020.04_5.4.24_2.1.0 git://git.toradex.cn/u-boot-toradex.git
二、linux源码编译
1. 修改顶层Makefile指定交叉编译工具
ARCH ?= arm64
CROSS_COMPILE ?= aarch64-none-linux-gnu-
2. 配置
export PATH=$PATH:/usr/local/arm64/gcc-arm-9.2/bin
make defconfig
/* 编译显示缺少什么安装什么 */
sudo apt-get install flex
sudo apt-get install bison
3. 编译
make -j4
三、设备树
1. 设备树架构
顶层dts: arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dts
底板层dtsi:arch/arm64/boot/dts/freescale/imx8qm-apalis-ixora-v1.1.dtsi
核心板层dtsi1:arch/arm64/boot/dts/freescale/imx8qm-apalis.dtsi
核心板层dtsi2:arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1.dtsi
芯片层dtsi:arch/arm64/boot/dts/freescale/imx8qm.dtsi
引脚描述头文件:include/dt-bindings/pinctrl/pads-imx8qm.h
2. 编译设备树
在arch/arm64/boot/dts/freescale/Makefile中添加预编译得dts文件,编译:
make dtbs
四、从网络加载
1.修改uboot环境变量
setenv ipaddr 192.168.2.22
setenv serverip 192.168.2.31
setenv netmask 255.255.255.0
setenv gatewayip 192.168.2.1
saveenv
//修改延时为5s
setenv bootdelay 5
//建立挂载命令
setenv netArgs 'setenv bootargs 'console=ttyLP1 earlycon,115200 root=/dev/mmcblk0p2 rootwait rw''
setenv netDtb nDtb.dtb
setenv netImage nImage
setenv net_load_image 'run netArgs;tftp ${loadaddr} ${netImage}; tftp ${fdt_addr_r} ${netDtb}; booti ${loadaddr} - ${fdt_addr_r}'
测试能否PING通。