summaryrefslogtreecommitdiff
path: root/src/soc/intel/broadwell/refcode/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/broadwell/refcode/usb.c')
-rw-r--r--src/soc/intel/broadwell/refcode/usb.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/soc/intel/broadwell/refcode/usb.c b/src/soc/intel/broadwell/refcode/usb.c
index 818b40a59f..4b9dd99749 100644
--- a/src/soc/intel/broadwell/refcode/usb.c
+++ b/src/soc/intel/broadwell/refcode/usb.c
@@ -1,5 +1,6 @@
#define __SIMPLE_DEVICE__ 1
+#include <console/console.h>
#include <device/pci_ops.h>
#include <soc/rcba.h>
#include <soc/iobp.h>
@@ -7,6 +8,28 @@
#include "pch.h"
#include "usb.h"
+int PchStartUsbInit(void *usb_pol, uintptr_t ehcibar, uintptr_t xhcibar, uint8_t revision)
+{
+ printk(BIOS_DEBUG, "%s: revision is %d.\n", __func__, revision);
+ printk(BIOS_DEBUG, "EHCIBAR is 0x%lx, XHCIBAR is 0x%lx.\n", ehcibar, xhcibar);
+
+ if (usb_pol == NULL) {
+ printk(BIOS_ERR, "usb_pol pointer is NULL!\n");
+ return 0x80000002;
+ }
+
+ uint32_t rcba_fd = RCBA32(FD);
+
+ int ret = CommonUsbInit(usb_pol, ehcibar, xhcibar, 0, RCBA_BASE_ADDRESS, &rcba_fd,
+ revision);
+
+ if (ret < 0) {
+ printk(BIOS_ERR, "CommonUsbInit returns 0x%x!\n", ret);
+ }
+ RCBA32(FD) = rcba_fd;
+ return ret;
+}
+
static void finalize_ehci(void)
{
/*