summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Niewöhner <foss@mniewoehner.de>2020-08-25 13:55:53 +0200
committerMichael Niewöhner <c0d3z3r0@review.coreboot.org>2020-09-06 14:57:06 +0000
commite83d30bb5a240757b2e0a712e012c9fe6ab44f95 (patch)
tree111b98e276b27d1f8b827bc085bcfa46357e7efc /src
parentf0eb1925e4f3f083cd20e42dd35f65696341ce01 (diff)
downloadcoreboot-e83d30bb5a240757b2e0a712e012c9fe6ab44f95.tar.gz
mb: remove duplicated Make code for spd.bin generation
Drop duplicated code for spd.bin generation that is provided globally in lib/Makefile.inc. For all affected boards it has been verified that the output binary functionally matches the original one. The changed execution order of Make instructions influenced the cbfs file order. Hence, the rom images can't be compared directly. Thus, the output files of the two timeless abuild runs have been compared. Further, it was verified that the final files in cbfs stay identical, by comparing the extracted cbfs of each board. The boards (possibly) needing modification could be found with something like this (with false positives, though): find src/mainboard -name Makefile.inc | \ xargs egrep 'SPD_BIN|SPD_DEPS' | cut -d: -f1 | sort -u Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Change-Id: Icd3ac0fd6c901228554115c6350d88bb49874587 Reviewed-on: https://review.coreboot.org/c/coreboot/+/44774 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/bap/ode_e20XX/Kconfig1
-rw-r--r--src/mainboard/bap/ode_e20XX/Makefile.inc17
-rw-r--r--src/mainboard/bap/ode_e20XX/spd/BAP_Q7_1066.spd.hex (renamed from src/mainboard/bap/ode_e20XX/BAP_Q7_1066.spd.hex)0
-rw-r--r--src/mainboard/bap/ode_e20XX/spd/BAP_Q7_800.spd.hex (renamed from src/mainboard/bap/ode_e20XX/BAP_Q7_800.spd.hex)0
-rw-r--r--src/mainboard/gizmosphere/gizmo/Kconfig1
-rw-r--r--src/mainboard/gizmosphere/gizmo/Makefile.inc17
-rw-r--r--src/mainboard/gizmosphere/gizmo/spd/Elpida_EDJ2116DEBG.spd.hex (renamed from src/mainboard/gizmosphere/gizmo/Elpida_EDJ2116DEBG.spd.hex)0
-rw-r--r--src/mainboard/gizmosphere/gizmo2/Kconfig1
-rw-r--r--src/mainboard/gizmosphere/gizmo2/Makefile.inc17
-rw-r--r--src/mainboard/gizmosphere/gizmo2/spd/Micron_MT41J128M16JT.spd.hex (renamed from src/mainboard/gizmosphere/gizmo2/Micron_MT41J128M16JT.spd.hex)0
-rw-r--r--src/mainboard/google/auron/Kconfig1
-rw-r--r--src/mainboard/google/auron/variants/auron_paine/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/auron/variants/auron_yuna/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/auron/variants/gandof/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/auron/variants/lulu/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/auron/variants/samus/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/Kconfig1
-rw-r--r--src/mainboard/google/cyan/variants/banon/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/celes/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/cyan/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/edgar/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/kefka/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/reks/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/relm/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/setzer/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/terra/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/ultima/Makefile.inc16
-rw-r--r--src/mainboard/google/cyan/variants/wizpig/Makefile.inc16
-rw-r--r--src/mainboard/google/dedede/Kconfig1
-rw-r--r--src/mainboard/google/dedede/spd/Makefile.inc18
-rw-r--r--src/mainboard/google/drallion/Kconfig1
-rw-r--r--src/mainboard/google/drallion/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/eve/Kconfig1
-rw-r--r--src/mainboard/google/eve/spd/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/Kconfig1
-rw-r--r--src/mainboard/google/glados/variants/asuka/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/caroline/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/cave/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/chell/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/glados/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/lars/Makefile.inc16
-rw-r--r--src/mainboard/google/glados/variants/sentry/Makefile.inc17
-rw-r--r--src/mainboard/google/hatch/Kconfig1
-rw-r--r--src/mainboard/google/hatch/spd/Makefile.inc19
-rw-r--r--src/mainboard/google/kahlee/variants/baseboard/spd/Makefile.inc2
-rw-r--r--src/mainboard/google/kahlee/variants/careena/spd/Makefile.inc2
-rw-r--r--src/mainboard/google/kahlee/variants/nuwani/spd/Makefile.inc2
-rw-r--r--src/mainboard/google/kahlee/variants/treeya/spd/Makefile.inc2
-rw-r--r--src/mainboard/google/poppy/Kconfig1
-rw-r--r--src/mainboard/google/poppy/spd/Makefile.inc9
-rw-r--r--src/mainboard/google/rambi/Kconfig1
-rw-r--r--src/mainboard/google/rambi/variants/banjo/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/candy/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/clapper/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/enguarde/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/glimmer/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/gnawty/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/heli/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/kip/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/ninja/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/orco/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/quawks/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/rambi/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/squawks/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/sumo/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/swanky/Makefile.inc16
-rw-r--r--src/mainboard/google/rambi/variants/winky/Makefile.inc16
-rw-r--r--src/mainboard/google/slippy/Kconfig1
-rw-r--r--src/mainboard/google/slippy/variants/falco/Makefile.inc17
-rw-r--r--src/mainboard/google/slippy/variants/leon/Makefile.inc17
-rw-r--r--src/mainboard/google/slippy/variants/peppy/Makefile.inc17
-rw-r--r--src/mainboard/google/slippy/variants/wolf/Makefile.inc17
-rw-r--r--src/mainboard/google/volteer/Kconfig1
-rw-r--r--src/mainboard/google/volteer/spd/Makefile.inc15
-rw-r--r--src/mainboard/intel/cannonlake_rvp/spd/Makefile.inc2
-rw-r--r--src/mainboard/intel/harcuvar/Kconfig1
-rw-r--r--src/mainboard/intel/harcuvar/spd/Makefile.inc15
-rw-r--r--src/mainboard/intel/icelake_rvp/spd/Makefile.inc2
-rw-r--r--src/mainboard/intel/jasperlake_rvp/spd/Makefile.inc2
-rw-r--r--src/mainboard/intel/kblrvp/spd/Makefile.inc2
-rw-r--r--src/mainboard/intel/kunimitsu/Kconfig1
-rw-r--r--src/mainboard/intel/kunimitsu/spd/Makefile.inc17
-rw-r--r--src/mainboard/intel/tglrvp/Kconfig1
-rw-r--r--src/mainboard/intel/tglrvp/spd/Makefile.inc16
-rw-r--r--src/mainboard/lenovo/t430s/Kconfig1
-rw-r--r--src/mainboard/lenovo/t430s/variants/t431s/spd/Makefile.inc15
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/Kconfig1
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/spd/Makefile.inc21
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.spd.hex (renamed from src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.hex)0
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.spd.hex (renamed from src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.hex)0
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.spd.hex (renamed from src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.hex)0
-rw-r--r--src/mainboard/razer/blade_stealth_kbl/spd/Makefile.inc2
-rw-r--r--src/mainboard/samsung/lumpy/Kconfig1
-rw-r--r--src/mainboard/samsung/lumpy/Makefile.inc11
-rw-r--r--src/mainboard/samsung/lumpy/spd.hex96
-rw-r--r--src/mainboard/samsung/lumpy/spd/lumpy.spd.hex96
96 files changed, 133 insertions, 1029 deletions
diff --git a/src/mainboard/bap/ode_e20XX/Kconfig b/src/mainboard/bap/ode_e20XX/Kconfig
index 3503e65cef..9e673ff653 100644
--- a/src/mainboard/bap/ode_e20XX/Kconfig
+++ b/src/mainboard/bap/ode_e20XX/Kconfig
@@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS
select BOARD_ROMSIZE_KB_4096
select GFXUMA
select SUPERIO_FINTEK_F81866D
+ select GENERIC_SPD_BIN
config MAINBOARD_DIR
string
diff --git a/src/mainboard/bap/ode_e20XX/Makefile.inc b/src/mainboard/bap/ode_e20XX/Makefile.inc
index 5e83e6586f..4e2884aaaa 100644
--- a/src/mainboard/bap/ode_e20XX/Makefile.inc
+++ b/src/mainboard/bap/ode_e20XX/Makefile.inc
@@ -10,22 +10,5 @@ ramstage-y += buildOpts.c
ramstage-y += BiosCallOuts.c
ramstage-y += OemCustomize.c
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = BAP_Q7_800 BAP_Q7_1066
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/bap/ode_e20XX/BAP_Q7_1066.spd.hex b/src/mainboard/bap/ode_e20XX/spd/BAP_Q7_1066.spd.hex
index 865fd26278..865fd26278 100644
--- a/src/mainboard/bap/ode_e20XX/BAP_Q7_1066.spd.hex
+++ b/src/mainboard/bap/ode_e20XX/spd/BAP_Q7_1066.spd.hex
diff --git a/src/mainboard/bap/ode_e20XX/BAP_Q7_800.spd.hex b/src/mainboard/bap/ode_e20XX/spd/BAP_Q7_800.spd.hex
index 04abb4abbe..04abb4abbe 100644
--- a/src/mainboard/bap/ode_e20XX/BAP_Q7_800.spd.hex
+++ b/src/mainboard/bap/ode_e20XX/spd/BAP_Q7_800.spd.hex
diff --git a/src/mainboard/gizmosphere/gizmo/Kconfig b/src/mainboard/gizmosphere/gizmo/Kconfig
index 7c667b527d..58f196f528 100644
--- a/src/mainboard/gizmosphere/gizmo/Kconfig
+++ b/src/mainboard/gizmosphere/gizmo/Kconfig
@@ -14,6 +14,7 @@ config BOARD_SPECIFIC_OPTIONS
select HAVE_ACPI_TABLES
select BOARD_ROMSIZE_KB_2048
select GFXUMA
+ select GENERIC_SPD_BIN
config MAINBOARD_DIR
string
diff --git a/src/mainboard/gizmosphere/gizmo/Makefile.inc b/src/mainboard/gizmosphere/gizmo/Makefile.inc
index 1ae2f7b31e..2d5aa7552d 100644
--- a/src/mainboard/gizmosphere/gizmo/Makefile.inc
+++ b/src/mainboard/gizmosphere/gizmo/Makefile.inc
@@ -15,22 +15,5 @@ ramstage-y += buildOpts.c
ramstage-y += BiosCallOuts.c
ramstage-y += OemCustomize.c
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Elpida_EDJ2116DEBG
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/gizmosphere/gizmo/Elpida_EDJ2116DEBG.spd.hex b/src/mainboard/gizmosphere/gizmo/spd/Elpida_EDJ2116DEBG.spd.hex
index 5b3b94ed9d..5b3b94ed9d 100644
--- a/src/mainboard/gizmosphere/gizmo/Elpida_EDJ2116DEBG.spd.hex
+++ b/src/mainboard/gizmosphere/gizmo/spd/Elpida_EDJ2116DEBG.spd.hex
diff --git a/src/mainboard/gizmosphere/gizmo2/Kconfig b/src/mainboard/gizmosphere/gizmo2/Kconfig
index 7a02ec851b..5ea1b43a47 100644
--- a/src/mainboard/gizmosphere/gizmo2/Kconfig
+++ b/src/mainboard/gizmosphere/gizmo2/Kconfig
@@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS
select BOARD_ROMSIZE_KB_4096
select GFXUMA
select HUDSON_IMC_ENABLE
+ select GENERIC_SPD_BIN
config MAINBOARD_DIR
string
diff --git a/src/mainboard/gizmosphere/gizmo2/Makefile.inc b/src/mainboard/gizmosphere/gizmo2/Makefile.inc
index 653dcc3529..0f808f076f 100644
--- a/src/mainboard/gizmosphere/gizmo2/Makefile.inc
+++ b/src/mainboard/gizmosphere/gizmo2/Makefile.inc
@@ -10,22 +10,5 @@ ramstage-y += buildOpts.c
ramstage-y += BiosCallOuts.c
ramstage-y += OemCustomize.c
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Micron_MT41J128M16JT
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/gizmosphere/gizmo2/Micron_MT41J128M16JT.spd.hex b/src/mainboard/gizmosphere/gizmo2/spd/Micron_MT41J128M16JT.spd.hex
index 54b4a607d2..54b4a607d2 100644
--- a/src/mainboard/gizmosphere/gizmo2/Micron_MT41J128M16JT.spd.hex
+++ b/src/mainboard/gizmosphere/gizmo2/spd/Micron_MT41J128M16JT.spd.hex
diff --git a/src/mainboard/google/auron/Kconfig b/src/mainboard/google/auron/Kconfig
index c5e00fd148..54c8ea2656 100644
--- a/src/mainboard/google/auron/Kconfig
+++ b/src/mainboard/google/auron/Kconfig
@@ -15,6 +15,7 @@ config BOARD_GOOGLE_BASEBOARD_AURON
select MAINBOARD_HAS_TPM1
select INTEL_INT15
select SYSTEM_TYPE_LAPTOP if !BOARD_GOOGLE_BUDDY
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_AURON
diff --git a/src/mainboard/google/auron/variants/auron_paine/spd/Makefile.inc b/src/mainboard/google/auron/variants/auron_paine/spd/Makefile.inc
index a446268132..69f8fd8fae 100644
--- a/src/mainboard/google/auron/variants/auron_paine/spd/Makefile.inc
+++ b/src/mainboard/google/auron/variants/auron_paine/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# { GPIO47, GPIO9, GPIO13 }
SPD_SOURCES = Micron_4KTF25664HZ # 0b0000
SPD_SOURCES += Hynix_HMT425S6AFR6A # 0b0001
@@ -22,16 +20,4 @@ SPD_SOURCES += empty # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/auron/variants/auron_yuna/spd/Makefile.inc b/src/mainboard/google/auron/variants/auron_yuna/spd/Makefile.inc
index a446268132..69f8fd8fae 100644
--- a/src/mainboard/google/auron/variants/auron_yuna/spd/Makefile.inc
+++ b/src/mainboard/google/auron/variants/auron_yuna/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# { GPIO47, GPIO9, GPIO13 }
SPD_SOURCES = Micron_4KTF25664HZ # 0b0000
SPD_SOURCES += Hynix_HMT425S6AFR6A # 0b0001
@@ -22,16 +20,4 @@ SPD_SOURCES += empty # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/auron/variants/gandof/spd/Makefile.inc b/src/mainboard/google/auron/variants/gandof/spd/Makefile.inc
index a6a8232f48..18b1062bb5 100644
--- a/src/mainboard/google/auron/variants/gandof/spd/Makefile.inc
+++ b/src/mainboard/google/auron/variants/gandof/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# { GPIO47, GPIO9, GPIO13 }
SPD_SOURCES = Samsung_M471B5674EB0-YK0 # 0b0000
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR # 0b0001
@@ -14,16 +12,4 @@ SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR # 0b0101
SPD_SOURCES += empty # 0b0110
SPD_SOURCES += empty # 0b0111
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/auron/variants/lulu/spd/Makefile.inc b/src/mainboard/google/auron/variants/lulu/spd/Makefile.inc
index c136955d4c..e4ffcf8f6a 100644
--- a/src/mainboard/google/auron/variants/lulu/spd/Makefile.inc
+++ b/src/mainboard/google/auron/variants/lulu/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# { GPIO47, GPIO9, GPIO13, GPIO8}
SPD_SOURCES = micron_2GiB_dimm_MT41K256M16HA-125 # 0b0000 2GB
SPD_SOURCES += empty # 0b0001
@@ -22,16 +20,4 @@ SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0 # 0b1101 4GB
SPD_SOURCES += samsung_4GiB_dimm_K4B8G1646Q-MYK0 # 0b1110 8GB
SPD_SOURCES += empty # 0b1111
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/auron/variants/samus/spd/Makefile.inc b/src/mainboard/google/auron/variants/samus/spd/Makefile.inc
index aaf9b36b3a..cc1542fce2 100644
--- a/src/mainboard/google/auron/variants/samus/spd/Makefile.inc
+++ b/src/mainboard/google/auron/variants/samus/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# { GPIO65, GPIO67, GPIO68, GPIO69 }
SPD_SOURCES = empty # 0b0000
SPD_SOURCES += empty # 0b0001
@@ -22,16 +20,4 @@ SPD_SOURCES += hynix_16 # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += elpida_16 # 0b1111
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/cyan/Kconfig b/src/mainboard/google/cyan/Kconfig
index a3db6d78d8..a43e473f53 100644
--- a/src/mainboard/google/cyan/Kconfig
+++ b/src/mainboard/google/cyan/Kconfig
@@ -17,6 +17,7 @@ config BOARD_GOOGLE_BASEBOARD_CYAN
select PCIEXP_L1_SUB_STATE if !BOARD_GOOGLE_CYAN
select SYSTEM_TYPE_LAPTOP
select USE_GOOGLE_FSP
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_CYAN
diff --git a/src/mainboard/google/cyan/variants/banon/Makefile.inc b/src/mainboard/google/cyan/variants/banon/Makefile.inc
index 5e3cf38f90..8a9cee84db 100644
--- a/src/mainboard/google/cyan/variants/banon/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/banon/Makefile.inc
@@ -5,8 +5,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4E8E304EE-EGCF
SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += empty
@@ -14,17 +12,3 @@ SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_2GiB_dimm_MT52L256M32D1PF
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
SPD_SOURCES += nanya_dimm_NT6CL256T32CM-H1
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/celes/Makefile.inc b/src/mainboard/google/cyan/variants/celes/Makefile.inc
index 11f918b79a..2f21fd93d5 100644
--- a/src/mainboard/google/cyan/variants/celes/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/celes/Makefile.inc
@@ -5,21 +5,5 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_dimm_K4E8E304EE-EGCE # Index0
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF # Index1
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/cyan/Makefile.inc b/src/mainboard/google/cyan/variants/cyan/Makefile.inc
index a1521d4234..a5e9dbab3d 100644
--- a/src/mainboard/google/cyan/variants/cyan/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/cyan/Makefile.inc
@@ -4,8 +4,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += hynix_2GiB_dimm_HMT425S6CFR6A_H5TC4G63CFR
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
@@ -14,17 +12,3 @@ SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646E-BYK0
SPD_SOURCES += micron_2GiB_dimm_MT41K256M16TW-107
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646E-BYK0
SPD_SOURCES += micron_2GiB_dimm_MT41K256M16TW-107
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/edgar/Makefile.inc b/src/mainboard/google/cyan/variants/edgar/Makefile.inc
index b3651eac90..91c0d97a40 100644
--- a/src/mainboard/google/cyan/variants/edgar/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/edgar/Makefile.inc
@@ -5,8 +5,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_dimm_K4E8E304EE-EGCE
SPD_SOURCES += hynix_dimm_H9CCNNN8JTBLAR-NUD
SPD_SOURCES += samsung_dimm_K4E8E304EE-EGCE
@@ -19,17 +17,3 @@ SPD_SOURCES += nanya_dimm_NT6CL256T32CM-H1
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
SPD_SOURCES += nanya_dimm_NT6CL256T32CM-H1
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/kefka/Makefile.inc b/src/mainboard/google/cyan/variants/kefka/Makefile.inc
index ff707b4dee..14db7537eb 100644
--- a/src/mainboard/google/cyan/variants/kefka/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/kefka/Makefile.inc
@@ -6,8 +6,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_dimm_MT52L256M32D1PF-107
@@ -16,17 +14,3 @@ SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/reks/Makefile.inc b/src/mainboard/google/cyan/variants/reks/Makefile.inc
index b45a2b229e..8b4a77645b 100644
--- a/src/mainboard/google/cyan/variants/reks/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/reks/Makefile.inc
@@ -6,24 +6,8 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4E8E304EE-EGCF
SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_2GiB_dimm_MT52L256M32D1PF
SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += micron_2GiB_dimm_EDF8132A3MA-JD-F
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/relm/Makefile.inc b/src/mainboard/google/cyan/variants/relm/Makefile.inc
index 3de47937e6..47e32bb32b 100644
--- a/src/mainboard/google/cyan/variants/relm/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/relm/Makefile.inc
@@ -6,8 +6,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4E8E304EE-EGCF
SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_2GiB_dimm_MT52L256M32D1PF
@@ -15,17 +13,3 @@ SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += micron_2GiB_dimm_EDF8132A3MA-JD-F
SPD_SOURCES += hynix_dimm_H9CCNNN8JTBLAR-NUD-1G-1866
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/setzer/Makefile.inc b/src/mainboard/google/cyan/variants/setzer/Makefile.inc
index d99926b203..1735907d8e 100644
--- a/src/mainboard/google/cyan/variants/setzer/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/setzer/Makefile.inc
@@ -6,8 +6,6 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_dimm_K4E8E304EE-EGCF
SPD_SOURCES += samsung_dimm_K4E8E304EE-EGCF
SPD_SOURCES += hynix_dimm_H9CCNNN8GTMLAR-NUD
@@ -18,17 +16,3 @@ SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR-NUD
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/terra/Makefile.inc b/src/mainboard/google/cyan/variants/terra/Makefile.inc
index af07a93bc7..6358081d66 100644
--- a/src/mainboard/google/cyan/variants/terra/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/terra/Makefile.inc
@@ -6,23 +6,7 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_dimm_K4E8E304EE-EGCE
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF
SPD_SOURCES += micron_2GiB_dimm_EDF8132A3MA-GD-F-R
SPD_SOURCES += micron_2GiB_dimm_MT52L256M32D1PF-107WT
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/ultima/Makefile.inc b/src/mainboard/google/cyan/variants/ultima/Makefile.inc
index 10500c43c2..7cb457ef6c 100644
--- a/src/mainboard/google/cyan/variants/ultima/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/ultima/Makefile.inc
@@ -5,23 +5,7 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
ramstage-y += ramstage.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4E8E304EE-EGCF
SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_2GiB_dimm_EDF8132A3MA-JD-F
SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/cyan/variants/wizpig/Makefile.inc b/src/mainboard/google/cyan/variants/wizpig/Makefile.inc
index aa1621addb..b6ff0d058f 100644
--- a/src/mainboard/google/cyan/variants/wizpig/Makefile.inc
+++ b/src/mainboard/google/cyan/variants/wizpig/Makefile.inc
@@ -4,24 +4,8 @@ romstage-y += spd_util.c
ramstage-y += gpio.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_2GiB_dimm_K4E8E304EE-EGCE
SPD_SOURCES += hynix_2GiB_dimm_H9CCNNN8GTMLAR-NUD
SPD_SOURCES += micron_2GiB_dimm_EDF8132A3MA-JD-F
SPD_SOURCES += samsung_2GiB_dimm_K4E8E324EB-EGCF
SPD_SOURCES += hynix_dimm_H9CCNNN8JTBLAR-NUD
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig
index dd1125e264..2bb255f1b1 100644
--- a/src/mainboard/google/dedede/Kconfig
+++ b/src/mainboard/google/dedede/Kconfig
@@ -21,6 +21,7 @@ config BOARD_GOOGLE_BASEBOARD_DEDEDE
select SOC_INTEL_JASPERLAKE
select SOC_INTEL_COMMON_BLOCK_DTT
select SOC_INTEL_CSE_LITE_SKU
+ select GENERIC_SPD_BIN if !BOARD_GOOGLE_DEDEDE
if BOARD_GOOGLE_BASEBOARD_DEDEDE
diff --git a/src/mainboard/google/dedede/spd/Makefile.inc b/src/mainboard/google/dedede/spd/Makefile.inc
index bcfe06d79e..f73a3e438f 100644
--- a/src/mainboard/google/dedede/spd/Makefile.inc
+++ b/src/mainboard/google/dedede/spd/Makefile.inc
@@ -1,19 +1,3 @@
## SPDX-License-Identifier: GPL-2.0-or-later
-ifneq ($(SPD_SOURCES),)
-SPD_BIN = $(obj)/spd.bin
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/soc/intel/jasperlake/spd/$(f))
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
-endif
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/soc/intel/jasperlake/spd/lp4x/$(f))
diff --git a/src/mainboard/google/drallion/Kconfig b/src/mainboard/google/drallion/Kconfig
index ae10b7817d..3ec7a4f68f 100644
--- a/src/mainboard/google/drallion/Kconfig
+++ b/src/mainboard/google/drallion/Kconfig
@@ -22,6 +22,7 @@ config BOARD_GOOGLE_BASEBOARD_DRALLION
select SYSTEM_TYPE_LAPTOP
select TPM2
select MAINBOARD_USES_IFD_EC_REGION
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_DRALLION
diff --git a/src/mainboard/google/drallion/spd/Makefile.inc b/src/mainboard/google/drallion/spd/Makefile.inc
index 99aea9c827..125413a1f3 100644
--- a/src/mainboard/google/drallion/spd/Makefile.inc
+++ b/src/mainboard/google/drallion/spd/Makefile.inc
@@ -1,21 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
ifeq ($(SPD_SOURCES),)
SPD_DEPS := $(error SPD_SOURCES is not set. Variant must provide this)
-else
- SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
endif
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/eve/Kconfig b/src/mainboard/google/eve/Kconfig
index dcc5b383ba..c2fd9823f6 100644
--- a/src/mainboard/google/eve/Kconfig
+++ b/src/mainboard/google/eve/Kconfig
@@ -22,6 +22,7 @@ config BOARD_SPECIFIC_OPTIONS
select MAINBOARD_HAS_TPM2
select SOC_INTEL_KABYLAKE
select SYSTEM_TYPE_CONVERTIBLE
+ select GENERIC_SPD_BIN
config VBOOT
select EC_GOOGLE_CHROMEEC_SWITCHES
diff --git a/src/mainboard/google/eve/spd/Makefile.inc b/src/mainboard/google/eve/spd/Makefile.inc
index 767281504d..8c4f005465 100644
--- a/src/mainboard/google/eve/spd/Makefile.inc
+++ b/src/mainboard/google/eve/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = empty # 0b0000
SPD_SOURCES += samsung_dimm_K4E8E324EB # 0b0001
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR # 0b0010
@@ -11,17 +9,3 @@ SPD_SOURCES += samsung_dimm_K4E6E304EB # 0b0011
SPD_SOURCES += hynix_dimm_H9CCNNNBJTALAR # 0b0100
SPD_SOURCES += samsung_dimm_K4EBE304EB # 0b0101
SPD_SOURCES += hynix_dimm_H9CCNNNCLTMLAR # 0b0110
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/Kconfig b/src/mainboard/google/glados/Kconfig
index 9790552229..af899cfbbc 100644
--- a/src/mainboard/google/glados/Kconfig
+++ b/src/mainboard/google/glados/Kconfig
@@ -21,6 +21,7 @@ config BOARD_GOOGLE_BASEBOARD_GLADOS
select SYSTEM_TYPE_LAPTOP
select MAINBOARD_HAS_LIBGFXINIT
select MAINBOARD_NO_FSP_GOP if !BOARD_GOOGLE_GLADOS
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_GLADOS
diff --git a/src/mainboard/google/glados/variants/asuka/Makefile.inc b/src/mainboard/google/glados/variants/asuka/Makefile.inc
index ee3447823f..d1b4d16ba0 100644
--- a/src/mainboard/google/glados/variants/asuka/Makefile.inc
+++ b/src/mainboard/google/glados/variants/asuka/Makefile.inc
@@ -3,25 +3,9 @@
romstage-y += variant.c
ramstage-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = hynix_dimm_H9CCNNN8GTMLAR-NUD # 0b0000 Single Channel 2GB
SPD_SOURCES += hynix_dimm_H9CCNNN8GTMLAR-NUD # 0b0001 Dual Channel 4GB
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF # 0b0010 Single Channel 2GB
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF # 0b0011 Dual Channel 4GB
SPD_SOURCES += micron_dimm_MT52L256M32D1PF-107-1G-1866 # 0b0100 Single Channel 2GB
SPD_SOURCES += micron_dimm_MT52L256M32D1PF-107-1G-1866 # 0b0101 Dual Channel 4GB
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/caroline/Makefile.inc b/src/mainboard/google/glados/variants/caroline/Makefile.inc
index a2545fcf08..6a942ee456 100644
--- a/src/mainboard/google/glados/variants/caroline/Makefile.inc
+++ b/src/mainboard/google/glados/variants/caroline/Makefile.inc
@@ -4,23 +4,7 @@ romstage-y += variant.c
ramstage-y += variant.c
smm-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
# SPD data by index
SPD_SOURCES = samsung_dimm_K4E8E324EB-EGCF # 0b0000
SPD_SOURCES += samsung_dimm_K4E6E304EB-EGCF # 0b0001
SPD_SOURCES += samsung_dimm_K4EBE304EB-EGCG # 0b0010
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/cave/Makefile.inc b/src/mainboard/google/glados/variants/cave/Makefile.inc
index 2f19b3fbd2..88e450ed6f 100644
--- a/src/mainboard/google/glados/variants/cave/Makefile.inc
+++ b/src/mainboard/google/glados/variants/cave/Makefile.inc
@@ -4,8 +4,6 @@ romstage-y += variant.c
ramstage-y += variant.c
smm-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
# SPD data by index. No method for board identification yet
SPD_SOURCES = micron_4GiB_dimm_MT52L256M32D1PF # 0b0000
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF # 0b0001
@@ -13,17 +11,3 @@ SPD_SOURCES += micron_8GiB_dimm_MT52L512M32D2PF # 0b0010
SPD_SOURCES += samsung_dimm_K4E6E304EB-EGCF # 0b0011
SPD_SOURCES += micron_16GiB_dimm_MT52L1G32D4PG # 0b0100
SPD_SOURCES += hynix_dimm_H9CCNNNCLTMLAR # 0b0101
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/chell/Makefile.inc b/src/mainboard/google/glados/variants/chell/Makefile.inc
index b820684b7c..53861e9839 100644
--- a/src/mainboard/google/glados/variants/chell/Makefile.inc
+++ b/src/mainboard/google/glados/variants/chell/Makefile.inc
@@ -4,8 +4,6 @@ romstage-y += variant.c
ramstage-y += variant.c
smm-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
# SPD data by index. No method for board identification yet
SPD_SOURCES = samsung_dimm_K4E8E304EE-EGCF # 0b0000
SPD_SOURCES += samsung_dimm_K4E6E304EE-EGCF # 0b0001
@@ -18,17 +16,3 @@ SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF # 0b0111
SPD_SOURCES += hynix_dimm_H9CCNNNBJTALAR # 0b1000
SPD_SOURCES += hynix_dimm_H9CCNNNCLGALAR # 0b1001
SPD_SOURCES += hynix_dimm_H9CCNNN8GTALAR # 0b1010
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/glados/Makefile.inc b/src/mainboard/google/glados/variants/glados/Makefile.inc
index 3cf91e8f03..8858453cfc 100644
--- a/src/mainboard/google/glados/variants/glados/Makefile.inc
+++ b/src/mainboard/google/glados/variants/glados/Makefile.inc
@@ -4,24 +4,8 @@ romstage-y += variant.c
ramstage-y += variant.c
smm-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
# SPD data by index. No method for board identification yet
SPD_SOURCES = empty # 0b0000
SPD_SOURCES += samsung_dimm_K4E6E304EE-EGCF # 0b0001
SPD_SOURCES += hynix_dimm_H9CCNNN8JTBLAR # 0b0010
SPD_SOURCES += hynix_dimm_H9CCNNNBLTALAR # 0b0011
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/lars/Makefile.inc b/src/mainboard/google/glados/variants/lars/Makefile.inc
index e7ab2511f2..f295a360c2 100644
--- a/src/mainboard/google/glados/variants/lars/Makefile.inc
+++ b/src/mainboard/google/glados/variants/lars/Makefile.inc
@@ -3,8 +3,6 @@
romstage-y += variant.c
ramstage-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = hynix_dimm_H9CCNNN8JTBLAR-NUD-1G-1866 # 0b0000 Single Channel 2GB
SPD_SOURCES += hynix_dimm_H9CCNNNBLTBLAR-NUD-2G-1866 # 0b0001 Dual Channel 8GB
SPD_SOURCES += samsung_dimm_K4E8E324EB-EGCF-1G-1866 # 0b0010 Dual Channel 4GB
@@ -21,17 +19,3 @@ SPD_SOURCES += samsung_dimm_K4E6E304EB-EGCF-2G-1866 # 0b1100 Single Channel
SPD_SOURCES += hynix_dimm_H9CCNNNBJTALAR # 0b1101 Dual Channel 8GB
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/glados/variants/sentry/Makefile.inc b/src/mainboard/google/glados/variants/sentry/Makefile.inc
index 019820a4b2..4de16c951a 100644
--- a/src/mainboard/google/glados/variants/sentry/Makefile.inc
+++ b/src/mainboard/google/glados/variants/sentry/Makefile.inc
@@ -3,8 +3,6 @@
romstage-y += variant.c
ramstage-y += variant.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = hynix_dimm_H9CCNNN8GTMLAR-NUD # 0b0000 Dual Channel 4GB
SPD_SOURCES += micron_dimm_MT52L256M32D1PF-107-1G-1866 # 0b0001 Dual Channel 4GB
SPD_SOURCES += samsung_dimm_K4E8E304EE-EGCF # 0b0010 Dual Channel 4GB
@@ -21,18 +19,3 @@ SPD_SOURCES += empty # 0b1100
SPD_SOURCES += empty # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/hatch/Kconfig b/src/mainboard/google/hatch/Kconfig
index 690acd1b80..952cd2d0f2 100644
--- a/src/mainboard/google/hatch/Kconfig
+++ b/src/mainboard/google/hatch/Kconfig
@@ -81,6 +81,7 @@ config DIMM_SPD_SIZE
config ROMSTAGE_SPD_CBFS
bool
default y if !ROMSTAGE_SPD_SMBUS
+ select GENERIC_SPD_BIN
config ROMSTAGE_SPD_SMBUS
bool
diff --git a/src/mainboard/google/hatch/spd/Makefile.inc b/src/mainboard/google/hatch/spd/Makefile.inc
deleted file mode 100644
index dc1c9978a0..0000000000
--- a/src/mainboard/google/hatch/spd/Makefile.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-## SPDX-License-Identifier: GPL-2.0-only
-
-ifneq ($(SPD_SOURCES),)
-SPD_BIN = $(obj)/spd.bin
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
-endif
diff --git a/src/mainboard/google/kahlee/variants/baseboard/spd/Makefile.inc b/src/mainboard/google/kahlee/variants/baseboard/spd/Makefile.inc
index 482fdec085..1ec3342891 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/spd/Makefile.inc
+++ b/src/mainboard/google/kahlee/variants/baseboard/spd/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-LIB_SPD_DEPS = $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
SPD_SOURCES = hynix-H5AN8G6NAFR-UH # 0b0000
SPD_SOURCES += hynix-H5ANAG6NAMR-UH # 0b0001
SPD_SOURCES += micron-MT40A512M16JY-083E-B # 0b0010
diff --git a/src/mainboard/google/kahlee/variants/careena/spd/Makefile.inc b/src/mainboard/google/kahlee/variants/careena/spd/Makefile.inc
index ca459d270a..4c1da68f3d 100644
--- a/src/mainboard/google/kahlee/variants/careena/spd/Makefile.inc
+++ b/src/mainboard/google/kahlee/variants/careena/spd/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-LIB_SPD_DEPS = $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
SPD_SOURCES = hynix-H5AN8G6NAFR-UH # 0b0000
SPD_SOURCES += hynix-H5ANAG6NAMR-UH # 0b0001
SPD_SOURCES += micron-MT40A512M16JY-083E-B # 0b0010
diff --git a/src/mainboard/google/kahlee/variants/nuwani/spd/Makefile.inc b/src/mainboard/google/kahlee/variants/nuwani/spd/Makefile.inc
index 2d3cd88581..e72c9e6d7a 100644
--- a/src/mainboard/google/kahlee/variants/nuwani/spd/Makefile.inc
+++ b/src/mainboard/google/kahlee/variants/nuwani/spd/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-LIB_SPD_DEPS = $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
SPD_SOURCES = hynix-H5AN8G6NAFR-UH # 0b0000
SPD_SOURCES += hynix-H5ANAG6NAMR-UH # 0b0001
SPD_SOURCES += micron-MT40A512M16JY-083E-B # 0b0010
diff --git a/src/mainboard/google/kahlee/variants/treeya/spd/Makefile.inc b/src/mainboard/google/kahlee/variants/treeya/spd/Makefile.inc
index 2d3cd88581..e72c9e6d7a 100644
--- a/src/mainboard/google/kahlee/variants/treeya/spd/Makefile.inc
+++ b/src/mainboard/google/kahlee/variants/treeya/spd/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-LIB_SPD_DEPS = $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
SPD_SOURCES = hynix-H5AN8G6NAFR-UH # 0b0000
SPD_SOURCES += hynix-H5ANAG6NAMR-UH # 0b0001
SPD_SOURCES += micron-MT40A512M16JY-083E-B # 0b0010
diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig
index 74b4da6fbc..ccd03cc844 100644
--- a/src/mainboard/google/poppy/Kconfig
+++ b/src/mainboard/google/poppy/Kconfig
@@ -15,6 +15,7 @@ config BOARD_GOOGLE_BASEBOARD_POPPY
select MAINBOARD_HAS_CHROMEOS
select SOC_INTEL_KABYLAKE
select MAINBOARD_HAS_TPM2
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_POPPY
diff --git a/src/mainboard/google/poppy/spd/Makefile.inc b/src/mainboard/google/poppy/spd/Makefile.inc
index dd57835739..997352cd0c 100644
--- a/src/mainboard/google/poppy/spd/Makefile.inc
+++ b/src/mainboard/google/poppy/spd/Makefile.inc
@@ -1,5 +1,4 @@
-SPD_BIN = $(obj)/spd.bin
SEC_SPD_BIN = $(obj)/sec-spd.bin
define gen_spd_bin
@@ -17,16 +16,8 @@ add_spd_to_cbfs= \
ifeq ($(SPD_SOURCES),)
SPD_DEPS := $(error SPD_SOURCES is not set. Variant must provide this)
-else
- SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
endif
-# Include SPD ROM data
-$(SPD_BIN): $(SPD_DEPS)
- $(call gen_spd_bin, $@, $+)
-
-$(call add_spd_to_cbfs, spd.bin, $(SPD_BIN))
-
# Add optional secondary SPD ROM data if present
ifneq ($(SEC_SPD_SOURCES),)
diff --git a/src/mainboard/google/rambi/Kconfig b/src/mainboard/google/rambi/Kconfig
index aa1c977f2a..22979e377b 100644
--- a/src/mainboard/google/rambi/Kconfig
+++ b/src/mainboard/google/rambi/Kconfig
@@ -14,6 +14,7 @@ config BOARD_GOOGLE_BASEBOARD_RAMBI
select MAINBOARD_HAS_LPC_TPM
select MAINBOARD_HAS_TPM1
select SYSTEM_TYPE_LAPTOP if !BOARD_GOOGLE_NINJA && !BOARD_GOOGLE_SUMO
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_RAMBI
diff --git a/src/mainboard/google/rambi/variants/banjo/Makefile.inc b/src/mainboard/google/rambi/variants/banjo/Makefile.inc
index 1d6619bf8f..6711c2e760 100644
--- a/src/mainboard/google/rambi/variants/banjo/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/banjo/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 2GiB total - 1 x 2GiB Samsung K4B4G1646Q-HYK0 1600MHz
@@ -16,17 +14,3 @@ SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/candy/Makefile.inc b/src/mainboard/google/rambi/variants/candy/Makefile.inc
index 4630519b4e..4e8c9017ef 100644
--- a/src/mainboard/google/rambi/variants/candy/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/candy/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b0000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -29,17 +27,3 @@ SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646E-BYK0
SPD_SOURCES += micron_2GiB_dimm_MT41K256M16TW-107
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/clapper/Makefile.inc b/src/mainboard/google/rambi/variants/clapper/Makefile.inc
index 2a641ba881..91d23af976 100644
--- a/src/mainboard/google/rambi/variants/clapper/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/clapper/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/enguarde/Makefile.inc b/src/mainboard/google/rambi/variants/enguarde/Makefile.inc
index 5b7d58b8e3..57f72800a5 100644
--- a/src/mainboard/google/rambi/variants/enguarde/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/enguarde/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += samsung_1GiB_dimm_K4B2G1646Q-BYK0
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/glimmer/Makefile.inc b/src/mainboard/google/rambi/variants/glimmer/Makefile.inc
index da99edce4c..c54f901f49 100644
--- a/src/mainboard/google/rambi/variants/glimmer/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/glimmer/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b0000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -26,17 +24,3 @@ SPD_SOURCES += elpida_2GiB_dimm_EDJ4216EFBG-GNL-F
SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += elpida_2GiB_dimm_EDJ4216EFBG-GNL-F
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/gnawty/Makefile.inc b/src/mainboard/google/rambi/variants/gnawty/Makefile.inc
index eb87d0c619..f17db16e68 100644
--- a/src/mainboard/google/rambi/variants/gnawty/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/gnawty/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Samsung K4B4G1646Q-HYK0 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63MFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/heli/Makefile.inc b/src/mainboard/google/rambi/variants/heli/Makefile.inc
index 8a9adf3d81..eacc7b5a09 100644
--- a/src/mainboard/google/rambi/variants/heli/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/heli/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# RAM_ID Vendor Vendor_PN Freq Size Total_size channel
@@ -26,17 +24,3 @@ SPD_SOURCES += empty # 0b1100
SPD_SOURCES += empty # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/kip/Makefile.inc b/src/mainboard/google/rambi/variants/kip/Makefile.inc
index bf95c739e8..d9c872ab56 100644
--- a/src/mainboard/google/rambi/variants/kip/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/kip/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125a
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += elpida_2GiB_dimm_EDJ4216EFBG-GNL-F
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/ninja/Makefile.inc b/src/mainboard/google/rambi/variants/ninja/Makefile.inc
index 723a5e592d..739eb7ea7a 100644
--- a/src/mainboard/google/rambi/variants/ninja/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/ninja/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/orco/Makefile.inc b/src/mainboard/google/rambi/variants/orco/Makefile.inc
index 2c2496ebc9..0412c537c5 100644
--- a/src/mainboard/google/rambi/variants/orco/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/orco/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/quawks/Makefile.inc b/src/mainboard/google/rambi/variants/quawks/Makefile.inc
index 2c0127cbef..d729475686 100644
--- a/src/mainboard/google/rambi/variants/quawks/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/quawks/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Elpida EDJ4216EFBG-GNL-F 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += elpida_2GiB_dimm_EDJ4216EFBG-GNL-F
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/rambi/Makefile.inc b/src/mainboard/google/rambi/variants/rambi/Makefile.inc
index 5bddd5c15a..012206eb18 100644
--- a/src/mainboard/google/rambi/variants/rambi/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/rambi/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -16,17 +14,3 @@ SPD_SOURCES += micron_1GiB_dimm_MT41K128M16JT-125
SPD_SOURCES += hynix_1GiB_dimm_H5TC2G63FFR-PBA
SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/squawks/Makefile.inc b/src/mainboard/google/rambi/variants/squawks/Makefile.inc
index 2c0127cbef..d729475686 100644
--- a/src/mainboard/google/rambi/variants/squawks/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/squawks/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Elpida EDJ4216EFBG-GNL-F 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += elpida_2GiB_dimm_EDJ4216EFBG-GNL-F
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += Hynix_HMT425S6CFR6A_H5TC4G63CFR
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/sumo/Makefile.inc b/src/mainboard/google/rambi/variants/sumo/Makefile.inc
index 723a5e592d..739eb7ea7a 100644
--- a/src/mainboard/google/rambi/variants/sumo/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/sumo/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GiB Micron MT41K256M16HA-125:E 1600MHz
@@ -20,17 +18,3 @@ SPD_SOURCES += micron_2GiB_dimm_MT41K256M16HA-125
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63CFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/swanky/Makefile.inc b/src/mainboard/google/rambi/variants/swanky/Makefile.inc
index 7269afd299..94702622ce 100644
--- a/src/mainboard/google/rambi/variants/swanky/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/swanky/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 2GiB total - 1 x 2GiB Samsung K4B4G1646Q-HYK0 1600MHz
@@ -12,17 +10,3 @@ SPD_SOURCES = samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
SPD_SOURCES += samsung_2GiB_dimm_K4B4G1646Q-HYK0
SPD_SOURCES += hynix_2GiB_dimm_H5TC4G63AFR-PBA
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/rambi/variants/winky/Makefile.inc b/src/mainboard/google/rambi/variants/winky/Makefile.inc
index 105684f7eb..27b8a6a42a 100644
--- a/src/mainboard/google/rambi/variants/winky/Makefile.inc
+++ b/src/mainboard/google/rambi/variants/winky/Makefile.inc
@@ -1,7 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
# 0b000 - 4GiB total - 2 x 2GB - micron HTTC4G63CFR-PBA_x16_4Gb
@@ -16,17 +14,3 @@ SPD_SOURCES += micron_1GiB_dimm_MT41K128M16JT-125
SPD_SOURCES += hynix_1GiB_dimm_H5TC2G63FFR-PBA
SPD_SOURCES += HT_micron_HTTC4G63CFR-PBA_x16_4Gb
SPD_SOURCES += Samsung_2Gib_K4B4G1646Q-HYK0
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/google/slippy/Kconfig b/src/mainboard/google/slippy/Kconfig
index 931d3ce55f..5a16d23ca8 100644
--- a/src/mainboard/google/slippy/Kconfig
+++ b/src/mainboard/google/slippy/Kconfig
@@ -17,6 +17,7 @@ config BOARD_GOOGLE_BASEBOARD_SLIPPY
select MAINBOARD_HAS_LIBGFXINIT
select INTEL_GMA_HAVE_VBT
select DRIVERS_I2C_RTD2132 if BOARD_GOOGLE_LEON
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_SLIPPY
diff --git a/src/mainboard/google/slippy/variants/falco/Makefile.inc b/src/mainboard/google/slippy/variants/falco/Makefile.inc
index 6d1ee81ec7..d8d748b726 100644
--- a/src/mainboard/google/slippy/variants/falco/Makefile.inc
+++ b/src/mainboard/google/slippy/variants/falco/Makefile.inc
@@ -1,8 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Micron_4KTF25664HZ # 4GB / CH0 + CH1 (RAM_ID=000)
SPD_SOURCES += Hynix_HMT425S6AFR6A # 4GB / CH0 + CH1 (RAM_ID=001)
@@ -13,16 +10,4 @@ SPD_SOURCES += Elpida_EDJ4216EFBG # 2GB / CH0 only (RAM_ID=101)
SPD_SOURCES += Samsung_M471B5674QH0 # 4GB / CH0 + CH1 (RAM_ID=110)
SPD_SOURCES += Samsung_M471B5674QH0 # 2GB / CH0 only (RAM_ID=111)
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/slippy/variants/leon/Makefile.inc b/src/mainboard/google/slippy/variants/leon/Makefile.inc
index 3dab895e9c..213dadb006 100644
--- a/src/mainboard/google/slippy/variants/leon/Makefile.inc
+++ b/src/mainboard/google/slippy/variants/leon/Makefile.inc
@@ -1,8 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Micron_4KTF25664HZ # 0: 4GB / CH0 + CH1
SPD_SOURCES += Hynix_HMT425S6AFR6A # 1: 4GB / CH0 + CH1
@@ -12,16 +9,4 @@ SPD_SOURCES += Micron_4KTF25664HZ # 4: space holder
SPD_SOURCES += Hynix_HMT425S6AFR6A # 5: 2GB / CH0
SPD_SOURCES += Samsung_K4B4G1646Q # 6: 2GB / CH0
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/slippy/variants/peppy/Makefile.inc b/src/mainboard/google/slippy/variants/peppy/Makefile.inc
index c19326e0c5..f8c5b0d88f 100644
--- a/src/mainboard/google/slippy/variants/peppy/Makefile.inc
+++ b/src/mainboard/google/slippy/variants/peppy/Makefile.inc
@@ -1,8 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Micron_4KTF25664HZ # 0: 4GB / CH0 + CH1
SPD_SOURCES += Hynix_HMT425S6AFR6A # 1: 4GB / CH0 + CH1
@@ -13,16 +10,4 @@ SPD_SOURCES += Hynix_HMT425S6AFR6A # 5: 2GB / CH0 + CH1
SPD_SOURCES += Elpida_EDJ4216EFBG # 6: 2GB / CH0 + CH1
SPD_SOURCES += Hynix_HMT425S6CFR6A # 7: 2GB / CH0 + CH1
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/slippy/variants/wolf/Makefile.inc b/src/mainboard/google/slippy/variants/wolf/Makefile.inc
index 3306b797f0..cd38d98051 100644
--- a/src/mainboard/google/slippy/variants/wolf/Makefile.inc
+++ b/src/mainboard/google/slippy/variants/wolf/Makefile.inc
@@ -1,8 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-## DIMM SPD for on-board memory
-SPD_BIN = $(obj)/spd.bin
-
# Order of names in SPD_SOURCES is important!
SPD_SOURCES = Micron_4KTF25664HZ # 0: 4GB / CH0 + CH1
SPD_SOURCES += Hynix_HMT425S6AFR6A # 1: 4GB / CH0 + CH1
@@ -11,16 +8,4 @@ SPD_SOURCES += Micron_4KTF25664HZ # 3: 2GB / CH0
SPD_SOURCES += Hynix_HMT425S6AFR6A # 4: 2GB / CH0
SPD_SOURCES += Samsung_K4B4G1646B # 4: 2GB / CH0
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/google/volteer/Kconfig b/src/mainboard/google/volteer/Kconfig
index 4867feaabe..dda2f4e933 100644
--- a/src/mainboard/google/volteer/Kconfig
+++ b/src/mainboard/google/volteer/Kconfig
@@ -27,6 +27,7 @@ config BOARD_GOOGLE_BASEBOARD_VOLTEER
select MAINBOARD_HAS_TPM2
select PCIEXP_HOTPLUG
select SOC_INTEL_TIGERLAKE
+ select GENERIC_SPD_BIN
if BOARD_GOOGLE_BASEBOARD_VOLTEER
diff --git a/src/mainboard/google/volteer/spd/Makefile.inc b/src/mainboard/google/volteer/spd/Makefile.inc
index 2dfafd5cd8..eb8e6ff355 100644
--- a/src/mainboard/google/volteer/spd/Makefile.inc
+++ b/src/mainboard/google/volteer/spd/Makefile.inc
@@ -2,23 +2,10 @@
##
ifneq ($(SPD_SOURCES),)
-SPD_BIN = $(obj)/spd.bin
-
ifeq ($(SPD_SOURCE_PATH),)
SPD_SOURCE_PATH := src/soc/intel/tigerlake/spd
endif
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), $(SPD_SOURCE_PATH)/$(f))
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), $(SPD_SOURCE_PATH)/$(f))
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
endif
diff --git a/src/mainboard/intel/cannonlake_rvp/spd/Makefile.inc b/src/mainboard/intel/cannonlake_rvp/spd/Makefile.inc
index 48e6375819..f052142431 100644
--- a/src/mainboard/intel/cannonlake_rvp/spd/Makefile.inc
+++ b/src/mainboard/intel/cannonlake_rvp/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd_util.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = empty # 0b000
SPD_SOURCES += samsung_ddr4_4GB # 0b001 Dual Channel 4GB
SPD_SOURCES += samsung_lpddr4_8GB # 0b001 Dual Channel 8GB
diff --git a/src/mainboard/intel/harcuvar/Kconfig b/src/mainboard/intel/harcuvar/Kconfig
index d110c281a2..dde087ae08 100644
--- a/src/mainboard/intel/harcuvar/Kconfig
+++ b/src/mainboard/intel/harcuvar/Kconfig
@@ -19,6 +19,7 @@ config MAINBOARD_PART_NUMBER
config ENABLE_FSP_MEMORY_DOWN
bool "Enable Memory Down"
default n
+ select GENERIC_SPD_BIN
help
Select this option to enable Memory Down function.
diff --git a/src/mainboard/intel/harcuvar/spd/Makefile.inc b/src/mainboard/intel/harcuvar/spd/Makefile.inc
index 55a6aef7a8..ec07cfb845 100644
--- a/src/mainboard/intel/harcuvar/spd/Makefile.inc
+++ b/src/mainboard/intel/harcuvar/spd/Makefile.inc
@@ -2,23 +2,8 @@
romstage-y += spd.c
-SPD_BIN = $(obj)/spd.bin
-
# Order matters for SPD sources. The following indices
# define the SPD data to use.
SPD_SOURCES = micron_4GiB_dimm_MTA9ASF51272PZ-2G1A2
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd rom data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do echo -e -n "\\x$$c"; \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
spd.bin-position := $(CONFIG_SPD_LOC)
-spd.bin-type := spd
diff --git a/src/mainboard/intel/icelake_rvp/spd/Makefile.inc b/src/mainboard/intel/icelake_rvp/spd/Makefile.inc
index 3114eebaf5..8e3ce25085 100644
--- a/src/mainboard/intel/icelake_rvp/spd/Makefile.inc
+++ b/src/mainboard/intel/icelake_rvp/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd_util.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = empty # 0b000
SPD_SOURCES += samsung_K4F6E304HBMGCJ # 1b001
SPD_SOURCES += empty # 2b010
diff --git a/src/mainboard/intel/jasperlake_rvp/spd/Makefile.inc b/src/mainboard/intel/jasperlake_rvp/spd/Makefile.inc
index 3c8040c7c2..ef1eaabd90 100644
--- a/src/mainboard/intel/jasperlake_rvp/spd/Makefile.inc
+++ b/src/mainboard/intel/jasperlake_rvp/spd/Makefile.inc
@@ -1,5 +1,3 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = jslrvp # 0b000
diff --git a/src/mainboard/intel/kblrvp/spd/Makefile.inc b/src/mainboard/intel/kblrvp/spd/Makefile.inc
index d04269969a..887e4f16fe 100644
--- a/src/mainboard/intel/kblrvp/spd/Makefile.inc
+++ b/src/mainboard/intel/kblrvp/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd_util.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = rvp3 # 0b000 Dual Channel 4GB
SPD_SOURCES += empty # 0b001
SPD_SOURCES += empty # 0b010
diff --git a/src/mainboard/intel/kunimitsu/Kconfig b/src/mainboard/intel/kunimitsu/Kconfig
index d7706d16a0..c655a88705 100644
--- a/src/mainboard/intel/kunimitsu/Kconfig
+++ b/src/mainboard/intel/kunimitsu/Kconfig
@@ -19,6 +19,7 @@ config BOARD_SPECIFIC_OPTIONS
select MAINBOARD_HAS_CHROMEOS
select MAINBOARD_HAS_LPC_TPM
select SOC_INTEL_SKYLAKE
+ select GENERIC_SPD_BIN
config VBOOT
select EC_GOOGLE_CHROMEEC_SWITCHES
diff --git a/src/mainboard/intel/kunimitsu/spd/Makefile.inc b/src/mainboard/intel/kunimitsu/spd/Makefile.inc
index 9ecf28d1fe..6a14c293a5 100644
--- a/src/mainboard/intel/kunimitsu/spd/Makefile.inc
+++ b/src/mainboard/intel/kunimitsu/spd/Makefile.inc
@@ -2,8 +2,6 @@
romstage-y += spd_util.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = hynix_dimm_H9CCNNN8JTALAR-NUD-1G-1866 # 0b0000 Dual Channel 4GB
SPD_SOURCES += hynix_dimm_H9CCNNN8JTALAR-NUD-1G-1866 # 0b0001 Single Channel 2GB
SPD_SOURCES += samsung_dimm_K4E8E304EE-EGCF-1G-1866 # 0b0010 Dual Channel 4GB
@@ -20,18 +18,3 @@ SPD_SOURCES += empty # 0b1100
SPD_SOURCES += empty # 0b1101
SPD_SOURCES += empty # 0b1110
SPD_SOURCES += empty # 0b1111
-
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/intel/tglrvp/Kconfig b/src/mainboard/intel/tglrvp/Kconfig
index 437f5c6348..c94cca6d74 100644
--- a/src/mainboard/intel/tglrvp/Kconfig
+++ b/src/mainboard/intel/tglrvp/Kconfig
@@ -17,6 +17,7 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_INTEL_ISH
select EC_ACPI
select PCIEXP_HOTPLUG
+ select GENERIC_SPD_BIN
config CHROMEOS
bool
diff --git a/src/mainboard/intel/tglrvp/spd/Makefile.inc b/src/mainboard/intel/tglrvp/spd/Makefile.inc
index 8dd1507544..df52042e07 100644
--- a/src/mainboard/intel/tglrvp/spd/Makefile.inc
+++ b/src/mainboard/intel/tglrvp/spd/Makefile.inc
@@ -1,21 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = Micron-MT53D1G64D8SQ-046
SPD_SOURCES += Samsung-K4UBE3D4AA-MGCL
SPD_SOURCES += Hynix-H9HKNNNEBMAV-4267
-
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
diff --git a/src/mainboard/lenovo/t430s/Kconfig b/src/mainboard/lenovo/t430s/Kconfig
index 6b34105826..1c0586d562 100644
--- a/src/mainboard/lenovo/t430s/Kconfig
+++ b/src/mainboard/lenovo/t430s/Kconfig
@@ -24,6 +24,7 @@ config BOARD_SPECIFIC_OPTIONS
select INTEL_GMA_HAVE_VBT
select MAINBOARD_USES_IFD_GBE_REGION
select DRIVERS_RICOH_RCE822 if BOARD_LENOVO_T431S
+ select GENERIC_SPD_BIN if BOARD_LENOVO_T431S
# Workaround for EC/KBC IRQ1.
select SERIRQ_CONTINUOUS_MODE
diff --git a/src/mainboard/lenovo/t430s/variants/t431s/spd/Makefile.inc b/src/mainboard/lenovo/t430s/variants/t431s/spd/Makefile.inc
index 38d83d6be8..3926956fb7 100644
--- a/src/mainboard/lenovo/t430s/variants/t431s/spd/Makefile.inc
+++ b/src/mainboard/lenovo/t430s/variants/t431s/spd/Makefile.inc
@@ -1,18 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES = samsung_4gb # 0b0010 4GiB
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+LIB_SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/spd/$(f).spd.hex)
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
index adb999430c..cff79031b2 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
+++ b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig
@@ -22,6 +22,7 @@ config BOARD_SPECIFIC_OPTIONS
select MAINBOARD_HAS_LIBGFXINIT
select GFX_GMA_PANEL_1_ON_LVDS
select INTEL_GMA_HAVE_VBT
+ select GENERIC_SPD_BIN
# Workaround for EC/KBC IRQ1.
select SERIRQ_CONTINUOUS_MODE
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/spd/Makefile.inc b/src/mainboard/lenovo/x1_carbon_gen1/spd/Makefile.inc
index e047c6ee58..d3244d1a9c 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/spd/Makefile.inc
+++ b/src/mainboard/lenovo/x1_carbon_gen1/spd/Makefile.inc
@@ -1,20 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
-SPD_BIN = $(obj)/spd.bin
-
-SPD_SOURCES = elpida.hex # 0b0000 Single Channel 2GB
-SPD_SOURCES += hynix.hex # 0b0001 2GiB
-SPD_SOURCES += samsung.hex # 0b0010 4GiB
-SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f))
-
-# Include spd ROM data
-$(SPD_BIN): $(SPD_DEPS)
- for f in $+; \
- do for c in $$(cat $$f | grep -v ^#); \
- do printf $$(printf '\\%o' 0x$$c); \
- done; \
- done > $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
+SPD_SOURCES = elpida # 0b0000 Single Channel 2GB
+SPD_SOURCES += hynix # 0b0001 2GiB
+SPD_SOURCES += samsung # 0b0010 4GiB
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.hex b/src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.spd.hex
index 816254d379..816254d379 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.hex
+++ b/src/mainboard/lenovo/x1_carbon_gen1/spd/elpida.spd.hex
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.hex b/src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.spd.hex
index 111745ce2d..111745ce2d 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.hex
+++ b/src/mainboard/lenovo/x1_carbon_gen1/spd/hynix.spd.hex
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.hex b/src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.spd.hex
index 24186362b8..24186362b8 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.hex
+++ b/src/mainboard/lenovo/x1_carbon_gen1/spd/samsung.spd.hex
diff --git a/src/mainboard/razer/blade_stealth_kbl/spd/Makefile.inc b/src/mainboard/razer/blade_stealth_kbl/spd/Makefile.inc
index 27c289bd2a..f1fdd6ffe8 100644
--- a/src/mainboard/razer/blade_stealth_kbl/spd/Makefile.inc
+++ b/src/mainboard/razer/blade_stealth_kbl/spd/Makefile.inc
@@ -2,7 +2,5 @@
romstage-y += spd_util.c
-SPD_BIN = $(obj)/spd.bin
-
SPD_SOURCES += micron_dimm_MT52L512M32D2PF-107 # 0b0000 8GB
SPD_SOURCES += micron_dimm_MT52L1G32D4PG-107 # 0b0001 16GB
diff --git a/src/mainboard/samsung/lumpy/Kconfig b/src/mainboard/samsung/lumpy/Kconfig
index b938945fa2..237076f8c2 100644
--- a/src/mainboard/samsung/lumpy/Kconfig
+++ b/src/mainboard/samsung/lumpy/Kconfig
@@ -24,6 +24,7 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_GENERIC_IOAPIC
select INTEL_INT15
select SANDYBRIDGE_VBOOT_IN_ROMSTAGE
+ select GENERIC_SPD_BIN
config VBOOT
select VBOOT_VBNV_CMOS
diff --git a/src/mainboard/samsung/lumpy/Makefile.inc b/src/mainboard/samsung/lumpy/Makefile.inc
index 74a635767e..1fd9498c47 100644
--- a/src/mainboard/samsung/lumpy/Makefile.inc
+++ b/src/mainboard/samsung/lumpy/Makefile.inc
@@ -5,18 +5,11 @@ ramstage-y += ec.c
romstage-y += chromeos.c
ramstage-y += chromeos.c
-SPD_BIN = $(obj)/spd.bin
-
-# Include spd ROM data
-$(SPD_BIN):
- xxd -rg1 $(src)/mainboard/samsung/lumpy/spd.hex >| $@
-
-cbfs-files-y += spd.bin
-spd.bin-file := $(SPD_BIN)
-spd.bin-type := spd
bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
bootblock-y += early_init.c
romstage-y += early_init.c
+
+SPD_SOURCES = lumpy
diff --git a/src/mainboard/samsung/lumpy/spd.hex b/src/mainboard/samsung/lumpy/spd.hex
deleted file mode 100644
index 8690886207..0000000000
--- a/src/mainboard/samsung/lumpy/spd.hex
+++ /dev/null
@@ -1,96 +0,0 @@
-0000000: 92 10 0b 03 02 11 00 01 03 52 01 08 0c 00 3e 00 .........R....>.
-0000010: 69 78 69 30 69 11 20 89 70 03 3c 3c 00 f0 83 01 ixi0i. .p.<<....
-0000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000030: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00 ..............!.
-0000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000070: 00 00 00 00 00 80 ce 01 00 00 00 00 00 00 d3 0d ................
-0000080: 4d 34 37 31 42 32 38 37 33 46 48 53 2d 43 48 39 M471B2873FHS-CH9
-0000090: 20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00 ..............
-00000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000100: 92 10 0b 03 02 11 00 01 03 52 01 08 0f 00 1e 00 .........R......
-0000110: 69 78 69 3c 69 11 2c 95 70 03 3c 3c 01 2c 83 01 ixi<i.,.p.<<.,..
-0000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000130: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00 ..............!.
-0000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000170: 00 00 00 00 00 80 ce 02 10 31 81 1d 77 ce 91 a4 .........1..w...
-0000180: 4d 34 37 31 42 32 38 37 33 46 48 53 2d 43 46 38 M471B2873FHS-CF8
-0000190: 20 20 00 00 80 ce 00 00 00 53 47 30 44 35 31 31 .......SG0D511
-00001a0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00001b0: 01 a0 04 38 20 06 57 31 00 00 00 00 00 00 00 00 ...8 .W1........
-00001c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000200: 92 10 0b 03 03 19 00 01 03 52 01 08 0c 00 7e 00 .........R....~.
-0000210: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 81 ixi0i. ...<<....
-0000220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000230: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00 ..............A.
-0000240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000270: 00 00 00 00 00 02 fe 00 00 00 00 00 00 00 29 2b ..............)+
-0000280: 45 42 4a 32 30 55 46 38 42 44 55 30 2d 44 4a 2d EBJ20UF8BDU0-DJ-
-0000290: 46 20 30 20 02 fe 00 00 00 00 00 00 00 00 00 00 F 0 ............
-00002a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00002b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00002c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00002d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00002f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000300: 92 11 0b 03 02 11 00 01 03 11 01 08 0c 00 3e 00 ..............>.
-0000310: 69 78 69 30 69 11 20 89 70 03 3c 3c 00 f0 83 01 ixi0i. .p.<<....
-0000320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000330: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00 ..............A.
-0000340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000370: 00 00 00 00 00 80 ce 01 00 00 00 00 00 00 cf 74 ...............t
-0000380: 4d 34 37 31 42 32 38 37 33 47 42 30 2d 43 48 39 M471B2873GB0-CH9
-0000390: 20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00 ..............
-00003a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00003b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00003c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00003d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00003e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00003f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000400: 92 11 0b 03 02 11 00 01 03 11 01 08 0f 00 1e 00 ................
-0000410: 69 78 69 3c 69 11 2c 95 70 03 3c 3c 01 2c 83 01 ixi<i.,.p.<<.,..
-0000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000430: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00 ..............A.
-0000440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000470: 00 00 00 00 00 80 ce 01 00 00 00 00 00 00 8d dd ................
-0000480: 4d 34 37 31 42 32 38 37 33 47 42 30 2d 43 46 38 M471B2873GB0-CF8
-0000490: 20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00 ..............
-00004a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00004b0: 01 a0 04 38 20 06 57 31 00 00 00 00 00 00 00 00 ...8 .W1........
-00004c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00004d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00004e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00004f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000500: 92 10 0b 03 03 19 00 01 03 52 01 08 0c 00 3e 00 .........R....>.
-0000510: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01 ixi0i. ...<<....
-0000520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000530: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00 ..............!.
-0000540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-0000570: 00 00 00 00 00 80 ce 01 00 00 00 00 00 00 4c db ..............L.
-0000580: 4d 34 37 31 42 35 37 37 33 43 48 53 2d 43 48 39 M471B5773CHS-CH9
-0000590: 20 20 00 00 80 ce 00 00 00 53 30 58 44 30 30 30 .......S0XD000
-00005a0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00005b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00005c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00005d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00005e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
-00005f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
diff --git a/src/mainboard/samsung/lumpy/spd/lumpy.spd.hex b/src/mainboard/samsung/lumpy/spd/lumpy.spd.hex
new file mode 100644
index 0000000000..abd3ebf290
--- /dev/null
+++ b/src/mainboard/samsung/lumpy/spd/lumpy.spd.hex
@@ -0,0 +1,96 @@
+92 10 0b 03 02 11 00 01 03 52 01 08 0c 00 3e 00
+69 78 69 30 69 11 20 89 70 03 3c 3c 00 f0 83 01
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 80 ce 01 00 00 00 00 00 00 d3 0d
+4d 34 37 31 42 32 38 37 33 46 48 53 2d 43 48 39
+20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+92 10 0b 03 02 11 00 01 03 52 01 08 0f 00 1e 00
+69 78 69 3c 69 11 2c 95 70 03 3c 3c 01 2c 83 01
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 80 ce 02 10 31 81 1d 77 ce 91 a4
+4d 34 37 31 42 32 38 37 33 46 48 53 2d 43 46 38
+20 20 00 00 80 ce 00 00 00 53 47 30 44 35 31 31
+01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+01 a0 04 38 20 06 57 31 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+92 10 0b 03 03 19 00 01 03 52 01 08 0c 00 7e 00
+69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 81
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 02 fe 00 00 00 00 00 00 00 29 2b
+45 42 4a 32 30 55 46 38 42 44 55 30 2d 44 4a 2d
+46 20 30 20 02 fe 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+92 11 0b 03 02 11 00 01 03 11 01 08 0c 00 3e 00
+69 78 69 30 69 11 20 89 70 03 3c 3c 00 f0 83 01
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 80 ce 01 00 00 00 00 00 00 cf 74
+4d 34 37 31 42 32 38 37 33 47 42 30 2d 43 48 39
+20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+92 11 0b 03 02 11 00 01 03 11 01 08 0f 00 1e 00
+69 78 69 3c 69 11 2c 95 70 03 3c 3c 01 2c 83 01
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 41 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 80 ce 01 00 00 00 00 00 00 8d dd
+4d 34 37 31 42 32 38 37 33 47 42 30 2d 43 46 38
+20 20 00 00 80 ce 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+01 a0 04 38 20 06 57 31 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+92 10 0b 03 03 19 00 01 03 52 01 08 0c 00 3e 00
+69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0f 11 21 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 80 ce 01 00 00 00 00 00 00 4c db
+4d 34 37 31 42 35 37 37 33 43 48 53 2d 43 48 39
+20 20 00 00 80 ce 00 00 00 53 30 58 44 30 30 30
+01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00