我正在使用 Altera 的带有双 Cortex-A9 处理器的 Cyclone V SOC FPGA。嵌入式系统(linux 4.15.7)是用 Buildroot-2018.02 创建的。 U-boot 用于加载系统 i-e FPGA.rbf 文件、设备树 blob 和 zImage,一切正常。
我现在想将 RBF 文件集成到我的 linux 并从 Linux 对 FPGA 进行编程。我找到了几种方法,我理解的一种最常见的是将 CONFIGFS 与设备树覆盖一起使用。
因此,我更改了我的设备树以集成覆盖、u-boot 引导脚本以禁用 FPGA 加载以及 Linux“.config”文件中的以下选项 make linux-xconfig
:
+CONFIG_OF_OVERLAY=y
+CONFIG_ALTERA_STAPL=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_SAMPLES=y
+CONFIG_SAMPLE_CONFIGFS=m
这些选项是我经过多次尝试后的状态。
在 make 和重新启动后,一旦加载了内核,我就会在控制台中输入以下命令:
mkdir /config
mount -t configfs none /config
在这种状态下,我希望在/config 文件夹中看到一些设备树文件,但没有,只有一个 rdma_cm 文件夹:
# ls /config
rdma_cm
我继续阅读这个主题,发现我必须在我的 linux 内核中启用 CONFIG_OF_CONFIGFS 选项。
问题:此选项在我的 linux 内核中不可用。另外,文件
drivers/of/configfs.c
这里也没有。我徒劳地搜索了如何为我的内核版本启用设备树覆盖。
如何配置我的内核以使设备树在 configfs 中可用?
请您参考如下方法:
我和你有同样的问题。所以我不得不自己制作一个设备驱动程序。
此设备驱动程序是暂定的,我希望 Linux 主线正式支持设备树覆盖 ConfigFS。
我制作的设备驱动程序可从以下 URL 获得。
如果您使用的是 Debian,您可以使用以下 URL 构 build 备驱动程序的 Debian 包。
如果您想使用此设备驱动程序尝试设备树覆盖,请引用以下 URL。