diff options
author | Ronald G. Minnich <rminnich@gmail.com> | 2006-09-19 17:37:32 +0000 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2006-09-19 17:37:32 +0000 |
commit | 5f23b6cd7d97a25aecaa29adb5dcb39afa296af6 (patch) | |
tree | 472213f437b2a14933925216590194096c5bb264 /src/mainboard/digitallogic/msm800sev/mainboard.c | |
parent | a341ee2646bed2d7f50c4b42f44acf18962f04fa (diff) | |
download | coreboot-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.c | 49 |
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, + +}; |