summaryrefslogtreecommitdiff
path: root/src/mainboard/asi/mb_5blmp/irq_tables.c
diff options
context:
space:
mode:
authorUwe Hermann <uwe@hermann-uwe.de>2007-05-09 07:52:14 +0000
committerUwe Hermann <uwe@hermann-uwe.de>2007-05-09 07:52:14 +0000
commita440f7fd8c2db22ef84b7b85839cdcbbb1afdc09 (patch)
tree4f2a6d036784735fcddf37462f2c89431202b802 /src/mainboard/asi/mb_5blmp/irq_tables.c
parent6b83e46f3bb3434600c26fdfab3b802028d431a3 (diff)
downloadcoreboot-a440f7fd8c2db22ef84b7b85839cdcbbb1afdc09.tar.xz
Add initial support for the ASI/BCom MB-5BLMP mainboard, as used in
the IGEL Winnet III thin client. It boots a Linux kernel, but there are some problems. The login prompt is never reached, it simply hangs at some point. One possible reason is the IRQ table, which needs fixing. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2641 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/asi/mb_5blmp/irq_tables.c')
-rw-r--r--src/mainboard/asi/mb_5blmp/irq_tables.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/mainboard/asi/mb_5blmp/irq_tables.c b/src/mainboard/asi/mb_5blmp/irq_tables.c
new file mode 100644
index 0000000000..32377d13d8
--- /dev/null
+++ b/src/mainboard/asi/mb_5blmp/irq_tables.c
@@ -0,0 +1,39 @@
+/* TODO: This is currently copied from the IEI NOVA-4899R target, but it's
+ * quite surely wrong for this board. It gets me further in the boot process
+ * than using no irq_tables.c file at all, though!
+ */
+
+/* TODO: Add license header. */
+
+#include <arch/pirq_routing.h>
+
+const struct irq_routing_table intel_irq_routing_table = {
+ PIRQ_SIGNATURE, /* u32 signature */
+ PIRQ_VERSION, /* u16 version */
+ 32+16*5, /* there can be total 5 devices on the bus */
+ 0x00, /* Where the interrupt router lies (bus) */
+ (0x12<<3)|0x0, /* Where the interrupt router lies (dev) */
+ 0xe00, /* IRQs devoted exclusively to PCI usage */
+ 0x1078, /* Vendor */
+ 0x0002, /* Device */
+ 0, /* Crap (miniport) */
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
+ 0x2d, /* u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */
+ {
+ /* bus, dev|fn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */
+ // USB
+ {0x00,(0x13<<3)|0x0, {{0x01, 0xdeb8}, {0x00, 0xdeb8}, {0x00, 0xdeb8}, {0x00, 0x0deb8}}, 0x0, 0x0},
+ // eth0
+ {0x00,(0x0a<<3)|0x0, {{0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x00, 0x0deb8}}, 0x0, 0x0},//0x3, 0x0},
+ // eth1
+ {0x00,(0x0b<<3)|0x0, {{0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x02, 0xdeb8}, {0x00, 0x0deb8}}, 0x0, 0x0},//0x2, 0x0},
+ // eth2
+ {0x00,(0x0c<<3)|0x0, {{0x04, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x00, 0x0deb8}}, 0x0, 0x0},//0x1, 0x0},
+ // PCI slot
+ {0x00,(0x0f<<3)|0x0, {{0x04, 0xdeb8}, {0x03, 0xdeb8}, {0x02, 0xdeb8}, {0x00, 0x0deb8}}, 0x0, 0x0},
+ }
+};
+unsigned long write_pirq_routing_table(unsigned long addr)
+{
+ return copy_pirq_routing_table(addr);
+}