summaryrefslogtreecommitdiff
path: root/util/spd_tools
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@chromium.org>2022-02-02 16:16:09 -0700
committerFelix Held <felix-coreboot@felixheld.de>2022-02-08 17:37:18 +0000
commit55ba8df28c55284099ffc62bbf58c217ae412754 (patch)
treeaebc4db687c02186af5380123e24002b810ca36c /util/spd_tools
parentceefc74f01bcfe070477107d0677acf6b9d9c372 (diff)
util/spd_tools/spd_gen/lp5: Update BusWidth Encoding
ADL and Sabrina have different advisory regarding encoding the bus width. Encode the bus width as per the respective advisories. BUG=b:211510456 TEST=Build spd_gen and ensure that the bus width is encoded as expected. Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Change-Id: Ia12a5bd8f70a70ca8a510ecf00f6268c6904ec25 Reviewed-on: https://review.coreboot.org/c/coreboot/+/61639 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Diffstat (limited to 'util/spd_tools')
-rw-r--r--util/spd_tools/src/spd_gen/lp5.go37
1 files changed, 28 insertions, 9 deletions
diff --git a/util/spd_tools/src/spd_gen/lp5.go b/util/spd_tools/src/spd_gen/lp5.go
index 22927b21d5..1db5b8d52d 100644
--- a/util/spd_tools/src/spd_gen/lp5.go
+++ b/util/spd_tools/src/spd_gen/lp5.go
@@ -57,6 +57,7 @@ type LP5SPDAttribTableEntry struct {
type LP5Set struct {
SPDRevision byte
+ busWidthEncoding byte
}
/* ------------------------------------------------------------------------------------------ */
@@ -137,14 +138,6 @@ const (
*/
LP5SPDValueOptionalFeatures = 0x08
- /*
- * For ADL (as per advisory #616599):
- * 7:5 (Number of system channels) = 000 (1 channel always)
- * 4:3 (Bus width extension) = 00 (no ECC)
- * 2:0 (Bus width) = 001 (x16 always)
- * Set to 0x01.
- */
- LP5SPDValueBusWidth = 0x01
/*
* From JEDEC spec:
@@ -191,9 +184,25 @@ var LP5PlatformSetMap = map[int][]int{
var LP5SetInfo = map[int]LP5Set{
0: {
SPDRevision: LP5SPDValueRevision1_0,
+ /*
+ * For ADL (as per advisory #616599):
+ * 7:5 (Number of system channels) = 000 (1 channel always)
+ * 4:3 (Bus width extension) = 00 (no ECC)
+ * 2:0 (Bus width) = 001 (x16 always)
+ * Set to 0x01.
+ */
+ busWidthEncoding: 0x01,
},
1: {
SPDRevision: LP5SPDValueRevision1_1,
+ /*
+ * For Sabrina (as per advisory b/211510456):
+ * 7:5 (Number of system channels) = 000 (1 channel always)
+ * 4:3 (Bus width extension) = 00 (no ECC)
+ * 2:0 (Bus width) = 010 (x32 always)
+ * Set to 0x02.
+ */
+ busWidthEncoding: 0x02,
},
}
@@ -306,7 +315,7 @@ var LP5SPDAttribTable = map[int]LP5SPDAttribTableEntry{
LP5SPDIndexPackageType: {getVal: LP5EncodePackageType},
LP5SPDIndexOptionalFeatures: {constVal: LP5SPDValueOptionalFeatures},
LP5SPDIndexModuleOrganization: {getVal: LP5EncodeModuleOrganization},
- LP5SPDIndexBusWidth: {constVal: LP5SPDValueBusWidth},
+ LP5SPDIndexBusWidth: {getVal: LP5EncodeBusWidth},
LP5SPDIndexTimebases: {constVal: LP5SPDValueTimebases},
LP5SPDIndexTCKMin: {getVal: LP5EncodeTCKMin},
LP5SPDIndexTCKMinFineOffset: {getVal: LP5EncodeTCKMinFineOffset},
@@ -409,6 +418,16 @@ func LP5EncodeModuleOrganization(memAttribs *LP5MemAttributes) byte {
return b
}
+func LP5EncodeBusWidth(memAttribs *LP5MemAttributes) byte {
+ f, ok := LP5SetInfo[LP5CurrSet]
+
+ if ok == false {
+ return 0
+ }
+
+ return f.busWidthEncoding
+}
+
func LP5EncodeTCKMin(memAttribs *LP5MemAttributes) byte {
return convPsToMtbByte(memAttribs.TCKMinPs)
}