aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/zork/variants
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2020-08-14 15:34:24 -0600
committerAaron Durbin <adurbin@chromium.org>2020-08-28 15:58:34 +0000
commit55ccd5b873eca356a4f20163aa0231320508e0f7 (patch)
treec08118264c1d94ef683993af81a8e86e7b4887dd /src/mainboard/google/zork/variants
parent8da998c2b084235181b9b2cd2d4a7ac15a92c4a1 (diff)
mb/google/zork: Switch zork to use spd_tools
Switch all zork boards to use generated generic SPDs from spd_tools. HMAA1GS6CMR6N-VK is unused by Ezkinil, and all other boards, so it was removed. picasso/Makefile.inc was updated to populate the 2nd APCB channel based on APCB_POPULATE_2ND_CHANNEL. This removes the need to suffix spd entires with _x1/_x2. Command to generate files: $ find src/mainboard/google/zork/variants/ -maxdepth 1 -type d | grep -v '/$' | while read b; do n=$(basename ${b}); if [ "${n}" = "baseboard" ]; then continue fi go run util/spd_tools/ddr4/gen_part_id.go src/mainboard/google/zork/spd \ src/mainboard/google/zork/variants/${n}/spd \ src/mainboard/google/zork/variants/${n}/spd/mem_parts_used.txt done BUG=b:162939176 TEST=Boot ezkinil and dalboz check dmidecod -t17 Signed-off-by: Rob Barnes <robbarnes@google.com> Change-Id: I0553858f83d3d1e90cf35bece108768f004a29a5 Reviewed-on: https://review.coreboot.org/c/coreboot/+/44480 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/mainboard/google/zork/variants')
-rw-r--r--src/mainboard/google/zork/variants/baseboard/Makefile.inc4
-rw-r--r--src/mainboard/google/zork/variants/berknip/spd/Makefile.inc37
-rw-r--r--src/mainboard/google/zork/variants/berknip/spd/dram_id.generated.txt10
-rw-r--r--src/mainboard/google/zork/variants/berknip/spd/mem_parts_used.txt9
-rw-r--r--src/mainboard/google/zork/variants/dalboz/spd/Makefile.inc32
-rw-r--r--src/mainboard/google/zork/variants/dalboz/spd/dram_id.generated.txt6
-rw-r--r--src/mainboard/google/zork/variants/dalboz/spd/mem_parts_used.txt5
-rw-r--r--src/mainboard/google/zork/variants/dirinboz/spd/Makefile.inc38
-rw-r--r--src/mainboard/google/zork/variants/dirinboz/spd/dram_id.generated.txt12
-rw-r--r--src/mainboard/google/zork/variants/dirinboz/spd/mem_parts_used.txt11
-rw-r--r--src/mainboard/google/zork/variants/ezkinil/spd/Makefile.inc32
-rw-r--r--src/mainboard/google/zork/variants/ezkinil/spd/dram_id.generated.txt5
-rw-r--r--src/mainboard/google/zork/variants/ezkinil/spd/mem_parts_used.txt4
-rw-r--r--src/mainboard/google/zork/variants/morphius/spd/Makefile.inc38
-rw-r--r--src/mainboard/google/zork/variants/morphius/spd/dram_id.generated.txt10
-rw-r--r--src/mainboard/google/zork/variants/morphius/spd/mem_parts_used.txt9
-rw-r--r--src/mainboard/google/zork/variants/trembyle/Makefile.inc2
-rw-r--r--src/mainboard/google/zork/variants/trembyle/spd/Makefile.inc6
-rw-r--r--src/mainboard/google/zork/variants/trembyle/spd/dram_id.generated.txt3
-rw-r--r--src/mainboard/google/zork/variants/trembyle/spd/mem_parts_used.txt2
-rw-r--r--src/mainboard/google/zork/variants/vilboz/spd/Makefile.inc35
-rw-r--r--src/mainboard/google/zork/variants/vilboz/spd/dram_id.generated.txt8
-rw-r--r--src/mainboard/google/zork/variants/vilboz/spd/mem_parts_used.txt7
-rw-r--r--src/mainboard/google/zork/variants/woomax/spd/Makefile.inc32
-rw-r--r--src/mainboard/google/zork/variants/woomax/spd/dram_id.generated.txt9
-rw-r--r--src/mainboard/google/zork/variants/woomax/spd/mem_parts_used.txt8
26 files changed, 209 insertions, 165 deletions
diff --git a/src/mainboard/google/zork/variants/baseboard/Makefile.inc b/src/mainboard/google/zork/variants/baseboard/Makefile.inc
index c9e3657f4b..c8d57ff9b5 100644
--- a/src/mainboard/google/zork/variants/baseboard/Makefile.inc
+++ b/src/mainboard/google/zork/variants/baseboard/Makefile.inc
@@ -44,11 +44,15 @@ endif #($(CONFIG_USE_OEM_BIN),y)
# GPIO_NUMBER: FCH GPIO number
# GPIO_IO_MUX: Value write to IOMUX to configure this GPIO
# GPIO_BANK_CTL: Value write to GPIOBankCtl[23:16] to configure this GPIO
+# APCB_POPULATE_2ND_CHANNEL: Populates 2nd memory channel in APCB when true.
+# Trembyle based boards select 1 or 2 channels based on AGPIO84
+# Dalboz based boards only support 1 channel
ifeq ($(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE),y)
APCB_BOARD_ID_GPIO0 = 121 1 0
APCB_BOARD_ID_GPIO1 = 120 1 0
APCB_BOARD_ID_GPIO2 = 131 3 0
APCB_BOARD_ID_GPIO3 = 116 1 0
+APCB_POPULATE_2ND_CHANNEL = true
else ifeq ($(CONFIG_BOARD_GOOGLE_BASEBOARD_DALBOZ),y)
APCB_BOARD_ID_GPIO0 = 132 1 0
APCB_BOARD_ID_GPIO1 = 90 1 0
diff --git a/src/mainboard/google/zork/variants/berknip/spd/Makefile.inc b/src/mainboard/google/zork/variants/berknip/spd/Makefile.inc
index f53e66294d..ae5b2e28e6 100644
--- a/src/mainboard/google/zork/variants/berknip/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/berknip/spd/Makefile.inc
@@ -1,26 +1,13 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# Alternatively, generated APCBs stored at
-# 3rdparty/blobs/mainboard/$(MAINBOARDDIR)/APCB_{NAME}.bin will be included.
-APCB_SOURCES = samsung-K4A8G165WC-BCTD_x2 # 0b0000
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x2 # 0b0001
-# b/149596178: We can't use dual channel channel until the PSP supports missing
-# channels.
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x2 # 0b0010
-APCB_SOURCES += hynix-H5AN8G6NDJR-XNC_x1 # 0b0011
-APCB_SOURCES += hynix-H5ANAG6NCMR-VKC_x2 # 0b0100
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x1 # 0b0101
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x2 # 0b0110
-APCB_SOURCES += hynix-H5ANAG6NCMR-XNC_x2 # 0b0111
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x2 # 0b1000
-APCB_SOURCES += empty # 0b1001
-APCB_SOURCES += empty # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = K4A8G165WC-BCTD
+SPD_SOURCES += ddr4-spd-1.hex # ID = 1(0b0001) Parts = K4A8G165WC-BCWE
+SPD_SOURCES += ddr4-spd-1.hex # ID = 2(0b0010) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-1.hex # ID = 3(0b0011) Parts = H5AN8G6NDJR-XNC
+SPD_SOURCES += ddr4-spd-6.hex # ID = 4(0b0100) Parts = H5ANAG6NCMR-VKC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 5(0b0101) Parts = K4A8G165WC-BCWE
+SPD_SOURCES += ddr4-spd-7.hex # ID = 6(0b0110) Parts = MT40A1G16KD-062E:E
+SPD_SOURCES += ddr4-spd-2.hex # ID = 7(0b0111) Parts = H5ANAG6NCMR-XNC
+SPD_SOURCES += ddr4-spd-7.hex # ID = 8(0b1000) Parts = K4AAG165WA-BCWE
diff --git a/src/mainboard/google/zork/variants/berknip/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/berknip/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..32b5981748
--- /dev/null
+++ b/src/mainboard/google/zork/variants/berknip/spd/dram_id.generated.txt
@@ -0,0 +1,10 @@
+DRAM Part Name ID to assign
+K4A8G165WC-BCTD 0 (0000)
+K4A8G165WC-BCWE 1 (0001)
+MT40A512M16TB-062E:J 2 (0010)
+H5AN8G6NDJR-XNC 3 (0011)
+H5ANAG6NCMR-VKC 4 (0100)
+K4A8G165WC-BCWE 5 (0101)
+MT40A1G16KD-062E:E 6 (0110)
+H5ANAG6NCMR-XNC 7 (0111)
+K4AAG165WA-BCWE 8 (1000)
diff --git a/src/mainboard/google/zork/variants/berknip/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/berknip/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..1c88e23a42
--- /dev/null
+++ b/src/mainboard/google/zork/variants/berknip/spd/mem_parts_used.txt
@@ -0,0 +1,9 @@
+K4A8G165WC-BCTD, 0
+K4A8G165WC-BCWE, 1
+MT40A512M16TB-062E:J, 2
+H5AN8G6NDJR-XNC, 3
+H5ANAG6NCMR-VKC, 4
+K4A8G165WC-BCWE, 5
+MT40A1G16KD-062E:E, 6
+H5ANAG6NCMR-XNC, 7
+K4AAG165WA-BCWE, 8
diff --git a/src/mainboard/google/zork/variants/dalboz/spd/Makefile.inc b/src/mainboard/google/zork/variants/dalboz/spd/Makefile.inc
index 7baf8be205..e8ed39da29 100644
--- a/src/mainboard/google/zork/variants/dalboz/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/dalboz/spd/Makefile.inc
@@ -1,25 +1,9 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# Alternatively, generated APCBs stored at
-# 3rdparty/blobs/mainboard/$(MAINBOARDDIR)/APCB_{NAME}.bin will be included.
-APCB_SOURCES = hynix-HMA851S6CJR6N-VK_x1 # 0b0000
-APCB_SOURCES += hynix-H5ANAG6NCMR-VKC_x1 # 0b0001
-APCB_SOURCES += samsung-K4A8G165WC-BCTD_x1 # 0b0010
-APCB_SOURCES += samsung-K4AAG165WB-MCTD_x1 # 0b0011
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x1 # 0b0100
-APCB_SOURCES += empty # 0b0101
-APCB_SOURCES += empty # 0b0110
-APCB_SOURCES += empty # 0b0111
-APCB_SOURCES += empty # 0b1000
-APCB_SOURCES += empty # 0b1001
-APCB_SOURCES += empty # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
-APCB_SOURCES += empty # 0b1111
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = HMA851S6CJR6N-VK
+SPD_SOURCES += ddr4-spd-6.hex # ID = 1(0b0001) Parts = H5ANAG6NCMR-VKC
+SPD_SOURCES += ddr4-spd-3.hex # ID = 2(0b0010) Parts = K4A8G165WC-BCTD
+SPD_SOURCES += ddr4-spd-5.hex # ID = 3(0b0011) Parts = K4AAG165WB-MCTD
+SPD_SOURCES += ddr4-spd-1.hex # ID = 4(0b0100) Parts = K4A8G165WC-BCWE
diff --git a/src/mainboard/google/zork/variants/dalboz/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/dalboz/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..f70d7f34d4
--- /dev/null
+++ b/src/mainboard/google/zork/variants/dalboz/spd/dram_id.generated.txt
@@ -0,0 +1,6 @@
+DRAM Part Name ID to assign
+HMA851S6CJR6N-VK 0 (0000)
+H5ANAG6NCMR-VKC 1 (0001)
+K4A8G165WC-BCTD 2 (0010)
+K4AAG165WB-MCTD 3 (0011)
+K4A8G165WC-BCWE 4 (0100)
diff --git a/src/mainboard/google/zork/variants/dalboz/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/dalboz/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..f25485156f
--- /dev/null
+++ b/src/mainboard/google/zork/variants/dalboz/spd/mem_parts_used.txt
@@ -0,0 +1,5 @@
+HMA851S6CJR6N-VK, 0
+H5ANAG6NCMR-VKC, 1
+K4A8G165WC-BCTD, 2
+K4AAG165WB-MCTD, 3
+K4A8G165WC-BCWE, 4
diff --git a/src/mainboard/google/zork/variants/dirinboz/spd/Makefile.inc b/src/mainboard/google/zork/variants/dirinboz/spd/Makefile.inc
index 480e75743d..badd9bf49e 100644
--- a/src/mainboard/google/zork/variants/dirinboz/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/dirinboz/spd/Makefile.inc
@@ -1,25 +1,15 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# Alternatively, generated APCBs stored at
-# 3rdparty/blobs/mainboard/$(MAINBOARDDIR)/APCB_{NAME}.bin will be included.
-APCB_SOURCES = hynix-HMA851S6CJR6N-VK_x1 # 0b0000
-APCB_SOURCES += hynix-H5ANAG6NCMR-VKC_x1 # 0b0001
-APCB_SOURCES += samsung-K4A8G165WC-BCTD_x1 # 0b0010
-APCB_SOURCES += samsung-K4AAG165WB-MCTD_x1 # 0b0011
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x1 # 0b0100
-APCB_SOURCES += hynix-H5AN8G6NDJR-XNC_x1 # 0b0101
-APCB_SOURCES += hynix-H5ANAG6NCMR-XNC_x1 # 0b0110
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x1 # 0b0111
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x1 # 0b1000
-APCB_SOURCES += samsung-K4AAG165WA-BCTD_x1 # 0b1001
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x1 # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
-APCB_SOURCES += empty # 0b1111
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = HMA851S6CJR6N-VK
+SPD_SOURCES += ddr4-spd-6.hex # ID = 1(0b0001) Parts = H5ANAG6NCMR-VKC
+SPD_SOURCES += ddr4-spd-3.hex # ID = 2(0b0010) Parts = K4A8G165WC-BCTD
+SPD_SOURCES += ddr4-spd-5.hex # ID = 3(0b0011) Parts = K4AAG165WB-MCTD
+SPD_SOURCES += ddr4-spd-1.hex # ID = 4(0b0100) Parts = K4A8G165WC-BCWE
+SPD_SOURCES += ddr4-spd-1.hex # ID = 5(0b0101) Parts = H5AN8G6NDJR-XNC
+SPD_SOURCES += ddr4-spd-2.hex # ID = 6(0b0110) Parts = H5ANAG6NCMR-XNC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 7(0b0111) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-7.hex # ID = 8(0b1000) Parts = MT40A1G16KD-062E:E
+SPD_SOURCES += ddr4-spd-8.hex # ID = 9(0b1001) Parts = K4AAG165WA-BCTD
+SPD_SOURCES += ddr4-spd-7.hex # ID = 10(0b1010) Parts = K4AAG165WA-BCWE
diff --git a/src/mainboard/google/zork/variants/dirinboz/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/dirinboz/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..9d4b9f3533
--- /dev/null
+++ b/src/mainboard/google/zork/variants/dirinboz/spd/dram_id.generated.txt
@@ -0,0 +1,12 @@
+DRAM Part Name ID to assign
+HMA851S6CJR6N-VK 0 (0000)
+H5ANAG6NCMR-VKC 1 (0001)
+K4A8G165WC-BCTD 2 (0010)
+K4AAG165WB-MCTD 3 (0011)
+K4A8G165WC-BCWE 4 (0100)
+H5AN8G6NDJR-XNC 5 (0101)
+H5ANAG6NCMR-XNC 6 (0110)
+MT40A512M16TB-062E:J 7 (0111)
+MT40A1G16KD-062E:E 8 (1000)
+K4AAG165WA-BCTD 9 (1001)
+K4AAG165WA-BCWE 10 (1010)
diff --git a/src/mainboard/google/zork/variants/dirinboz/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/dirinboz/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..9035dee91f
--- /dev/null
+++ b/src/mainboard/google/zork/variants/dirinboz/spd/mem_parts_used.txt
@@ -0,0 +1,11 @@
+HMA851S6CJR6N-VK, 0
+H5ANAG6NCMR-VKC, 1
+K4A8G165WC-BCTD, 2
+K4AAG165WB-MCTD, 3
+K4A8G165WC-BCWE, 4
+H5AN8G6NDJR-XNC, 5
+H5ANAG6NCMR-XNC, 6
+MT40A512M16TB-062E:J, 7
+MT40A1G16KD-062E:E, 8
+K4AAG165WA-BCTD, 9
+K4AAG165WA-BCWE, 10
diff --git a/src/mainboard/google/zork/variants/ezkinil/spd/Makefile.inc b/src/mainboard/google/zork/variants/ezkinil/spd/Makefile.inc
index cd912726c4..65eb7b0131 100644
--- a/src/mainboard/google/zork/variants/ezkinil/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/ezkinil/spd/Makefile.inc
@@ -1,25 +1,9 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# Alternatively, generated APCBs stored at
-# 3rdparty/blobs/mainboard/$(MAINBOARDDIR)/APCB_{NAME}.bin will be included.
-APCB_SOURCES = hynix-H5AN8G6NCJR-VKC_x2 # 0b0000
-APCB_SOURCES += hynix-HMAA1GS6CMR6N-VK_x2 # 0b0001
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x2 # 0b0010
-APCB_SOURCES += micron-MT40A1G16KNR-075-E_x2 # 0b0011
-APCB_SOURCES += samsung-K4A8G165WC-BCTD_x2 # 0b0100
-APCB_SOURCES += empty # 0b0101
-APCB_SOURCES += empty # 0b0110
-APCB_SOURCES += empty # 0b0111
-APCB_SOURCES += empty # 0b1000
-APCB_SOURCES += empty # 0b1001
-APCB_SOURCES += empty # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
-APCB_SOURCES += empty # 0b1111
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = H5AN8G6NCJR-VKC
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 1(0b0001)
+SPD_SOURCES += ddr4-spd-1.hex # ID = 2(0b0010) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-4.hex # ID = 3(0b0011) Parts = MT40A1G16KNR-075:E
+SPD_SOURCES += ddr4-spd-3.hex # ID = 4(0b0100) Parts = K4A8G165WC-BCTD
diff --git a/src/mainboard/google/zork/variants/ezkinil/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/ezkinil/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..99072f62e9
--- /dev/null
+++ b/src/mainboard/google/zork/variants/ezkinil/spd/dram_id.generated.txt
@@ -0,0 +1,5 @@
+DRAM Part Name ID to assign
+H5AN8G6NCJR-VKC 0 (0000)
+MT40A512M16TB-062E:J 2 (0010)
+MT40A1G16KNR-075:E 3 (0011)
+K4A8G165WC-BCTD 4 (0100)
diff --git a/src/mainboard/google/zork/variants/ezkinil/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/ezkinil/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..27fb51b5e4
--- /dev/null
+++ b/src/mainboard/google/zork/variants/ezkinil/spd/mem_parts_used.txt
@@ -0,0 +1,4 @@
+H5AN8G6NCJR-VKC,0
+MT40A512M16TB-062E:J,2
+MT40A1G16KNR-075:E, 3
+K4A8G165WC-BCTD,4
diff --git a/src/mainboard/google/zork/variants/morphius/spd/Makefile.inc b/src/mainboard/google/zork/variants/morphius/spd/Makefile.inc
index 080d468e91..2eb864df2b 100644
--- a/src/mainboard/google/zork/variants/morphius/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/morphius/spd/Makefile.inc
@@ -1,26 +1,14 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# Alternatively, generated APCBs stored at
-# 3rdparty/blobs/mainboard/$(MAINBOARDDIR)/APCB_{NAME}.bin will be included.
-APCB_SOURCES = samsung-K4AAG165WA-BCWE_x2 # 0b0000
-APCB_SOURCES += empty # 0b0001
-# b/149596178: We can't use dual channel channel until the PSP supports missing
-# channels.
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x1 # 0b0010
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x2 # 0b0011
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x1 # 0b0100
-APCB_SOURCES += hynix-H5AN8G6NDJR-XNC_x1 # 0b0101
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x1 # 0b0110
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x2 # 0b0111
-APCB_SOURCES += hynix-H5ANAG6NCMR-XNC_x2 # 0b1000
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x2 # 0b1001
-APCB_SOURCES += empty # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-7.hex # ID = 0(0b0000) Parts = K4AAG165WA-BCWE
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 1(0b0001)
+SPD_SOURCES += ddr4-spd-1.hex # ID = 2(0b0010) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-7.hex # ID = 3(0b0011) Parts = MT40A1G16KD-062E:E
+SPD_SOURCES += ddr4-spd-1.hex # ID = 4(0b0100) Parts = K4A8G165WC-BCWE
+SPD_SOURCES += ddr4-spd-1.hex # ID = 5(0b0101) Parts = H5AN8G6NDJR-XNC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 6(0b0110) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-7.hex # ID = 7(0b0111) Parts = K4AAG165WA-BCWE
+SPD_SOURCES += ddr4-spd-2.hex # ID = 8(0b1000) Parts = H5ANAG6NCMR-XNC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 9(0b1001) Parts = K4A8G165WC-BCWE
diff --git a/src/mainboard/google/zork/variants/morphius/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/morphius/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..7210071bd1
--- /dev/null
+++ b/src/mainboard/google/zork/variants/morphius/spd/dram_id.generated.txt
@@ -0,0 +1,10 @@
+DRAM Part Name ID to assign
+K4AAG165WA-BCWE 0 (0000)
+MT40A512M16TB-062E:J 2 (0010)
+MT40A1G16KD-062E:E 3 (0011)
+K4A8G165WC-BCWE 4 (0100)
+H5AN8G6NDJR-XNC 5 (0101)
+MT40A512M16TB-062E:J 6 (0110)
+K4AAG165WA-BCWE 7 (0111)
+H5ANAG6NCMR-XNC 8 (1000)
+K4A8G165WC-BCWE 9 (1001)
diff --git a/src/mainboard/google/zork/variants/morphius/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/morphius/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..b56a6b430f
--- /dev/null
+++ b/src/mainboard/google/zork/variants/morphius/spd/mem_parts_used.txt
@@ -0,0 +1,9 @@
+K4AAG165WA-BCWE, 0
+MT40A512M16TB-062E:J, 2
+MT40A1G16KD-062E:E, 3
+K4A8G165WC-BCWE, 4
+H5AN8G6NDJR-XNC, 5
+MT40A512M16TB-062E:J, 6
+K4AAG165WA-BCWE, 7
+H5ANAG6NCMR-XNC, 8
+K4A8G165WC-BCWE, 9
diff --git a/src/mainboard/google/zork/variants/trembyle/Makefile.inc b/src/mainboard/google/zork/variants/trembyle/Makefile.inc
index 0b6bc4b349..e22847e48f 100644
--- a/src/mainboard/google/zork/variants/trembyle/Makefile.inc
+++ b/src/mainboard/google/zork/variants/trembyle/Makefile.inc
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
-subdirs-y += ../baseboard/spd
+subdirs-y += ../spd
ramstage-y += gpio.c
diff --git a/src/mainboard/google/zork/variants/trembyle/spd/Makefile.inc b/src/mainboard/google/zork/variants/trembyle/spd/Makefile.inc
new file mode 100644
index 0000000000..6508c26b28
--- /dev/null
+++ b/src/mainboard/google/zork/variants/trembyle/spd/Makefile.inc
@@ -0,0 +1,6 @@
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
+
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = H5AN8G6NCJR-VKC
+SPD_SOURCES += ddr4-spd-6.hex # ID = 1(0b0001) Parts = H5ANAG6NCMR-VKC
diff --git a/src/mainboard/google/zork/variants/trembyle/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/trembyle/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..20232a3378
--- /dev/null
+++ b/src/mainboard/google/zork/variants/trembyle/spd/dram_id.generated.txt
@@ -0,0 +1,3 @@
+DRAM Part Name ID to assign
+H5AN8G6NCJR-VKC 0 (0000)
+H5ANAG6NCMR-VKC 1 (0001)
diff --git a/src/mainboard/google/zork/variants/trembyle/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/trembyle/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..f8a7229334
--- /dev/null
+++ b/src/mainboard/google/zork/variants/trembyle/spd/mem_parts_used.txt
@@ -0,0 +1,2 @@
+H5AN8G6NCJR-VKC, 0
+H5ANAG6NCMR-VKC, 1
diff --git a/src/mainboard/google/zork/variants/vilboz/spd/Makefile.inc b/src/mainboard/google/zork/variants/vilboz/spd/Makefile.inc
index c9a91083d8..73285450ba 100644
--- a/src/mainboard/google/zork/variants/vilboz/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/vilboz/spd/Makefile.inc
@@ -1,26 +1,11 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-# Ordered List of APCB entries, up to 16.
-# Entries should match this pattern {NAME}_x{1,2}
-# There should be a matching SPD hex file in SPD_SOURCES_DIR
-# matching the pattern {NAME}.spd.hex
-# The _x{1,2} suffix denotes single or dual channel
-# TODO: Remove channel suffix when b:141434940 is fixed
-# Alternatively, generated APCBs stored at
-# CONFIG_APCB_BLOB_DIR/APCB_{NAME}.bin can be included.
-APCB_SOURCES = hynix-H5AN8G6NCJR-VKC_x1 # 0b0000
-APCB_SOURCES += hynix-H5ANAG6NCMR-VKC_x1 # 0b0001
-APCB_SOURCES += samsung-K4A8G165WC-BCWE_x1 # 0b0010
-APCB_SOURCES += hynix-H5AN8G6NDJR-XNC_x1 # 0b0011
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x1 # 0b0100
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x1 # 0b0101
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x1 # 0b0110
-APCB_SOURCES += empty # 0b0111
-APCB_SOURCES += empty # 0b1000
-APCB_SOURCES += empty # 0b1001
-APCB_SOURCES += empty # 0b1010
-APCB_SOURCES += empty # 0b1011
-APCB_SOURCES += empty # 0b1100
-APCB_SOURCES += empty # 0b1101
-APCB_SOURCES += empty # 0b1110
-APCB_SOURCES += empty # 0b1111
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-3.hex # ID = 0(0b0000) Parts = H5AN8G6NCJR-VKC
+SPD_SOURCES += ddr4-spd-6.hex # ID = 1(0b0001) Parts = H5ANAG6NCMR-VKC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 2(0b0010) Parts = K4A8G165WC-BCWE
+SPD_SOURCES += ddr4-spd-1.hex # ID = 3(0b0011) Parts = H5AN8G6NDJR-XNC
+SPD_SOURCES += ddr4-spd-1.hex # ID = 4(0b0100) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-7.hex # ID = 5(0b0101) Parts = K4AAG165WA-BCWE
+SPD_SOURCES += ddr4-spd-7.hex # ID = 6(0b0110) Parts = MT40A1G16KD-062E:E
diff --git a/src/mainboard/google/zork/variants/vilboz/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/vilboz/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..6eb4bf353e
--- /dev/null
+++ b/src/mainboard/google/zork/variants/vilboz/spd/dram_id.generated.txt
@@ -0,0 +1,8 @@
+DRAM Part Name ID to assign
+H5AN8G6NCJR-VKC 0 (0000)
+H5ANAG6NCMR-VKC 1 (0001)
+K4A8G165WC-BCWE 2 (0010)
+H5AN8G6NDJR-XNC 3 (0011)
+MT40A512M16TB-062E:J 4 (0100)
+K4AAG165WA-BCWE 5 (0101)
+MT40A1G16KD-062E:E 6 (0110)
diff --git a/src/mainboard/google/zork/variants/vilboz/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/vilboz/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..ac7b794b4b
--- /dev/null
+++ b/src/mainboard/google/zork/variants/vilboz/spd/mem_parts_used.txt
@@ -0,0 +1,7 @@
+H5AN8G6NCJR-VKC, 0
+H5ANAG6NCMR-VKC, 1
+K4A8G165WC-BCWE, 2
+H5AN8G6NDJR-XNC, 3
+MT40A512M16TB-062E:J, 4
+K4AAG165WA-BCWE, 5
+MT40A1G16KD-062E:E, 6
diff --git a/src/mainboard/google/zork/variants/woomax/spd/Makefile.inc b/src/mainboard/google/zork/variants/woomax/spd/Makefile.inc
index 8c60fe601d..e3120af4cf 100644
--- a/src/mainboard/google/zork/variants/woomax/spd/Makefile.inc
+++ b/src/mainboard/google/zork/variants/woomax/spd/Makefile.inc
@@ -1,18 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
+## SPDX-License-Identifier: GPL-2.0-or-later
+## This is an auto-generated file. Do not edit!!
-APCB_SOURCES = micron-MT40A512M16TB-062E-J_x1 # 0b00000
-APCB_SOURCES += hynix-H5AN8G6NCJR-XNC_x1 # 0b00001
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x1 # 0b00010
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x1 # 0b00011
-APCB_SOURCES += empty # 0b00100
-APCB_SOURCES += empty # 0b00101
-APCB_SOURCES += empty # 0b00110
-APCB_SOURCES += empty # 0b00111
-APCB_SOURCES += micron-MT40A512M16TB-062E-J_x2 # 0b01000
-APCB_SOURCES += hynix-H5AN8G6NCJR-XNC_x2 # 0b01001
-APCB_SOURCES += micron-MT40A1G16KD-062E-E_x2 # 0b01010
-APCB_SOURCES += samsung-K4AAG165WA-BCWE_x2 # 0b01011
-APCB_SOURCES += empty # 0b01100
-APCB_SOURCES += empty # 0b01101
-APCB_SOURCES += empty # 0b01110
-APCB_SOURCES += empty # 0b01111
+SPD_SOURCES =
+SPD_SOURCES += ddr4-spd-1.hex # ID = 0(0b0000) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-1.hex # ID = 1(0b0001) Parts = H5AN8G6NCJR-XNC
+SPD_SOURCES += ddr4-spd-7.hex # ID = 2(0b0010) Parts = MT40A1G16KD-062E:E
+SPD_SOURCES += ddr4-spd-7.hex # ID = 3(0b0011) Parts = K4AAG165WA-BCWE
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 4(0b0100)
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 5(0b0101)
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 6(0b0110)
+SPD_SOURCES += ddr4-spd-empty.hex # ID = 7(0b0111)
+SPD_SOURCES += ddr4-spd-1.hex # ID = 8(0b1000) Parts = MT40A512M16TB-062E:J
+SPD_SOURCES += ddr4-spd-1.hex # ID = 9(0b1001) Parts = H5AN8G6NCJR-XNC
+SPD_SOURCES += ddr4-spd-7.hex # ID = 10(0b1010) Parts = MT40A1G16KD-062E:E
+SPD_SOURCES += ddr4-spd-7.hex # ID = 11(0b1011) Parts = K4AAG165WA-BCWE
diff --git a/src/mainboard/google/zork/variants/woomax/spd/dram_id.generated.txt b/src/mainboard/google/zork/variants/woomax/spd/dram_id.generated.txt
new file mode 100644
index 0000000000..5c2cda55f6
--- /dev/null
+++ b/src/mainboard/google/zork/variants/woomax/spd/dram_id.generated.txt
@@ -0,0 +1,9 @@
+DRAM Part Name ID to assign
+MT40A512M16TB-062E:J 0 (0000)
+H5AN8G6NCJR-XNC 1 (0001)
+MT40A1G16KD-062E:E 2 (0010)
+K4AAG165WA-BCWE 3 (0011)
+MT40A512M16TB-062E:J 8 (1000)
+H5AN8G6NCJR-XNC 9 (1001)
+MT40A1G16KD-062E:E 10 (1010)
+K4AAG165WA-BCWE 11 (1011)
diff --git a/src/mainboard/google/zork/variants/woomax/spd/mem_parts_used.txt b/src/mainboard/google/zork/variants/woomax/spd/mem_parts_used.txt
new file mode 100644
index 0000000000..1dccbac049
--- /dev/null
+++ b/src/mainboard/google/zork/variants/woomax/spd/mem_parts_used.txt
@@ -0,0 +1,8 @@
+MT40A512M16TB-062E:J, 0
+H5AN8G6NCJR-XNC, 1
+MT40A1G16KD-062E:E, 2
+K4AAG165WA-BCWE, 3
+MT40A512M16TB-062E:J, 8
+H5AN8G6NCJR-XNC, 9
+MT40A1G16KD-062E:E, 10
+K4AAG165WA-BCWE, 11