基于全志H5搭建主线开发环境
-
搭建A53调试环境
本文介绍如何A53的调试环境,调试最新的内核。
本实验调试基于全志H5芯片,使用nanopi-neo2开发板。
编译ATF
直接使用官方仓库,使用最新的ATF2.6代码。注意编译器百度自行安装, aarch64-linux-gnu- 推荐工具链使用最新的,下不赘述。
仓库:https://github.com/ARM-software/arm-trusted-firmware.git
make PLAT=sun50i_a64 DEBUG=1 bl31 CROSS_COMPILE=aarch64- linux-gnu-
编译完成后,将绝对路径导出,编译u-boot的时候需要使用。
export BL31=/path/to/bl31.bin
编译CRUST(全志协处理器的固件代码)
H5里面有一个openrisc 架构的协处理器,编译该代码,还需要安装改架构的交叉编译工具。
仓库地址:https://github.com/crust-firmware/crust
交叉编译工具下载地址:https://openrisc.io/software
make pine64_plus_defconfig && make -j5 scp CROSS_COMPILE=or1k-linux-musl-
export SCP=/src/crust/build/scp/scp.bin
编译u-boot:
u-boot 代码,我选择的是:u-boot-2021.10.tar.bz2 官方下载。
注意在编译U-BOOT前,请将ATF 和 CRUST的成果,路径导出。
ARCH=arm64 CROSS_COMPILE=aarch64 -linux-gnu- make nanopi_neo2_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j16
烧录u-boot到SD卡:
U盘接入linux主机,dd进去。
dd if=u-boot-sunxi-with-spl.bin of=/dev/sdx bs=8k seek=1编译文件系统:
我使用buildroot 搭建文件系统。版本:buildroot-2021.08.2.tar.gz
主要将以下配置选对。
选择生成CPIO镜像, 这样子跑RAMFS 调试比较方便。
编译后 将rootfs.cpio.gz 复制到你的 kernel/usr目录下。
编译内核:
内核源码:https://www.kernel.org/
下载自己感兴趣的版本。
make ARCH=arm64 CROSS_COMPILE=aarch64 -linux-gnu- defconfig
修改内核配置:
make ARCH=arm64 CROSS_COMPILE=aarch64 -linux-gnu- menuconfig- 支持ramfs
- 打开网络驱动
开始编译内核
make ARCH=arm64 CROSS_COMPILE=aarch64 -linux-gnu- Image -j16
make ARCH=arm64 CROSS_COMPILE=aarch64 -linux-gnu- dtbs -j16tftp启动内核:
setenv ipaddr 192.168.31.222
setenv serverip 192.168.31.3
tftp 0x40080000 Image
tftp 0x4FA00000 sun50i-h5-nanopi-neo2.dtb
booti 0x40080000 - 0x4FA00000到此,A53的开发环境搭建完毕。
dmesg
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.16.1 (qianhao@qianhao-server) (aarch64-seev200-linux-gnu-gcc (crosstool-NG 1.24.0.489_25f6dae) 11.2.0, GNU ld (crosstool-NG 1.24.0.489_25f6dae) 2.37) #3 SMP PREEMPT Mon Jan 17 13:34:46 UTC 2022
[ 0.000000] Machine model: FriendlyARM NanoPi NEO 2
[ 0.000000] efi: UEFI not found.
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x5feddb40-0x5fedffff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] cma: Reserved 32 MiB at 0x000000005d400000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.2
[ 0.000000] percpu: Embedded 20 pages/cpu s41304 r8192 d32424 u81920 - 支持ramfs
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号