diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2011-07-05 13:01:26 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2011-08-29 10:58:47 -0700 |
commit | 61f94468277f418e3ca904ddf612bd0d81dbf742 (patch) | |
tree | c444232d4ab14bacecfe6bffa4116a48647fe261 /drivers/usb/host | |
parent | 9136773f0da367d4f2ad41f93673c5035594b488 (diff) |
ehci: Add 64-bit controller support
On EHCI controller with 64-bit address space support, we must initialize
properly the high word for the PCI bus master accesses.
BUG=chrome-os-partner:3914
TEST=Boot a Chromeos image from a USB key on Alex :
"usb start ; fatload usb 1:c 3000000 syslinux/vmlinuz.a ; zboot 3000000"
and launch a TFTP transfer using a USB-ethernet dongle.
Change-Id: I61026276c27d82707469f7296deaffef4f5d7926
Reviewed-on: http://gerrit.chromium.org/gerrit/3655
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 319c0d12f91..4051923f833 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -850,6 +850,9 @@ int usb_lowlevel_init(void) if (ehci_hcd_init() != 0) return -1; #endif + /* Set the high address word (aka segment) for 64-bit controller */ + if (ehci_readl(&hccr->cr_hccparams) & 1) /* 64-bit Addressing */ + ehci_writel(&hcor->or_ctrldssegment, 0); /* Set head of reclaim list */ memset(&qh_list, 0, sizeof(qh_list)); |