intel: Correct MMIO related ACPI table settings
Several of the intel platforms define the region reserved for PCI memory resources in a location where it overlaps with the MMIO (MCFG) region. Using the memory map from mohon_peak as an example: 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES 1. 0000000000001000-000000000009ffff: RAM 2. 00000000000a0000-00000000000fffff: RESERVED 3. 0000000000100000-000000007fbcffff: RAM 4. 000000007fbd0000-000000007fbfffff: CONFIGURATION TABLES 5. 000000007fc00000-000000007fdfffff: RESERVED 6. 00000000e0000000-00000000efffffff: RESERVED 7. 00000000fee00000-00000000fee00fff: RESERVED 8. 0000000100000000-000000017fffffff: RAM The ACPI table describing the space set aside for PCI memory (not to be confused with the MMIO config space) is defined as the region from BMBOUND (the top of DRAM below 4GB) to a hardcoded value of 0xfebfffff. That region would overlap the MMIO region at 0xe0000000-0xefffffff. For rangeley the upper bound of the PCI memory space should be set to 0xe0000000 - 1. The MCFG regions for several of the affected chipsets are: rangeley 0xe0000000-0xefffffff baytrail 0xe0000000-0xefffffff haswell 0xf0000000-0xf3ffffff sandybridge 0xf8000000-0xfbffffff TEST = intel/mohonpeak and intel/bayleybay. Change-Id: Ic188a4f575494f04930dea4d0aaaeaad95df9f90 Signed-off-by: Dave Frodin <dave.frodin@se-eng.com> Reviewed-on: http://review.coreboot.org/9972 Reviewed-by: Marc Jones <marc.jones@se-eng.com> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
3905caec32
commit
2eaa0d49e1
|
@ -111,11 +111,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfebfffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
|
0x00000000, 0x00000000, 0, 0x00000000,
|
||||||
0xfec00000,,, PM01)
|
0,,, PM01)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -131,7 +131,9 @@ Method (_CRS, 0, Serialized)
|
||||||
|
|
||||||
// Fix up PCI memory region
|
// Fix up PCI memory region
|
||||||
// Start with Top of Lower Usable DRAM
|
// Start with Top of Lower Usable DRAM
|
||||||
Store (BMBD, PMIN) // Memory goes from BMBOUND to 0xfebfffff (PM01 above)
|
// Memory goes from BMBOUND to CONFIG_MMCONF_BASE_ADDRESS (PM01 above)
|
||||||
|
Store (BMBD, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add(Subtract(PMAX, PMIN), 1, PLEN) // Store Memory Size
|
Add(Subtract(PMAX, PMIN), 1, PLEN) // Store Memory Size
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -320,11 +320,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfebfffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0xfec00000,,, PM01)
|
0x00000000,,, PM01)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -350,6 +350,7 @@ Method (_CRS, 0, Serialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
Store (Local0, PMIN)
|
Store (Local0, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -426,11 +426,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfebfffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0xfec00000,,, PM01)
|
0x00000000,,, PM01)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -456,6 +456,7 @@ Method (_CRS, 0, Serialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
Store (Local0, PMIN)
|
Store (Local0, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -344,11 +344,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfebfffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0xfec00000,,, PM01)
|
0x00000000,,, PM01)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -374,6 +374,7 @@ Method (_CRS, 0, Serialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
Store (Local0, PMIN)
|
Store (Local0, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -158,11 +158,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfeafffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0xfea00000, 0xfeafffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0x00100000,,, PMEM)
|
0x00000000,,, PMEM)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -178,6 +178,7 @@ Method (_CRS, 0, Serialized)
|
||||||
|
|
||||||
// TOLM is BMBOUND accessible from IOSF so is saved in NVS
|
// TOLM is BMBOUND accessible from IOSF so is saved in NVS
|
||||||
Store (\TOLM, PMIN)
|
Store (\TOLM, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add (Subtract (PMAX, PMIN), 1, PLEN)
|
Add (Subtract (PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -147,11 +147,11 @@ Method (_CRS, 0, Serialized)
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfebfffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0xfec00000,,, PM01)
|
0x00000000,,, PM01)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -177,6 +177,7 @@ Method (_CRS, 0, Serialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
Store (Local0, PMIN)
|
Store (Local0, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
Add(Subtract(PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
|
@ -157,11 +157,11 @@ Name (MCRS, ResourceTemplate()
|
||||||
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
|
||||||
0x00010000,,, FSEG)
|
0x00010000,,, FSEG)
|
||||||
|
|
||||||
// PCI Memory Region (Top of memory-0xfeafffff)
|
// PCI Memory Region (Top of memory-CONFIG_MMCONF_BASE_ADDRESS)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
Cacheable, ReadWrite,
|
Cacheable, ReadWrite,
|
||||||
0x00000000, 0xfea00000, 0xfeafffff, 0x00000000,
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
0x00100000,,, PMEM)
|
0x00000000,,, PMEM)
|
||||||
|
|
||||||
// TPM Area (0xfed40000-0xfed44fff)
|
// TPM Area (0xfed40000-0xfed44fff)
|
||||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
||||||
|
@ -179,6 +179,7 @@ Method (_CRS, 0, Serialized)
|
||||||
|
|
||||||
// TOLM is BMBOUND accessible from IOSF so is saved in NVS
|
// TOLM is BMBOUND accessible from IOSF so is saved in NVS
|
||||||
Store (\TOLM, PMIN)
|
Store (\TOLM, PMIN)
|
||||||
|
Store (Subtract(CONFIG_MMCONF_BASE_ADDRESS, 1), PMAX)
|
||||||
Add (Subtract (PMAX, PMIN), 1, PLEN)
|
Add (Subtract (PMAX, PMIN), 1, PLEN)
|
||||||
|
|
||||||
Return (MCRS)
|
Return (MCRS)
|
||||||
|
|
Loading…
Reference in New Issue