Move QRANK_DIMM_SUPPORT to Kconfig, removing it from romstage.c
[coreboot.git] / src / mainboard / arima / hdama / irq_tables.c
index 286905c26f3a22e6319a66258da657b3f9666549..b95bda22443ea33201e9a8afda54d6453ee23b39 100644 (file)
@@ -1,31 +1,48 @@
-/* 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
+#include <arch/pirq_routing.h>
+#include <device/pci.h>
 
-   Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM
-*/
+#define IRQ_ROUTER_BUS         1
+#define IRQ_ROUTER_DEVFN       PCI_DEVFN(4,3)
+#define IRQ_ROUTER_VENDOR      0x1022
+#define IRQ_ROUTER_DEVICE      0x746b
 
-#include <arch/pirq_routing.h>
+#define AVAILABLE_IRQS 0xdef8
+#define IRQ_SLOT(slot, bus, dev, fn, linka, linkb, linkc, linkd) \
+       { bus, (dev<<3)|fn, {{ linka, AVAILABLE_IRQS}, { linkb, AVAILABLE_IRQS}, \
+       {linkc, AVAILABLE_IRQS}, {linkd, AVAILABLE_IRQS}}, slot, 0}
+
+/*  Each IRQ_SLOT entry consists of:
+ *  bus, devfn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu
+ */
 
 const struct irq_routing_table intel_irq_routing_table = {
-       PIRQ_SIGNATURE, /* u32 signature */
-       PIRQ_VERSION,   /* u16 version   */
-       32+16*7,        /* there can be total 7 devices on the bus */
-       0,              /* Where the interrupt router lies (bus) */
-       (5<<3)|3,       /* Where the interrupt router lies (dev) */
-       0xc20,          /* IRQs devoted exclusively to PCI usage */
-       0x1022,         /* Vendor */
-       0x746b,         /* Device */
-       0,              /* Crap (miniport) */
+       PIRQ_SIGNATURE,         /* u32 signature */
+       PIRQ_VERSION,           /* u16 version   */
+       32+16*CONFIG_IRQ_SLOT_COUNT,    /* there can be total CONFIG_IRQ_SLOT_COUNT table entries */
+       IRQ_ROUTER_BUS,         /* Where the interrupt router lies (bus) */
+       IRQ_ROUTER_DEVFN,       /* Where the interrupt router lies (dev) */
+       0x00,                   /* IRQs devoted exclusively to PCI usage */
+       IRQ_ROUTER_VENDOR,      /* Vendor */
+       IRQ_ROUTER_DEVICE,      /* Device */
+       0x00,                   /* Miniport data */
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
-       0xdf,           /*  u8 checksum , mod 256 checksum must give zero */
-       {  /* bus, devfn,     {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu  */
-           {0x02, (5<<3)|0, {{0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0xdeb8}}, 0x02, 0x00},
-           {0x02, (6<<3)|0, {{0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0xdeb8}, {0x02, 0xdeb8}}, 0x03, 0x00},
-           {0x02, (7<<3)|0, {{0x04, 0xdeb8}, {0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}}, 0x04, 0x00},
-           {0x02, (1<<3)|1, {{0x01, 0xdeb8}, {0x01, 0xdeb8}, {0x01, 0xdeb8}, {0x01, 0xdeb8}}, 0x00, 0x00},
-           {0x00, (5<<3)|1, {{0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}}, 0x00, 0x00},
-           {0x00, (2<<3)|0, {{0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}}, 0x00, 0x00},
-           {0xff, 0xff,     {{0xff, 0xffff}, {0xff, 0xffff}, {0xff, 0xffff}, {0xff, 0xffff}}, 0xff, 0xff},
+       0xb0,           /*  u8 checksum , mod 256 checksum must give zero */
+       {       /* slot(0=onboard), devfn, irqlinks (line id, 0=not routed) */
+               /* PCI Slot 1-6 */
+               IRQ_SLOT(1, 3,1,0, 2,3,4,1 ),
+               IRQ_SLOT(2, 3,2,0, 3,4,1,2 ),
+               IRQ_SLOT(3, 2,1,0, 2,3,4,1 ),
+               IRQ_SLOT(4, 2,2,0, 3,4,1,2 ),
+               IRQ_SLOT(5, 4,5,0, 2,3,4,1 ),
+               IRQ_SLOT(6, 4,4,0, 1,2,3,4 ),
+               /* Onboard NICs */
+               IRQ_SLOT(0, 2,3,0, 4,0,0,0 ),
+               IRQ_SLOT(0, 2,4,0, 4,0,0,0 ),
+               /* Let Linux know about bus 1 */
+               IRQ_SLOT(0, 1,4,3, 0,0,0,0 ),
        }
 };
+unsigned long write_pirq_routing_table(unsigned long addr)
+{
+        return copy_pirq_routing_table(addr);
+}