variant: make script work for boards with different coreboot reference
Ambassador program uses --board=ambassador, but uses the Puff templates
as its coreboot reference. This change adds support for separate
coreboot_reference, with a fallback to board for configs that don't set
a separate coreboot reference.
BUG=b:172835923
TEST=Ran end-to-end to create a variant for genesis
Change-Id: Ib061430d9770b73165c4bf78b809607f91f25718
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/2526799
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
Commit-Queue: Matthew Ziegelbaum <ziegs@chromium.org>
Tested-by: Matthew Ziegelbaum <ziegs@chromium.org>
diff --git a/contrib/variant/new_variant.py b/contrib/variant/new_variant.py
index 143d87d..deb05e5 100755
--- a/contrib/variant/new_variant.py
+++ b/contrib/variant/new_variant.py
@@ -224,6 +224,9 @@
coreboot_base is Hatch because Puff is based on Hatch.
* coreboot_dir - base directory for coreboot, usually third_party/coreboot
but could differ for processors that use a private repo
+ * coreboot_reference - the name of the reference board that we're using to
+ make the variant. This can be different from base (e.g. Ambassador is
+ its own board, but uses Puff as a coreboot reference).
* cb_config_dir - base directory for coreboot configs, usually
third_party/chromiumos-overlay/sys-boot/coreboot/files/configs but
could differ for processors that use a private repo
@@ -337,6 +340,7 @@
status.base = module.base
status.coreboot_base = getattr(module, 'coreboot_base', module.base)
status.coreboot_dir = module.coreboot_dir
+ status.coreboot_reference = getattr(module, 'coreboot_reference', status.board)
status.cb_config_dir = getattr(module, 'cb_config_dir', None)
status.emerge_cmd = module.emerge_cmd
status.emerge_pkgs = module.emerge_pkgs
@@ -697,7 +701,7 @@
rc = run_process(
[create_coreboot_variant_sh,
status.coreboot_base,
- status.board,
+ status.coreboot_reference,
status.variant,
status.bug], env=environ)
if rc:
@@ -728,7 +732,7 @@
rc = run_process(
[create_coreboot_config_sh,
status.base,
- status.board,
+ status.coreboot_reference,
status.variant,
status.bug], env=environ)
if rc: