【发布时间】:2017-10-14 00:12:47
【问题描述】:
我正在尝试在我正在开发的嵌入式 ARM FPGA 系统中使用 Xilinx 中断控制器驱动程序。 (https://github.com/torvalds/linux/blob/master/drivers/irqchip/irq-xilinx-intc.c)
该驱动程序的末尾是以下行:
IRQCHIP_DECLARE(xilinx_intc_xps, "xlnx,xps-intc-1.00.a", xilinx_intc_of_init);
我在设备树中为中断控制器添加了一个条目。
xil_intc: xil_intc@41810000 {
compatible = "xlnx,xps-intc-1.00.a";
interrupt-parent = <&intc>;
interrupts = <0x0 0x1e 0x04>;
reg = <0x41810000 0x10000>;
interrupt-controller;
#interrupt-cells = <2>;
xlnx,kind-of-intr = <0x0>;
xlnx,num-intr-inputs = <0x1>;
};
但是,据我所知,xilinx_intc_of_init 函数在启动期间从未被调用。我在函数的开头添加了一个pr_info,但我从来没有看到它被调用过。
似乎表明存在问题的唯一消息是:
[ 0.177772] irq: no irq domain found for /amba/xil_intc@41810000 !
我已经成功地编写和编译了其他设备驱动程序,在设备树中添加了条目,并让它们加载并显示在dmesg 中,但由于某种原因我无法让这个驱动程序工作。
对调试有什么建议吗?
为了它的价值,我正在将驱动程序编译到内核模块中,使用modules_install 安装并在/etc/modules 添加一个条目以在启动时加载它。
编辑:我使用的是 4.6 内核。
【问题讨论】:
标签: linux linux-kernel linux-device-driver kernel-module xilinx