summaryrefslogtreecommitdiff
path: root/src/mainboard/digitallogic/msm800sev/mainboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/digitallogic/msm800sev/mainboard.c')
-rw-r--r--src/mainboard/digitallogic/msm800sev/mainboard.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mainboard/digitallogic/msm800sev/mainboard.c b/src/mainboard/digitallogic/msm800sev/mainboard.c
index 93ef69c7f6..a16dc7bfd9 100644
--- a/src/mainboard/digitallogic/msm800sev/mainboard.c
+++ b/src/mainboard/digitallogic/msm800sev/mainboard.c
@@ -4,8 +4,24 @@
#include <device/pci_ids.h>
#include <device/pci_ops.h>
#include <arch/io.h>
+#include <cpu/x86/msr.h>
+#include <cpu/amd/lxdef.h>
#include "chip.h"
+#define DIVIL_LBAR_GPIO 0x5140000c
+static void init_gpio()
+ {
+ msr_t msr;
+ printk_debug("Initializing GPIO module...\n");
+
+ // initialize the GPIO LBAR
+ msr.lo = GPIO_BASE;
+ msr.hi = 0x0000f001;
+ wrmsr(DIVIL_LBAR_GPIO, msr);
+ msr = rdmsr(DIVIL_LBAR_GPIO);
+ printk_debug("DIVIL_LBAR_GPIO set to 0x%08x 0x%08x\n", msr.hi, msr.lo);
+}
+
static void init(struct device *dev)
{
@@ -17,6 +33,7 @@ static void init(struct device *dev)
printk_debug("DIGITALLOGIC MSM800SSEV ENTER %s\n", __FUNCTION__);
+#if 0
// 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);
@@ -33,6 +50,8 @@ static void init(struct device *dev)
nic = dev_find_slot(bus, devNic);
if (!nic) printk_err("Could not find USB\n");
else pci_write_config8(nic, PCI_INTERRUPT_LINE, irqNic);
+#endif
+ init_gpio();
printk_debug("DIGITALLOGIC MSM800SSEV EXIT %s\n", __FUNCTION__);
}