You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过设备树配置uio_dmem_genirq驱动及排查加载失败问题

如何配置设备树以加载兼容uio_pdrv_genirq的uio_dmem_genirq驱动?

我最近在做uio_dmem_genirq驱动的改造,需要让它向后兼容uio_pdrv_genirq,同时新增动态分配连续内存的功能。目前驱动已经编译进内核了,从/lib/modules/4.4.0-xilinx/modules.builtin的输出能确认相关模块都已内置:

kernel/drivers/uio/uio.ko
kernel/drivers/uio/uio_pdrv_genirq.ko
kernel/drivers/uio/uio_dmem_genirq.ko

不过现在遇到的问题是,驱动始终无法正常加载,我已经尝试了两种设备树配置,还更新了bootargs,但都没效果。先给大家说下原来uio_pdrv_genirq能正常工作的配置作为参考:

原uio_pdrv_genirq的有效配置

设备树条目

spw0@7aa00000 {
    compatible = "generic-uio";
    reg = <0x7aa00000 0x10000>;
    interrupts = <0x0 0x1D 0x4>;
    interrupt-parent = <0x3>;
    clocks = <0x1>;
};

对应的bootargs设置

console=ttyPS0,115200 root=/dev/mmcblk0p1 rw rootwait earlyprintk uio_pdrv_genirq.of_id=generic-uio

我的尝试配置

我已经把bootargs更新成了针对uio_dmem_genirq的版本:

console=ttyPS0,115200 root=/dev/mmcblk0p1 rw rootwait earlyprintk uio_dmem_genirq.of_id=generic-uio

然后试了两种设备树配置,都没能让驱动加载:

配置1

spw0@7aa00000 {
    compatible = "generic-uio";
    reg = <0x7aa00000 0x10000>;
    uio,number-of-dynamic-regions = <1>;
    uio,dynamic-regions-sizes = <0x4000>;
    interrupts = <0x0 0x1D 0x4>;
    interrupt-parent = <0x3>;
    clocks = <0x1>;
};

配置2

spw1@7aa00000 {
    compatible = "generic-uio";
    num_dynamic_regions = <2>;
    dynamic_region_sizes = <0x8000>;
    interrupts = <0x0 0x1E 0x4>;
    interrupt-parent = <0x3>;
    clocks = <0x1>;
};

想请教各位,到底该怎么定义设备树条目,才能让这个兼容版的uio_dmem_genirq驱动正常加载呢?

内容的提问来源于stack exchange,提问作者Moritz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:43:18