summaryrefslogtreecommitdiff
path: root/util/spd_tools/ddr4/README.md
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2020-08-14 09:40:04 -0600
committerAaron Durbin <adurbin@chromium.org>2020-08-28 04:36:55 +0000
commita662648a7fbfc04bb0f4a2ef92d7faa4fb8c7e09 (patch)
tree010025465fcc0f537672127d9d4e39e3f591c0ec /util/spd_tools/ddr4/README.md
parente905753afdc534379a03b442ea07574822813871 (diff)
downloadcoreboot-a662648a7fbfc04bb0f4a2ef92d7faa4fb8c7e09.tar.xz
util: Add support to spd_tools for fixed id
For boards that have already assigned memory ids, there needs to be a way to fix parts to a specific id. After assigning all the fixed ids the tool still attempts to minimize the SPDs entries. Since a fixed ID could be anywhere, gaps can be created in the list. So an empty SPD entry is created to fill the gaps in the list until they are used. BUG=b:162939176 TEST=Generate various outputs Signed-off-by: Rob Barnes <robbarnes@google.com> Change-Id: I1f8ea1ff4f33a97ab28ba94896a1054e89189576 Reviewed-on: https://review.coreboot.org/c/coreboot/+/44463 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'util/spd_tools/ddr4/README.md')
-rw-r--r--util/spd_tools/ddr4/README.md30
1 files changed, 25 insertions, 5 deletions
diff --git a/util/spd_tools/ddr4/README.md b/util/spd_tools/ddr4/README.md
index 81ab97a80a..646d937d9b 100644
--- a/util/spd_tools/ddr4/README.md
+++ b/util/spd_tools/ddr4/README.md
@@ -16,8 +16,8 @@ by the board.
SPD files.
* gen_part_id.go: Allocates DRAM strap IDs for different DDR4
- memory parts used by the board. Takes as input list of memory parts
- used by the board (with one memory part on each line) and the SPD
+ memory parts used by the board. Takes as input a list of memory parts
+ used (in CSV format) by the board with optional fixed ids and the SPD
manifest file generated by gen_spd.go. Generates Makefile.inc for
integrating the generated SPD files in the coreboot build.
@@ -192,12 +192,29 @@ This program takes as input:
* Pointer to directory where the SPD files and the manifest file
`ddr4_spd_manifest.generated.txt` (in CSV format) are placed by
gen_spd.go
-* File containing list of memory parts used by the board. Each line of
- the file is supposed to contain one memory part `name` as present in
- the global list of memory parts provided to gen_spd.go
+* CSV file containing list of memory parts used by the board and optional
+ fixed id. Each line of the file is supposed to contain one memory part `name`
+ as present in the global list of memory parts provided to gen_spd.go.
+ Optionally a fixed id may also be assigned to the part if required.
+ NOTE: Only assign a fixed ID if required for legacy reasons.
+
* Pointer to directory where the generated Makefile.inc should be
placed by the tool.
+Sample input (mem_parts_used_file.txt):
+```
+K4AAG165WA-BCWE,1
+MT40A512M16TB-062E:J
+MT40A1G16KD-062E:E
+K4A8G165WC-BCWE
+H5AN8G6NDJR-XNC,8
+H5ANAG6NCMR-XNC
+```
+NOTE: This will ensure SPDs compatible with K4AAG165WA-BCWE and H5AN8G6NDJR-XNC
+are assigned to ID 1 and 8 respectively. All other memory parts will be
+assigned to the first compatible ID. Assigning fixed IDs may result in
+duplicate SPD entries or gaps in the ID mapping.
+
### Output
This program provides the following:
@@ -227,8 +244,11 @@ Sample Makefile.inc:
SPD_SOURCES =
SPD_SOURCES += ddr4-spd-1.hex # ID = 0(0b0000) Parts = MEMORY_PART_A
SPD_SOURCES += ddr4-spd-2.hex # ID = 1(0b0001) Parts = MEMORY_PART_B, MEMORY_PART_D
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 2(0b0010)
SPD_SOURCES += ddr4-spd-3.hex # ID = 2(0b0010) Parts = MEMORY_PART_C
```
+NOTE: Empty entries may be required if there is a gap created by a memory part
+with a fixed id.
### Note of caution