summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2020-06-01 13:27:16 -0700
committerPatrick Georgi <pgeorgi@google.com>2020-06-03 12:21:53 +0000
commit506479d2a8c1c8f422b5a0257037d563b465dc5d (patch)
treece5ea495fe57b0531a959d6d3b6a944689a73eef /src
parent181e2d445ce0e9b2fa0a04c4d4c4a4b6b75f5ea0 (diff)
downloadcoreboot-506479d2a8c1c8f422b5a0257037d563b465dc5d.tar.gz
coreboot-506479d2a8c1c8f422b5a0257037d563b465dc5d.tar.bz2
coreboot-506479d2a8c1c8f422b5a0257037d563b465dc5d.zip
northbridge/intel/haswell: Mask lower 20 bits of TOLUD and TOLM in hostbridge.asl
Lower 20bits of TOLUD and TOLM registers include 19 reserved bits and 1 lock bit. If lock bit is set, then systemagent.asl would end up reporting the base address of low MMIO incorrectly i.e. off by 1. This change masks the lower 20 bits of TOLUD and TOM registers when exposing it in the ACPI tables to ensure that the base address of low MMIO region is reported correctly. Change-Id: I1fb52a42e84130d973e0970024e263f443aa0b89 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41977 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'src')
-rw-r--r--src/northbridge/intel/haswell/acpi/hostbridge.asl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/northbridge/intel/haswell/acpi/hostbridge.asl b/src/northbridge/intel/haswell/acpi/hostbridge.asl
index 8fbfabfa7157..dd4b79a6cf4a 100644
--- a/src/northbridge/intel/haswell/acpi/hostbridge.asl
+++ b/src/northbridge/intel/haswell/acpi/hostbridge.asl
@@ -425,13 +425,17 @@ Method (_CRS, 0, Serialized)
// Fix up PCI memory region
// Start with Top of Lower Usable DRAM
- Local0 = ^MCHC.TLUD
+ // Lower 20 bits of TOLUD register need to be masked since they contain lock and
+ // reserved bits.
+ Local0 = ^MCHC.TLUD & (0xfff << 20)
Local1 = ^MCHC.MEBA
// Check if ME base is equal
If (Local0 == Local1) {
// Use Top Of Memory instead
- Local0 = ^MCHC.TOM
+ // Lower 20 bits of TOM register need to be masked since they contain lock and
+ // reserved bits.
+ Local0 = ^MCHC.TOM & (0x7ffff << 20)
}
PMIN = Local0