diff options
author | Ronald G. Minnich <rminnich@gmail.com> | 2006-05-03 03:30:23 +0000 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2006-05-03 03:30:23 +0000 |
commit | c01fe5d1b674231546c070f035b0ab3c2d8ba3f5 (patch) | |
tree | 69d536570a7e78c5c023260698574e106f37a08f /src/mainboard/amd/rumba/mainboard.c | |
parent | dc7b71cffa92173541ab17c8d2959cbb369a44b5 (diff) | |
download | coreboot-c01fe5d1b674231546c070f035b0ab3c2d8ba3f5.tar.xz |
more changes; rumba enet works fine now.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2290 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/amd/rumba/mainboard.c')
-rw-r--r-- | src/mainboard/amd/rumba/mainboard.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/mainboard/amd/rumba/mainboard.c b/src/mainboard/amd/rumba/mainboard.c index 133d38fd30..614b87154c 100644 --- a/src/mainboard/amd/rumba/mainboard.c +++ b/src/mainboard/amd/rumba/mainboard.c @@ -6,7 +6,38 @@ #include <arch/io.h> #include "chip.h" +static void init(struct device *dev) { + struct mainboard_amd_rumba_config *mainboard = (struct mainboard_amd_rumba_config*)dev->chip_info; + device_t nic = NULL; + unsigned bus = 0; + unsigned devfn = PCI_DEVFN(0xd, 0); + int nicirq = 1; + + if (mainboard->nicirq) + nicirq = mainboard->nicirq; + + printk_debug("AMD RUMBA ENTER %s\n", __FUNCTION__); + + if (nicirq) { + printk_debug("%s (%x,%x)SET PCI interrupt line to %d\n", + __FUNCTION__, bus, devfn, nicirq); + nic = dev_find_slot(bus, devfn); + if (! nic){ + printk_err("Could not find NIC\n"); + } else { + pci_write_config8(nic, PCI_INTERRUPT_LINE, nicirq); + } + } + printk_debug("AMD RUMBA EXIT %s\n", __FUNCTION__); +} + +static void enable_dev(struct device *dev) +{ + dev->ops->init = init; +} + struct chip_operations mainboard_amd_rumba_ops = { CHIP_NAME("AMD Rumba mainboard ") + .enable_dev = enable_dev, }; |