diff options
author | Uwe Hermann <uwe@hermann-uwe.de> | 2007-05-09 07:52:14 +0000 |
---|---|---|
committer | Uwe Hermann <uwe@hermann-uwe.de> | 2007-05-09 07:52:14 +0000 |
commit | a440f7fd8c2db22ef84b7b85839cdcbbb1afdc09 (patch) | |
tree | 4f2a6d036784735fcddf37462f2c89431202b802 /src/mainboard/asi/mb_5blmp/irq_tables.c | |
parent | 6b83e46f3bb3434600c26fdfab3b802028d431a3 (diff) | |
download | coreboot-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.c | 39 |
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); +} |