2

我正在使用最新的 Openwrt 主干固件(内核 4.3)并成功编译了 CryptoEngine 的驱动程序,这是 MT7621 Soc 的内部 ipsec 加速器(据我所知,它位于称为 AMBA / APB 的内部总线上)。

该驱动程序似乎可以工作(CryptoEngine 通过发送和接收数据包成功配置,因此它确实对内存映射寄存器“做出反应”)。

但是驱动程序无法连接 irq(因此它仅在轮询模式下工作),因为 request_irq 总是在 IRQ 19 上失败并出现错误代码 89(需要 EDESTADDRREQ 目标地址)(驱动程序日志之前没有给出任何错误),我可以'不明白为什么(我不是linux设备驱动专家,只是基本了解,假设我设法重新编译了驱动程序)。

知道为什么会这样吗?会不会是板 dts 文件有问题?以下是 dmesg 日志和使用的 dts 文件的链接( Dmesg日志太长,无法包含,Soc dtsi (dev.openwrt.org/browser/trunk/target/linux/ramips/dts/mt7621.dtsi) 和Board dts) )

CryptoEngine 内存映射 0x1E004000-0x1E004FFF


root@OpenWrt:/# lspci
00:00.0 PCI 桥:设备 0e8d:0801 (rev 01)
00:01.0 PCI 桥:设备 0e8d:0801 (rev 01)
00:02.0 PCI 桥:设备 0e8d:0801 (rev 01)
01 :00.0 网络控制器:MEDIATEK Corp. MT7662E 802.11ac PCI Express 无线网络适配器
02:00.0 网络控制器:MEDIATEK Corp. MT7662E 802.11ac PCI Express 无线网络适配器
03:00.0 SATA 控制器:ASMedia Technology Inc. ASM1062 串行 ATA 控制器(修订版 01 )

root@OpenWrt:/# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
8: 63126 63253 63143 63987 MIPS GIC Local 1 timer
10: 1513 0 0 0 MIPS GIC 10 1e100000.ethernet
11: 2 0 0 0 MIPS GIC 11 mt76pci
29: 0 0 0 0 MIPS GIC 29 xhci-hcd:usb1
31: 2 0 0 0 MIPS GIC 31 mt76pci
33: 7976 0 0 0 MIPS GIC 33 串行
63: 1178 0 0 0 MIPS GIC 63 IPI 调用
64:0 1305 0 0 MIPS GIC 64 IPI 调用
65:0 0 1257 0 MIPS GIC 65 IPI 调用
66:0 0 0 1087 MIPS GIC 66 IPI 调用
67:144709 0 0 0 MIPS GIC 67 IPI 重新调度
68: 0 25822 0 0 MIPS GIC 68 IPI resched
69: 0 0 97134 0 MIPS GIC 69 IPI resched
70: 0 0 0 43037 MIPS GIC 70 IPI resched

root@OpenWrt:/# cat /proc/ioports
ffffffff-ffffffff : /pcie @1e140000

4

0 回答 0