haswell: fix ACPI MCFG table

The acpi_fill_mcfg() was still using ivy/sandy PCI device ids which Hawell
obviously doesn't have. This resulted in an empty MCFG table. Instead of
relying on PCI device ids use dev/fn 0/0 since that is where the host
bridge always resides. Additionally remove the defines for the IB and SB
pci device ids. Replace them with mobile and ult Haswel device ids and
use those in the pci driver tables for the northbridge code.

Booted to Linux and noted that MCFG was properly parsed.

Change-Id: Ieaab2dfef0e9daf3edbd8a27efe0825d2beb9443
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/2748
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Aaron Durbin 2013-01-17 09:39:39 -06:00 committed by Ronald G. Minnich
parent 7af20698f6
commit 21efd8c037
3 changed files with 5 additions and 7 deletions

View File

@ -38,9 +38,7 @@ unsigned long acpi_fill_mcfg(unsigned long current)
u32 pciexbar_reg; u32 pciexbar_reg;
int max_buses; int max_buses;
dev = dev_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_SB, 0); dev = dev_find_slot(0, PCI_DEVFN(0, 0));
if (!dev)
dev = dev_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_IB, 0);
if (!dev) if (!dev)
return current; return current;

View File

@ -204,8 +204,8 @@ struct ied_header {
u8 reserved[34]; u8 reserved[34];
} __attribute__ ((packed)); } __attribute__ ((packed));
#define PCI_DEVICE_ID_SB 0x0104 #define PCI_DEVICE_ID_HSW_MOBILE 0x0c04
#define PCI_DEVICE_ID_IB 0x0154 #define PCI_DEVICE_ID_HSW_ULT 0x0a04
#ifdef __SMM__ #ifdef __SMM__
void intel_northbridge_haswell_finalize_smm(void); void intel_northbridge_haswell_finalize_smm(void);

View File

@ -583,13 +583,13 @@ static struct device_operations mc_ops = {
static const struct pci_driver mc_driver_hsw_mobile __pci_driver = { static const struct pci_driver mc_driver_hsw_mobile __pci_driver = {
.ops = &mc_ops, .ops = &mc_ops,
.vendor = PCI_VENDOR_ID_INTEL, .vendor = PCI_VENDOR_ID_INTEL,
.device = 0x0c04, /* Mobile Haswell */ .device = PCI_DEVICE_ID_HSW_MOBILE,
}; };
static const struct pci_driver mc_driver_hsw_ult __pci_driver = { static const struct pci_driver mc_driver_hsw_ult __pci_driver = {
.ops = &mc_ops, .ops = &mc_ops,
.vendor = PCI_VENDOR_ID_INTEL, .vendor = PCI_VENDOR_ID_INTEL,
.device = 0x0a04, /* ULT Haswell */ .device = PCI_DEVICE_ID_HSW_ULT,
}; };
static void cpu_bus_init(device_t dev) static void cpu_bus_init(device_t dev)