add correct PCI IRQ table and DRAM Shadow
This commit is contained in:
parent
57ae756c26
commit
4d255a2d5e
2 changed files with 18 additions and 13 deletions
|
|
@ -1,13 +1,13 @@
|
|||
#include <i386_subr.h>
|
||||
|
||||
#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},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue