guybrush: Inject SPDs into APCB

Inject SPDs into APCB at coreboot build time.

BUG=b:209486191
BRANCH=None
TEST=Boot guybrush and nipperkin with injected APCB

Change-Id: Ib21085855324e0d473dd5e258f35a52bed326901
Signed-off-by: Rob Barnes <robbarnes@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/60775
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
diff --git a/Makefile.inc b/Makefile.inc
index 090505e..cc7317d 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -591,6 +591,8 @@
 
 APCB_EDIT_TOOL:=$(top)/util/apcb/apcb_edit.py
 
+APCB_V3_EDIT_TOOL:=$(top)/util/apcb/apcb_v3_edit.py
+
 CBOOTIMAGE:=$(objutil)/cbootimage/cbootimage
 
 FUTILITY?=$(objutil)/futility/futility
diff --git a/src/mainboard/google/guybrush/Makefile.inc b/src/mainboard/google/guybrush/Makefile.inc
index fa729fe..56ef2b3 100644
--- a/src/mainboard/google/guybrush/Makefile.inc
+++ b/src/mainboard/google/guybrush/Makefile.inc
@@ -3,14 +3,6 @@
 bootblock-y += bootblock.c
 bootblock-$(CONFIG_CHROMEOS) += chromeos.c
 
-ifneq ($(wildcard $(MAINBOARD_BLOBS_DIR)/APCB_CZN_D4.bin),)
-$(info APCB sources present.)
-APCB_SOURCES = $(MAINBOARD_BLOBS_DIR)/APCB_CZN_D4.bin
-APCB_SOURCES_RECOVERY = $(MAINBOARD_BLOBS_DIR)/APCB_CZN_D4.bin
-else
-$(info APCB sources not found.  Skipping APCB.)
-endif
-
 romstage-y += port_descriptors.c
 romstage-y += romstage.c
 
@@ -30,3 +22,13 @@
 CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include
 
 LIB_SPD_DEPS = $(SPD_SOURCES)
+
+APCB_SOURCES = $(obj)/APCB_CZN_D4.gen
+APCB_SOURCES_RECOVERY = $(obj)/APCB_CZN_D4.gen
+
+$(obj)/APCB_CZN_D4.gen: $(SPD_SOURCES) \
+			$(APCB_V3_EDIT_TOOL) \
+			$(MAINBOARD_BLOBS_DIR)/APCB_CZN_D4.bin
+	$(APCB_V3_EDIT_TOOL) $(MAINBOARD_BLOBS_DIR)/APCB_CZN_D4.bin \
+			     $(obj)/APCB_CZN_D4.gen  \
+			     --spd_sources $(SPD_SOURCES)