- 论坛徽章:
- 0
|
现在的板子有一个外挂的PCI 网口设备。
中断用的 是MPC8313的外部中断 IRQ1, DTS 中 PCI的配置如下:
pci0: pci@8500 {
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x13 -PCI slot */
9800 0 0 1 &ipic 12 8
9800 0 0 2 &ipic 12 8
9800 0 0 3 &ipic 12 8
9800 0 0 4 &ipic 12 8
/* IDSEL 0x15 - PCI slot */
A800 0 0 1 &ipic 11 8
A800 0 0 2 &ipic 11 8
A800 0 0 3 &ipic 11 8
A800 0 0 4 &ipic 11 8>;
interrupt-parent = < &ipic >;
interrupts = <42 8>;
bus-range = <0 0>;
ranges = <02000000 0 90000000 90000000 0 10000000
42000000 0 80000000 80000000 0 10000000
01000000 0 00000000 e2000000 0 00100000>;
clock-frequency = <3f940aa>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <8500 100
8300 8>;
compatible = "83xx";
device_type = "pci";
};
/* IPIC
* interrupts cell = <intr #, sense>
* sense values match linux IORESOURCE_IRQ_* defines:
* sense == 8: Level, low assertion
* sense == 2: Edge, high-to-low change
*/
ipic: pic@700 {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
reg = <700 100>;
built-in;
device_type = "ipic";
};
复制代码
上面的dts配置,
pci网口设备在pci槽0x15:
/* IDSEL 0x15 - PCI slot */
A800 0 0 1 &ipic 11 8
A800 0 0 2 &ipic 11 8
A800 0 0 3 &ipic 11 8
A800 0 0 4 &ipic 11 8
在request_irq后,发现 产生中断后,读网口寄存器,相应状态位没有置位,也就是说,网口认为没有中断产生。
所以我 一配 ifconfig eth2 up
内核就报: irq 23: nobody cared (try booting with the "irqpoll" option)
我的问题是,上面的dts配的有没有问题?
是不是 中断触发方式配的有问题? 8是低电平触发, 高电平触发怎么配?
望大家指点一二,多谢多谢 |
|