summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/skylake/acpi/systemagent.asl12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl
index b2e691ddf8..962d9ef879 100644
--- a/src/soc/intel/skylake/acpi/systemagent.asl
+++ b/src/soc/intel/skylake/acpi/systemagent.asl
@@ -187,14 +187,20 @@ Method (_CRS, 0, Serialized)
/*
* Fix up PCI memory region
* Start with Top of Lower Usable DRAM
+ * Lower 20 bits of TOLUD register need to be masked since they contain lock and
+ * reserved bits.
*/
- Local0 = \_SB.PCI0.MCHC.TLUD
+ Local0 = \_SB.PCI0.MCHC.TLUD & (0xfff << 20)
Local1 = \_SB.PCI0.MCHC.MEBA
/* Check if ME base is equal */
If (Local0 == Local1) {
- /* Use Top Of Memory instead */
- Local0 = \_SB.PCI0.MCHC.TOM
+ /*
+ * Use Top Of Memory instead
+ * Lower 20 bits of TOM register need to be masked since they contain lock and
+ * reserved bits.
+ */
+ Local0 = \_SB.PCI0.MCHC.TOM & (0x7ffff << 20)
}
Store (Local0, PMIN)