1 /* This file was generated by getpir.c, do not modify!
2 (but if you do, please run checkpir on it to verify)
3 * Contains the IRQ Routing Table dumped directly from your memory, which BIOS sets up
5 * Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM
8 #include <arch/pirq_routing.h>
10 #define ID_SLOT_PCI_NET 1 // ThinCan ethernet
11 #define ID_SLOT_PCI_RSVD1 2 // reserved entry 1
12 #define ID_SLOT_PCI_RSVD3 3 // reserved entry 2
13 #define ID_SLOT_PCI_RSVD2 4 // reserved entry 3
14 #define ID_EMBED_PCI 0xff // onboard PCI device
16 // CS5535 PCI INT[A-D] Interrupt Routing lines.
17 #define NO_CONNECT 0 // not used
18 #define CS_PCI_INTA 1 // PCI INTA
19 #define CS_PCI_INTB 2 // PCI INTB
20 #define CS_PCI_INTC 3 // PCI INTC
21 #define CS_PCI_INTD 4 // PCI INTD
23 // IRQ bitmap reference line FEDCBA9876543210
25 #define PCI_IRQ 0xc20 // PCI allowed IRQs here
27 const struct irq_routing_table intel_irq_routing_table =
29 PIRQ_SIGNATURE, /* u32 signature */
30 PIRQ_VERSION, /* u16 version */
31 32+16*6, /* there can be total 2 devices on the bus */
32 0x00, /* Where the interrupt router lies (bus) */
33 (0x12<<3)|0x0, /* Where the interrupt router lies (dev) */
34 0x0800, /* IRQs devoted exclusively to PCI usage */
37 0x00000000, /* Crap (miniport) */
38 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
39 0xdf, /* u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */
41 /* bus, dev|fn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */
42 // Geode GX3 Host Bridge and VGA Graphics
43 {0, 0x01<<3, {{CS_PCI_INTA, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
44 // Realtek RTL8100/8139 Network Controller
45 {0, 0x0d<<3, {{CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}}, ID_SLOT_PCI_NET, 0x0},
46 // Reserved for future extensions
47 {0, 0x0c<<3, {{CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}}, ID_SLOT_PCI_RSVD1, 0x0},
48 // Geode CS5535/CS5536 IO Companion: USB controllers, IDE, Audio.
49 {0, 0x0f<<3, {{CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
50 // Reserved for future extensions
51 {0, 0x0e<<3, {{CS_PCI_INTC, PCI_IRQ}, {CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}}, ID_SLOT_PCI_RSVD2, 0x0},
52 // Reserved for future extensions
53 {0, 0x0b<<3, {{CS_PCI_INTD, PCI_IRQ}, {CS_PCI_INTA, PCI_IRQ}, {CS_PCI_INTB, PCI_IRQ}, {CS_PCI_INTC, PCI_IRQ}}, ID_SLOT_PCI_RSVD3, 0x0}
57 unsigned long write_pirq_routing_table(unsigned long addr)
59 return copy_pirq_routing_table(addr);