southbridge/amd/sb700: Add CMOS option to disable legacy USB support

Change-Id: I136c259136ce66a0c319a965ae0ee27f66dce1b3
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: https://review.coreboot.org/13155
Tested-by: build bot (Jenkins)
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Timothy Pearson
2015-11-24 14:11:56 -06:00
committed by Martin Roth
parent e10d07e336
commit 40e1fac56a

View File

@@ -66,6 +66,7 @@ static void sm_init(device_t dev)
u32 dword; u32 dword;
void *ioapic_base; void *ioapic_base;
uint32_t power_state; uint32_t power_state;
uint32_t enable_legacy_usb;
u32 nmi_option; u32 nmi_option;
printk(BIOS_INFO, "sm_init().\n"); printk(BIOS_INFO, "sm_init().\n");
@@ -75,10 +76,23 @@ static void sm_init(device_t dev)
ioapic_base = (void *)(pci_read_config32(dev, 0x74) & (0xffffffe0)); ioapic_base = (void *)(pci_read_config32(dev, 0x74) & (0xffffffe0));
setup_ioapic(ioapic_base, 0); /* Don't rename IOAPIC ID. */ setup_ioapic(ioapic_base, 0); /* Don't rename IOAPIC ID. */
enable_legacy_usb = 1;
get_option(&enable_legacy_usb, "enable_legacy_usb");
/* 2.10 Interrupt Routing/Filtering */ /* 2.10 Interrupt Routing/Filtering */
dword = pci_read_config8(dev, 0x62); byte = pci_read_config8(dev, 0x62);
dword |= 3; if (enable_legacy_usb)
pci_write_config8(dev, 0x62, dword); byte |= 0x3;
else
byte &= ~0x3;
pci_write_config8(dev, 0x62, byte);
byte = pci_read_config8(dev, 0x67);
if (enable_legacy_usb)
byte |= 0x1 << 7;
else
byte &= ~(0x1 << 7);
pci_write_config8(dev, 0x67, byte);
/* Delay back to back interrupts to the CPU. */ /* Delay back to back interrupts to the CPU. */
dword = pci_read_config16(dev, 0x64); dword = pci_read_config16(dev, 0x64);