aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/amd/rumba/mainboard.c
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2006-05-03 03:30:23 +0000
committerRonald G. Minnich <rminnich@gmail.com>2006-05-03 03:30:23 +0000
commitc01fe5d1b674231546c070f035b0ab3c2d8ba3f5 (patch)
tree69d536570a7e78c5c023260698574e106f37a08f /src/mainboard/amd/rumba/mainboard.c
parentdc7b71cffa92173541ab17c8d2959cbb369a44b5 (diff)
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.c31
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,
};