diff options
Diffstat (limited to 'src/mainboard/digitallogic')
-rw-r--r-- | src/mainboard/digitallogic/msm586seg/Config.lb | 3 | ||||
-rw-r--r-- | src/mainboard/digitallogic/msm586seg/irq_tables.c | 9 | ||||
-rw-r--r-- | src/mainboard/digitallogic/msm586seg/mainboard.c | 7 |
3 files changed, 12 insertions, 7 deletions
diff --git a/src/mainboard/digitallogic/msm586seg/Config.lb b/src/mainboard/digitallogic/msm586seg/Config.lb index 99f37a7234..8f27fe694c 100644 --- a/src/mainboard/digitallogic/msm586seg/Config.lb +++ b/src/mainboard/digitallogic/msm586seg/Config.lb @@ -135,6 +135,9 @@ chip cpu/amd/sc520 device pci 0.0 on end chip drivers/pci/onboard + device pci 12.0 on end # enet + end + chip drivers/pci/onboard device pci 14.0 on end # 69000 register "rom_address" = "0x2000000" end diff --git a/src/mainboard/digitallogic/msm586seg/irq_tables.c b/src/mainboard/digitallogic/msm586seg/irq_tables.c index 0b56f75920..4e7a1fe82e 100644 --- a/src/mainboard/digitallogic/msm586seg/irq_tables.c +++ b/src/mainboard/digitallogic/msm586seg/irq_tables.c @@ -21,13 +21,8 @@ const struct irq_routing_table intel_irq_routing_table = { 0x50, /* 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 */ - {0x00,(0x09<<3)|0x0, {{0x30, 0x8e80}, {0x31, 0x8e80}, {0x32, 0x8e80}, {0x33, 0x08e80}}, 0x1, 0x0}, - {0x00,(0x0a<<3)|0x0, {{0x31, 0x8e80}, {0x32, 0x8e80}, {0x33, 0x8e80}, {0x30, 0x08e80}}, 0x2, 0x0}, - {0x00,(0x0b<<3)|0x0, {{0x32, 0x8e80}, {0x33, 0x8e80}, {0x30, 0x8e80}, {0x31, 0x08e80}}, 0x3, 0x0}, - {0x00,(0x0c<<3)|0x0, {{0x33, 0x8e80}, {0x30, 0x8e80}, {0x31, 0x8e80}, {0x32, 0x08e80}}, 0x4, 0x0}, - {0x00,(0x0f<<3)|0x0, {{0x32, 0x8e80}, {0x00, 0x8e80}, {0x00, 0x8e80}, {0x00, 0x08e80}}, 0x0, 0x0}, - {0x00,(0x12<<3)|0x0, {{0x30, 0x8e80}, {0x00, 0x8e80}, {0x00, 0x8e80}, {0x00, 0x08e80}}, 0x0, 0x0}, - {0x00,(0x14<<3)|0x0, {{0x30, 0x8e80}, {0x31, 0x8e80}, {0x32, 0x8e80}, {0x33, 0x08e80}}, 0x0, 0x0}, + {0x00,(0x12<<3)|0x0, {{0x30, 0x8000}, {0x00, 0x0}, {0x00, 0x0}, {0x00, 0x00}}, 0x0, 0x0}, + {0x00,(0x14<<3)|0x0, {{0x30, 0x8000}, {0x31, 0x0}, {0x32, 0x0}, {0x33, 0x00}}, 0x0, 0x0}, } }; unsigned long write_pirq_routing_table(unsigned long addr) diff --git a/src/mainboard/digitallogic/msm586seg/mainboard.c b/src/mainboard/digitallogic/msm586seg/mainboard.c index 55607ac8c0..13f28f43b7 100644 --- a/src/mainboard/digitallogic/msm586seg/mainboard.c +++ b/src/mainboard/digitallogic/msm586seg/mainboard.c @@ -35,6 +35,7 @@ static void irqdump() - set ADDDECTL (now done in raminit.c in cpu/amd/sc520 */ static void enable_dev(struct device *dev) { + extern unsigned char *rom_start, *rom_end; volatile struct mmcrpic *pic = MMCRPIC; volatile struct mmcr *mmcr = MMCRDEFAULT; @@ -132,6 +133,12 @@ static void enable_dev(struct device *dev) { */ /* follow fuctory here */ mmcr->dmacontrol.extchanmapa = 0x3210; + + /* hack for IDIOTIC need to fix rom_start */ + printk_err("Patching rom_start due to sc520 limits\n"); + rom_start = 0x2000000 + 0x40000; + rom_end = rom_start + PAYLOAD_SIZE - 1; + } struct chip_operations mainboard_digitallogic_msm586seg_ops = { |