From 2c18ba5bd7e279cd9e55fcfc93c180d52296a374 Mon Sep 17 00:00:00 2001 From: Stephen Douthit Date: Fri, 2 Aug 2019 17:05:03 -0400 Subject: soc/intel/dnv: Don't clobber SATA_MAP while trying to set mode SATA Mode Select is bit 16 of the SATA General Configuration register. This code currently incorrectly pokes at the Port Clock Disable bits in the Port Mapping Register, and without clock the affected ports can't link. Change-Id: I37104f520a869bd45a32cfd271d0b893aec3c8ed Signed-off-by: Stephen Douthit Reviewed-on: https://review.coreboot.org/c/coreboot/+/34663 Tested-by: build bot (Jenkins) Reviewed-by: Vanessa Eusebio Reviewed-by: David Guckian Reviewed-by: Patrick Georgi --- src/soc/intel/denverton_ns/sata.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/soc/intel/denverton_ns/sata.c') diff --git a/src/soc/intel/denverton_ns/sata.c b/src/soc/intel/denverton_ns/sata.c index d53d5535f0..891d95f934 100644 --- a/src/soc/intel/denverton_ns/sata.c +++ b/src/soc/intel/denverton_ns/sata.c @@ -31,7 +31,6 @@ static void sata_init(struct device *dev) { u32 reg32; - u16 reg16; u32 abar; printk(BIOS_DEBUG, "SATA: Initializing...\n"); @@ -46,10 +45,9 @@ static void sata_init(struct device *dev) printk(BIOS_DEBUG, "SATA: Controller in AHCI mode.\n"); /* Set the controller mode */ - reg16 = pci_read_config16(dev, SATA_MAP); - reg16 &= ~(3 << 6); - reg16 |= SATA_MAP_AHCI; - pci_write_config16(dev, SATA_MAP, reg16); + reg32 = pci_read_config32(dev, SATAGC); + reg32 &= ~SATAGC_AHCI; + pci_write_config32(dev, SATAGC, reg32); /* Initialize AHCI memory-mapped space */ abar = pci_read_config32(dev, PCI_BASE_ADDRESS_5); -- cgit v1.2.3