usb's irq is still incorrect. under normal linux, usb's irq is 15, but under linuxbios the irq is 10. so usb can't work correctly. what's the correct step to run getpir? what's the rule for linux kernel to assign pci irq according to irq routing table? thanks zhu shi song zhushisongzhu@yahoo.com wrote:
sorry, check sum should be 0xf0. NIC is ok. but usb's irq is not correct. zhu shi song zhushisongzhu@yahoo.com wrote: yes, irq_tables.c is: /* This file was generated by getpir.c, do not modify! (but if you do, please run checkpir on it to verify) Contains the IRQ Routing Table dumped directly from your memory , wich BIOS sets up Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM */ #include <arch/pirq_routing.h> const struct irq_routing_table intel_irq_routing_table = { PIRQ_SIGNATURE, /* u32 signature */ PIRQ_VERSION, /* u16 version */ 32+16*4, /* there can be total 4 devices on the bus */ 0, /* Where the interrupt router lies (bus) */ 0x90, /* Where the interrupt router lies (dev) */ 0x8c00, /* IRQs devoted exclusively to PCI usage */ 0x1078, /* Vendor */ &am! p;nb! sp; 0x2, /* Device */ 0, /* Crap (miniport) */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */ 0xf0, /* u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */ { {0,0x78, {{0x3, 0xdeb8}, {0x4, 0xdeb8}, {0x1, 0xdeb8}, {0x2, 0xdeb8}}, 0x2, 0}, {0,0x88, {{0x4, 0xdeb8}, {0x1, 0xdeb8}, {0x2, 0xdeb8}, {0x3, 0xdeb8}}, 0x3, 0}, &n! bsp;&n! bsp; {0,0x98, {{0x1, 0xdeb8}, {0, 0xdeb8}, {0, 0xdeb8}, {0, 0xdeb8}}, 0, 0}, {0x40,0, {{0, 0}, {0, 0}, {0, 0}, {0, 0}}, 0, 0}, } }; Andrew Ip aip@cwlinux.com wrote: > no any progress. linux can't assign pci irq. what's wrong? Have you run getpir to get the correct pirq table?
-Andrew