diff options
Diffstat (limited to 'src/soc/intel/broadwell/refcode/usb.c')
-rw-r--r-- | src/soc/intel/broadwell/refcode/usb.c | 23 |
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) { /* |