linux-kernel - configfs 不挂载设备树/覆盖

标签 linux-kernel intel-fpga device-tree

我正在使用 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 获得。

  • https://github.com/ikwzm/dtbocfg

  • 如果您使用的是 Debian,您可以使用以下 URL 构 build 备驱动程序的 Debian 包。
  • https://github.com/ikwzm/dtbocfg-kmod-dpkg

  • 如果您想使用此设备驱动程序尝试设备树覆盖,请引用以下 URL。
  • https://github.com/ikwzm/FPGA-SoC-Linux
  • https://github.com/ikwzm/FPGA-SoC-Linux-Example-1-DE10-Nano
  • 关于linux-kernel - configfs 不挂载设备树/覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877808/

    相关文章:

    VHDL - 增加按钮事件的寄存器值

    c - 如何在 Cyclone-V 中的 HPS 和 FPGA 之间共享内存(SDRAM)?

    module - 具有多个源文件的内核模块中缺少组件

    c - 即使条件成立,wait_event_interruptible 也不会返回

    linux - 内核态上下文切换时如何保持原子性?

    c - 需要此语法的帮助 : "#define LEDs (char *) 0x0003010"

    关于 PCA9555 扩展器上#interrupt-cells 配置的混淆

    linux - 处理从设备树到模块的管脚模式

    linux - 设备树和平台驱动程序中的设备是如何连接的

    c - 编译linux内核模块时未定义的函数