summaryrefslogtreecommitdiff
path: root/src/mainboard/digitallogic/msm800sev/mainboard.c
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2006-09-19 17:37:32 +0000
committerRonald G. Minnich <rminnich@gmail.com>2006-09-19 17:37:32 +0000
commit5f23b6cd7d97a25aecaa29adb5dcb39afa296af6 (patch)
tree472213f437b2a14933925216590194096c5bb264 /src/mainboard/digitallogic/msm800sev/mainboard.c
parenta341ee2646bed2d7f50c4b42f44acf18962f04fa (diff)
downloadcoreboot-5f23b6cd7d97a25aecaa29adb5dcb39afa296af6.tar.xz
add the msm800srv ; put the usb in the right place.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2426 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/digitallogic/msm800sev/mainboard.c')
-rw-r--r--src/mainboard/digitallogic/msm800sev/mainboard.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mainboard/digitallogic/msm800sev/mainboard.c b/src/mainboard/digitallogic/msm800sev/mainboard.c
new file mode 100644
index 0000000000..93ef69c7f6
--- /dev/null
+++ b/src/mainboard/digitallogic/msm800sev/mainboard.c
@@ -0,0 +1,49 @@
+#include <console/console.h>
+#include <device/device.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
+#include <device/pci_ops.h>
+#include <arch/io.h>
+#include "chip.h"
+
+
+static void init(struct device *dev)
+{
+ unsigned bus = 0;
+ unsigned devNic = PCI_DEVFN(0xd, 0);
+ unsigned devUsb = PCI_DEVFN(0xf, 4);
+ device_t usb = NULL, nic = NULL;
+ unsigned char irqUsb = 0xa, irqNic = 0xb;
+
+ printk_debug("DIGITALLOGIC MSM800SSEV ENTER %s\n", __FUNCTION__);
+
+ // FIXME: do we need to initialize USB OHCI this way?
+ printk_debug("%s (%x,%x) set USB PCI interrupt line to %d\n",
+ __FUNCTION__, bus, devUsb, irqUsb);
+
+ // initialize the USB controller
+ usb = dev_find_slot(bus, devUsb);
+ if (!usb) printk_err("Could not find USB\n");
+ else pci_write_config8(usb, PCI_INTERRUPT_LINE, irqUsb);
+
+ printk_debug("%s (%x,%x) set NIC PCI interrupt line to %d\n",
+ __FUNCTION__, bus, devNic, irqNic);
+
+ // initialize theEEPRO 100
+ nic = dev_find_slot(bus, devNic);
+ if (!nic) printk_err("Could not find USB\n");
+ else pci_write_config8(nic, PCI_INTERRUPT_LINE, irqNic);
+
+ printk_debug("DIGITALLOGIC MSM800SSEV EXIT %s\n", __FUNCTION__);
+}
+
+static void enable_dev(struct device *dev)
+{
+ dev->ops->init = init;
+}
+
+struct chip_operations mainboard_digitallogic_msm800sev_ops = {
+ CHIP_NAME("digitallogip msm800sev mainboard ")
+ .enable_dev = enable_dev,
+
+};