From 8cc78ead9b73bc91a7891fda130d169b89c746db Mon Sep 17 00:00:00 2001 From: Andrew Ip Date: Mon, 28 Oct 2002 07:43:55 +0000 Subject: [PATCH] added southbridge/ethernet/keyboard/nvram fixup --- src/mainboard/via/epia/mainboard.c | 40 ++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/mainboard/via/epia/mainboard.c b/src/mainboard/via/epia/mainboard.c index 9a6c13ee0c..5bbab57f49 100644 --- a/src/mainboard/via/epia/mainboard.c +++ b/src/mainboard/via/epia/mainboard.c @@ -5,23 +5,59 @@ #include +void +ethernet_fixup() +{ + struct pci_dev *dev; + u8 byte; + + printk_info("Ethernet fixup\n"); + dev = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231, 0); + if (dev != NULL) { + /* enable lan */ + pci_read_config_byte(dev, 0x51, &byte); + printk_debug("Get FC 2 in reg. 51 is 0x%x\n", byte); + byte |= 0x30; + printk_debug("Set FC 2 in reg. 51 to 0x%x\n", byte); + pci_write_config_byte(dev, 0x51, byte); + + /* setup interrupt */ + pci_read_config_byte(dev, 0x4d, &byte); + printk_debug("Get IRQ Control in reg. 4d is 0x%x\n", byte); + byte |= 0x20; + printk_debug("Set IRQ Control in reg. 4d to 0x%x\n", byte); + pci_write_config_byte(dev, 0x4d, byte); + + /* setup PINTA */ + pci_read_config_byte(dev, 0x55, &byte); + printk_debug("Get IRQ Control in reg. 55 is 0x%x\n", byte); + byte = 0x50; + printk_debug("Set IRQ Control in reg. 55 to 0x%x\n", byte); + pci_write_config_byte(dev, 0x55, byte); + } +} + void mainboard_fixup() { - + printk_info("Mainboard fixup\n"); } void final_southbridge_fixup() { + printk_info("Southbridge fixup\n"); + nvram_on(); + keyboard_on(); + southbridge_fixup(); + ethernet_fixup(); } void final_mainboard_fixup() { final_southbridge_fixup(); - printk_info("Final mainboard fixup\n"); }