From 4d255a2d5ebd82882b049396f375d49f4e88f3e3 Mon Sep 17 00:00:00 2001 From: Li-Ta Lo Date: Tue, 8 May 2001 02:43:15 +0000 Subject: [PATCH] add correct PCI IRQ table and DRAM Shadow --- src/mainboard/sis/550/irq_tables.c | 13 +++++++------ src/northsouthbridge/sis/550/southbridge.c | 18 +++++++++++------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/mainboard/sis/550/irq_tables.c b/src/mainboard/sis/550/irq_tables.c index 43ae295515..192b4b5a06 100644 --- a/src/mainboard/sis/550/irq_tables.c +++ b/src/mainboard/sis/550/irq_tables.c @@ -1,13 +1,13 @@ #include -#define CHECKSUM 0xe6 +#define CHECKSUM 0x1F 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 */ + 32+16*6, /* there can be total 6 devices on the bus */ 0x00, /* Bus 0 */ 0x08, /* Device 1, Function 0 */ - 0x0A20, /* reserve IRQ 11, 9, 5, for PCI */ + 0x0C20, /* reserve IRQ 11, 9, 5, for PCI */ 0x1039, /* Silicon Integrated System */ 0x0008, /* SiS 85C503/5513 ISA Bridge */ 0x00, /* u8 miniport_data - "crap" */ @@ -15,10 +15,12 @@ const struct irq_routing_table intel_irq_routing_table = { CHECKSUM, /* u8 checksum - mod 256 checksum must give zero */ { /* bus, devfn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */ - {0x00, 0x58, {{0x43, 0xdef8}, {0x44, 0xdef8}, {0x41, 0xdef8}, {0x42, 0xdef8}}, + {0x00, 0x48, {{0x42, 0xdef8}, {0x43, 0xdef8}, {0x44, 0xdef8}, {0x41, 0xdef8}}, 0x01, 0x00}, - {0x00, 0x60, {{0x44, 0xdef8}, {0x41, 0xdef8}, {0x42, 0xdef8}, {0x43, 0xdef8}}, + {0x00, 0x58, {{0x43, 0xdef8}, {0x44, 0xdef8}, {0x41, 0xdef8}, {0x42, 0xdef8}}, 0x02, 0x00}, + {0x00, 0x68, {{0x41, 0xdef8}, {0x42, 0xdef8}, {0x43, 0xdef8}, {0x44, 0xdef8}}, + 0x03, 0x00}, {0x00, 0x01, {{0x61, 0xdef8}, {0x00, 0xdef8}, {0x00, 0xdef8}, {0x00, 0xdef8}}, 0x00, 0x00}, {0x00, 0x10, {{0x41, 0xdef8}, {0x42, 0xdef8}, {0x43, 0xdef8}, {0x44, 0xdef8}}, @@ -27,4 +29,3 @@ const struct irq_routing_table intel_irq_routing_table = { 0x00, 0x00}, } }; - diff --git a/src/northsouthbridge/sis/550/southbridge.c b/src/northsouthbridge/sis/550/southbridge.c index 83f7bda1b6..3abbc2d7c7 100644 --- a/src/northsouthbridge/sis/550/southbridge.c +++ b/src/northsouthbridge/sis/550/southbridge.c @@ -24,7 +24,7 @@ void keyboard_on() u8 regval; struct pci_dev *pcidev; - /* turn on sis630 keyboard/mouse controller */ + /* turn on sis550 keyboard/mouse controller */ pcidev = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503, (void *)NULL); if (pcidev != NULL) { /* Register 0x47, Keyboard Controller */ @@ -40,7 +40,7 @@ void nvram_on() { struct pci_dev *pcidev; - /* turn on sis630 nvram. */ + /* turn on sis550 nvram. */ pcidev = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503, (void *)NULL); if (pcidev != NULL) { /* Enable FFF80000 to FFFFFFFF decode. You have to also enable @@ -57,14 +57,18 @@ void nvram_on() /* turn off nvram shadow in 0xc0000 ~ 0xfffff, i.e. accessing segment C - F is actually to the DRAM not NVRAM. For 512KB NVRAM case, this one should be disabled */ - pcidev = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_630, (void *)NULL); - DBG("device for SiS 630 is 0x%x\n", pcidev); + pcidev = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_550, (void *)NULL); + DBG("device for SiS 550 is 0x%x\n", pcidev); if (pcidev != NULL) { /* read cycle goes to System Memory */ - pci_write_config_word(pcidev, 0x70, 0x1fff); + //pci_write_config_word(pcidev, 0x70, 0x1fff); /* write cycle goest to System Memory */ - pci_write_config_word(pcidev, 0x72, 0x1fff); - DBG("Shadow memory disabled in SiS 630\n"); + //pci_write_config_word(pcidev, 0x72, 0x1fff); + pci_write_config_word(pcidev, 0x70, 0xFFFF); + pci_write_config_word(pcidev, 0x72, 0xFFFF); + pci_write_config_word(pcidev, 0x74, 0xFFFF); + pci_write_config_byte(pcidev, 0x76, 0xFF); + DBG("Shadow memory disabled in SiS 550\n"); } #endif