设备树覆盖:
// SPDX-License-Identifier: GPL-2.0 /dts-v1/; /plugin/; / { fragment@0 { target-path = "/soc@0"; __overlay__ { #address-cells = <1>; #size-cells = <1>; button_gpio@20010060 { compatible = "altr,pio-1.0"; reg = <0x20010060 0x10>; interrupts = <0 18 2>; altr,ngpio = <2>; altr,interrupt-type = <2>; /* 2 = IRQ_TYPE_EDGE_FALLING */ #gpio-cells = <2>; gpio-controller; status = "okay"; }; }; }; };
编译命令:
cd $TOP_FOLDER
cd linux-socfpga
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
export PATH=/usr/bin:$PATH
make dtbs
或者直接用命令:
cd linux-socfpga/arch/arn64/boot/dts/intel dtc -@ -I dts -O dtb -o socfpga_agilex5_de25_nano.dtbo socfpga_agil ex5_de25_nano.dtso

验证如下:

中断验证如下:
(这个截图是基于DE25-Nano GHRD的, 不是基于DE25-Nano的 my_first_hps_system 工程)

常见问题:请问编译设备树Overlay文件时,需要下载与运行的镜像相同版本的linux内核源码吗?
设备树的编译是独立的,不依赖内核源码。编译时使用的 dtc 工具版本,比内核版本本身更重要。设备树语法和绑定会随内核版本演进而变化,使用过旧或过新的 dtc 都可能导致编译失败或运行时异常。所以建议下载与运行的镜像相同版本的linux内核源码。
对于Agilex 5平台,其设备树(.dts/.dtsi)通常定义在Linux内核源码的 arch/arm64/boot/dts/intel/ 目录下。为确保兼容性,最稳妥的方式是使用目标系统内核源码中自带的 dtc 工具(位于 scripts/dtc/dtc)。
无
浙公网安备 33010602011771号