diff options
author | Patrick Rudolph <patrick.rudolph@9elements.com> | 2019-11-30 09:42:20 +0100 |
---|---|---|
committer | Patrick Rudolph <siro@das-labor.org> | 2019-12-02 07:45:38 +0000 |
commit | ae64f22e8d5707ef715ad4bd01b6181653a3f9ca (patch) | |
tree | 532862f66e103515ffb5ea589bfb6250bfc3c8df | |
parent | a8582c4c0266bc54db7957173b496dcf1cb4a9e7 (diff) |
drivers/usb/ehci_debug: Add x86_64 support
Use proper int to pointer conversions.
Tested on Lenovo T410 with x86_64 enabled. Still works.
Change-Id: I4ed62297fb47d7d83d4b28e80f3770de99ce70f7
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37393
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/drivers/usb/ehci_debug.c | 4 | ||||
-rw-r--r-- | src/drivers/usb/ehci_debug.h | 2 | ||||
-rw-r--r-- | src/drivers/usb/pci_ehci.c | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c index d6b468c3a2..318dfe7f59 100644 --- a/src/drivers/usb/ehci_debug.c +++ b/src/drivers/usb/ehci_debug.c @@ -434,7 +434,7 @@ static int ehci_wait_for_port(struct ehci_regs *ehci_regs, int port) -static int usbdebug_init_(unsigned int ehci_bar, unsigned int offset, struct ehci_debug_info *info) +static int usbdebug_init_(uintptr_t ehci_bar, unsigned int offset, struct ehci_debug_info *info) { struct ehci_caps *ehci_caps; struct ehci_regs *ehci_regs; @@ -653,7 +653,7 @@ void dbgp_put(struct dbgp_pipe *pipe) } #if ENV_RAMSTAGE -void usbdebug_re_enable(unsigned int ehci_base) +void usbdebug_re_enable(uintptr_t ehci_base) { struct ehci_debug_info *dbg_info = dbgp_ehci_info(); u64 diff; diff --git a/src/drivers/usb/ehci_debug.h b/src/drivers/usb/ehci_debug.h index 0f20c2f5fb..a6a3e55826 100644 --- a/src/drivers/usb/ehci_debug.h +++ b/src/drivers/usb/ehci_debug.h @@ -16,7 +16,7 @@ #include <types.h> -void usbdebug_re_enable(unsigned int ehci_base); +void usbdebug_re_enable(uintptr_t ehci_base); void usbdebug_disable(void); /* Returns 0 on success and sets MMIO base and dbg_offset if EHCI debug diff --git a/src/drivers/usb/pci_ehci.c b/src/drivers/usb/pci_ehci.c index a740d50dbf..dfc78cc666 100644 --- a/src/drivers/usb/pci_ehci.c +++ b/src/drivers/usb/pci_ehci.c @@ -116,6 +116,7 @@ void pci_ehci_read_resources(struct device *dev) u8 *pci_ehci_base_regs(pci_devfn_t sdev) { - u8 *base = (u8 *)(pci_s_read_config32(sdev, EHCI_BAR_INDEX) & ~0x0f); + u32 bar = pci_s_read_config32(sdev, EHCI_BAR_INDEX) & ~0x0f; + u8 *base = (u8 *)(uintptr_t)bar; return base + HC_LENGTH(read32(base)); } |