Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12035
-gerrit
commit d42834b4854b112f56c6826e7fee5110577c74ab
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Sat Aug 8 02:40:58 2015 -0500
northbridge/amd/amdfam10: Fix invalid NUMA table
The existing code generated an invalid NUMA table
that was rejected by Linux, leading to poor resource
allocation. This was due to system I/O resources
being inserted into the table when the table should
only contain DRAM resources.
Do not include system I/O resources (i.e. resources
with an index less than 0x10) in the NUMA table.
Change-Id: I99c200382b52a99687daf266a84873d9ae2df025
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/amdfam10/acpi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/northbridge/amd/amdfam10/acpi.c b/src/northbridge/amd/amdfam10/acpi.c
index ad54abd..25df6b3 100644
--- a/src/northbridge/amd/amdfam10/acpi.c
+++ b/src/northbridge/amd/amdfam10/acpi.c
@@ -102,7 +102,8 @@ static void set_srat_mem(void *gp, struct device *dev, struct resource *res)
}
// need to figure out NV
- state->current += acpi_create_srat_mem((acpi_srat_mem_t *)state->current, (res->index & 0xf), basek, sizek, 1);
+ if (res->index > 0xf)
+ state->current += acpi_create_srat_mem((acpi_srat_mem_t *)state->current, (res->index & 0xf), basek, sizek, 1);
}
static unsigned long acpi_fill_srat(unsigned long current)
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12030
-gerrit
commit a66332fc59f8a4048650b02baf49b45ec8324017
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Fri Aug 7 19:05:45 2015 -0500
northbridge/amd/amdht: Trivial update to comment
The BKDG is not correct regarding HT Freq write ordering;
indicate this in a comment to avoid confusion.
Change-Id: I37db191c144c81aba5d4a1e6291db5669a35a31a
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/amdht/h3ncmn.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/northbridge/amd/amdht/h3ncmn.c b/src/northbridge/amd/amdht/h3ncmn.c
index 29524af..c97d592 100644
--- a/src/northbridge/amd/amdht/h3ncmn.c
+++ b/src/northbridge/amd/amdht/h3ncmn.c
@@ -1555,6 +1555,10 @@ static void setLinkData(sMainData *pDat, cNorthBridge *nb)
} else {
temp2 = 0x0;
}
+ /* NOTE
+ * The Family 15h BKDG Rev. 3.14 is wrong
+ * Freq[4] must be set before Freq[3:0], otherwise the register writes will be ignored!
+ */
if (is_gt_rev_d())
AmdPCIWriteBits(linkBase + HTHOST_FREQ_REV_REG_2, 0, 0, &temp2);
AmdPCIWriteBits(linkBase + HTHOST_FREQ_REV_REG, 11, 8, &temp);
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12034
-gerrit
commit 74490d92f56f5e14170ee2401fa66ba96bdc420b
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Fri Aug 7 23:59:33 2015 -0500
nb/amd/amdmct/mct_ddr3: Force DRAM retraining on every boot
Stability issues have arisen on multiple Family 15h systems
when configuration restoration is enabled. In all cases these
stability issues resolved by allowing the RAM to go through a
full training cycle.
Change-Id: I017e0dd5120110124d5b5d5276befef6f7740614
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/amdmct/mct_ddr3/mct_d.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
index b80918c..1dce138 100644
--- a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
+++ b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
@@ -1742,6 +1742,16 @@ restartinit:
allow_config_restore = 0;
}
+ /* FIXME
+ * Stability issues have arisen on multiple Family 15h systems
+ * when configuration restoration is enabled. In all cases these
+ * stability issues resolved by allowing the RAM to go through a
+ * full training cycle.
+ *
+ * Debug and reenable this!
+ */
+ allow_config_restore = 0;
+
for (Node = 0; Node < MAX_NODES_SUPPORTED; Node++) {
struct DCTStatStruc *pDCTstat;
pDCTstat = pDCTstatA + Node;