From a440f7fd8c2db22ef84b7b85839cdcbbb1afdc09 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 9 May 2007 07:52:14 +0000 Subject: 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 Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2641 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/mainboard/asi/mb_5blmp/irq_tables.c | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/mainboard/asi/mb_5blmp/irq_tables.c (limited to 'src/mainboard/asi/mb_5blmp/irq_tables.c') 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 + +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); +} -- cgit v1.2.3