diff options
Diffstat (limited to 'resources/libreboot/patch/kgpe-d16/0123-northbridge-amd-amdfam10-Work-around-sporadic-lockup.patch')
-rw-r--r-- | resources/libreboot/patch/kgpe-d16/0123-northbridge-amd-amdfam10-Work-around-sporadic-lockup.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/resources/libreboot/patch/kgpe-d16/0123-northbridge-amd-amdfam10-Work-around-sporadic-lockup.patch b/resources/libreboot/patch/kgpe-d16/0123-northbridge-amd-amdfam10-Work-around-sporadic-lockup.patch new file mode 100644 index 00000000..44cde387 --- /dev/null +++ b/resources/libreboot/patch/kgpe-d16/0123-northbridge-amd-amdfam10-Work-around-sporadic-lockup.patch @@ -0,0 +1,40 @@ +From b398fb43bb4ebc4d8d8c77e07e14b747971c39b4 Mon Sep 17 00:00:00 2001 +From: Timothy Pearson <tpearson@raptorengineeringinc.com> +Date: Thu, 20 Aug 2015 15:53:25 -0500 +Subject: [PATCH 123/143] northbridge/amd/amdfam10: Work around sporadic + lockups when CC6 enabled + +Change-Id: If31140651f25f9c524a824b2da552ce3690eae18 +Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> +--- + src/northbridge/amd/amdfam10/northbridge.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/northbridge/amd/amdfam10/northbridge.c b/src/northbridge/amd/amdfam10/northbridge.c +index 740fd79..433a21c 100644 +--- a/src/northbridge/amd/amdfam10/northbridge.c ++++ b/src/northbridge/amd/amdfam10/northbridge.c +@@ -814,6 +814,20 @@ static void amdfam10_domain_read_resources(device_t dev) + else + qword = 0x1000000; + ++ /* FIXME ++ * The BKDG appears to be incorrect as to the location of the CC6 save region ++ * lower boundary on non-interleaved systems, causing lockups on attempted write ++ * to the CC6 save region. ++ * ++ * For now, work around by allocating the maximum possible CC6 save region size. ++ * ++ * Determine if this is a BKDG error or a setup problem and remove this warning! ++ */ ++ qword = (0x1 << 27); ++ max_range_limit = (((uint64_t)(pci_read_config32(get_node_pci(max_node, 1), 0x124) & 0x1fffff)) << 27) - 1; ++ ++ printk(BIOS_INFO, "Reserving CC6 save segment base: %08llx size: %08llx\n", (max_range_limit + 1), qword); ++ + /* Reserve the CC6 save segment */ + reserved_ram_resource(dev, 8, (max_range_limit + 1) >> 10, qword >> 10); + } +-- +1.7.9.5 + |