这个简单的测试会在使用 modelsim 编译时导致错误,而 Quartus 可以完成整个综合/拟合过程。
library ieee;
use ieee.std_logic_1164.all;
entity submodule is
port(
four_bits_input : in std_logic_vector(3 downto 0);
four_bits_output : out std_logic_vector(3 downto 0)
);
end entity;
architecture behav of submodule is
begin
four_bits_output <= four_bits_input;
end architecture;
-------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity globally_static_test is
port (
one_bits_input : in std_logic;
three_bits_input : in std_logic_vector(2 downto 0);
four_bits_output : out std_logic_vector(3 downto 0)
);
end entity;
architecture behav of globally_static_test is
begin
submodule_inst : entity work.submodule
port map( …Run Code Online (Sandbox Code Playgroud) 我正在使用 Altera 的带有双 Cortex-A9 处理器的 Cyclone V SOC FPGA。嵌入式系统(linux 4.15.7)是用 Buildroot-2018.02 创建的。U-boot 用于加载系统,即 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
Run Code Online (Sandbox Code Playgroud)
这些选项是我经过多次尝试后的状态。
在 make 和重新启动后,一旦加载了内核,我就会在控制台中输入以下命令:
mkdir /config
mount -t configfs none /config
Run Code Online (Sandbox Code Playgroud)
在这种状态下,我希望在 /config 文件夹中看到一些设备树文件,但没有,只有一个 rdma_cm 文件夹:
# ls /config
rdma_cm
Run Code Online (Sandbox Code Playgroud)
我继续阅读这个主题,发现我必须在我的 linux 内核中启用 CONFIG_OF_CONFIGFS 选项。
问题:此选项在我的 linux 内核中不可用。此外,文件drivers/of/configfs.c也不在这里。我徒劳地搜索了如何为我的内核版本启用设备树覆盖。
如何配置我的内核以使设备树在 configfs 中可用?