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 */ &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; {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