Attention is currently required from: Martin Roth, Tim Wawrzynczak, Amanda Hwang, Patrick Rudolph, EricR Lai. Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/49338 )
Change subject: spd: Create new folder for SPD files ......................................................................
Patch Set 4:
(1 comment)
File src/mainboard/google/brya/Kconfig:
https://review.coreboot.org/c/coreboot/+/49338/comment/b2001d96_9480ffa6 PS4, Line 49: LP4X_SPD_SOURCE_PATH
Since adding a new SPD only has to be done once per platform now, I don't think it will be too much […]
One way to eliminate the manual effort for remembering the paths for SPD would be to incorporate that into the tool (I was trying to avoid that to provide flexibility to be able to generate the SPD files anywhere, but I think we can still provide that).
Organization would be: spd/ |__ lp4x |__ parts_manifest.json.txt |__ ddr4 |__ parts_manifest.json.txt
gen_spd.go will take as input: - Mandatory: * Path to parts_manifest file - Optional: * Directory to generate SPD data (Default will be the same directory as parts_manifest) * Platform for which SPD data has to be generated (Default will be all supported platforms)
This tool will generate the following artifacts: - set-X/: SPD data for each unique combination of platforms with the mapping manifest - platforms_manifest.json.txt: Information about which platform uses which set-X/
spd/ |__ lp4x/ |__ parts_manifest.json.txt |__ set-0/ |__ spd-0.hex |__ spd-1.hex |__ spd-2.hex |__ parts_spd_manifest.json.txt |__ set-1/ |__ spd-0.hex |__ spd-1.hex |__ parts_spd_manifest.json.txt |__ platforms_manifest.json.txt
So, the user is really expected to just run: `go run gen_spd.go ~/coreboot/spd/lp4x/parts_manifest.json.txt`
They can optionally provide platform and output directory path if required.
gen_part_id.go will take as input: - Mandatory: * Path to SPD directory (i.e. ~/coreboot/spd/lp4x/) * Makefile directory (where mainboard Makefile will be generated) * Parts used by the board * Platform (TGL/JSL/ADL, etc.)
This tool will use platforms_manifest.json.txt and the provided platform to use the appropriate set of SPD data and generate Makefile for the mainboard with DRAM IDs assigned and also add the following line to it:
LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), spd/lp4x/set-X/$(f)) (where X is the set # used by the tool)
Currently, LIB_SPD_DEPS is added to top-level Makefile in the mainboard, but it is not really necessary. The tool can generate that for the required variant.
If this sounds like a sane idea, I can quickly make the change or one of you can pick up if you want to give it a go ;).