[coreboot-gerrit] Patch set updated for coreboot: fe4e39e amd/agesa/hudson: Add support for hiding the USB1.1-only OHCI

Tobias Diedrich (ranma+coreboot@tdiedrich.de) gerrit at coreboot.org
Sun Nov 9 20:27:31 CET 2014


Tobias Diedrich (ranma+coreboot at tdiedrich.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7355

-gerrit

commit fe4e39e509b623a27783a5c48c0bbdc4e6681c54
Author: Tobias Diedrich <ranma+coreboot at tdiedrich.de>
Date:   Sat Nov 8 00:38:33 2014 +0100

    amd/agesa/hudson: Add support for hiding the USB1.1-only OHCI
    
    The hudson chipset has 4 USB controllers, the fourth is USB1.1-only and
    (presumably) not used very often, add support for hiding it:
    00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 03) USB1 (3.0, XHCI)
    00:10.1 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 03)
    00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11) USB2 (2.0, OHCI+EHCI)
    00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11)
    00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11) USB3 (2.0, OHCI+EHCI)
    00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11)
    00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11) USB4 (1.1, OHCI only)
    
    Change-Id: I804e7852fd0a6f870dd118b429473cb06ebac9a4
    Signed-off-by: Tobias Diedrich <ranma+coreboot at tdiedrich.de>
---
 src/southbridge/amd/agesa/hudson/hudson.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/southbridge/amd/agesa/hudson/hudson.c b/src/southbridge/amd/agesa/hudson/hudson.c
index 3b57221..05f1722 100644
--- a/src/southbridge/amd/agesa/hudson/hudson.c
+++ b/src/southbridge/amd/agesa/hudson/hudson.c
@@ -86,7 +86,7 @@ void hudson_enable(device_t dev)
 {
 	printk(BIOS_DEBUG, "hudson_enable()\n");
 	switch (dev->path.pci.devfn) {
-	case (0x14 << 3) | 7: /* 0:14.7  SD */
+	case PCI_DEVFN(0x14, 7): /* 0:14.7  SD */
 		if (dev->enabled == 0) {
 			// read the VENDEV ID
 			device_t sd_dev = dev_find_slot( 0, PCI_DEVFN( 0x14, 7));
@@ -109,6 +109,20 @@ void hudson_enable(device_t dev)
 			pm_write8(0xd3, reg8);
 		}
 		break;
+	case PCI_DEVFN(0x14, 5): /* 0:14.5  USB1.1 OHCI (USB4) */
+		if (dev->enabled == 0) {
+			// read the VENDEV ID
+			device_t usb_dev = dev_find_slot( 0, PCI_DEVFN( 0x14, 5));
+			u32 usb_device_id = pci_read_config32(usb_dev, 0) >> 16;
+			u8 reg8;
+			if (usb_device_id == PCI_DEVICE_ID_ATI_SB900_USB_20_5) {
+				/* turn off and remove device 0:14.5 from PCI space */
+				reg8 = pm_read8(0xef);
+				reg8 &= ~(1 << 6);
+				pm_write8(0xef, reg8);
+			}
+		}
+		break;
 	default:
 		break;
 	}



More information about the coreboot-gerrit mailing list