From: Patrick Georgi Date: Fri, 28 Oct 2011 07:01:54 +0000 (+0200) Subject: sb600: Implement EHCI workaround X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=commitdiff_plain;h=0f8590f9ca8026af62efa510a1c717d2d0729e3d sb600: Implement EHCI workaround Linux implements it itself, but older Linuxes and other systems might not. Without this, the host controller might not respond to drivers. Change-Id: I4ff0e3683c02e7aa00d188428847c64c4c5d589d Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/345 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- diff --git a/src/southbridge/amd/sb600/usb.c b/src/southbridge/amd/sb600/usb.c index 7539f083c..7ff8f5c9a 100644 --- a/src/southbridge/amd/sb600/usb.c +++ b/src/southbridge/amd/sb600/usb.c @@ -119,6 +119,11 @@ static void usb_init2(struct device *dev) dword &= ~(1 << 28); pci_write_config32(dev, 0x50, dword); + /* EHCI Erratum (adapted from Linux) */ + dword = pci_read_config32(dev, 0x53); + dword |= (1 << 3); + pci_write_config32(dev, 0x53, dword); + /* RPR5.14 Disable USB PHY PLL Reset signal to come from ACPI */ byte = pci_read_config8(dev, 0x54); byte &= ~(1 << 0);