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: