add the msm800srv ; put the usb in the right place.
[coreboot.git] / src / mainboard / digitallogic / msm800sev / irq_tables.c
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
4  *
5  * Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM
6 */
7
8 #include <arch/pirq_routing.h>
9
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
15
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
22
23 // IRQ bitmap reference line    FEDCBA9876543210
24 //                                                              0000110000100000b
25 #define PCI_IRQ                                 0xc20   // PCI allowed IRQs here
26
27 const struct irq_routing_table intel_irq_routing_table = 
28 {
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 */
35         0x1022,                 /* Vendor */
36         0x208f,                 /* Device */
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) */
40         {
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}
54         }
55 };
56
57 unsigned long write_pirq_routing_table(unsigned long addr)
58 {
59         return copy_pirq_routing_table(addr);
60 }