new_variant: add doc section for Dedede

Add a section showing the process for creating a Dedede board, using
either Waddledee or Waddledoo as the reference board.

BUG=b:157183582
TEST=N/A

Change-Id: Iac2a5814e13db5a710ff20b0d463beeb2c6898c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/2213170
Tested-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
diff --git a/contrib/variant/README.md b/contrib/variant/README.md
index 02442bf..c6ad5f2 100644
--- a/contrib/variant/README.md
+++ b/contrib/variant/README.md
@@ -312,6 +312,110 @@
 INFO:root:Running step clean_up
 ```
 
+## New variant of Dedede
+
+The process for Dedede is very similar to Volteer, except that Dedede
+has two reference boards, Waddledee and Waddledoo. The workflow is the
+same for either variant; just specify `--board=waddledee` to make a
+variant of the Waddledee reference board, or `--board=waddledoo` to
+make a variant of the Waddledoo reference board.
+
+Rather than duplicate the explanatory text in each section, we have opted
+to only provide the headings, the commands, and any important notes. Refer
+to the same-named sections in the Hatch or Volteer tutorials for explanatory
+text.
+
+### Per-project configuration repository
+
+A gerrit administrator must create the project configuration repository before
+you can begin the process to create a new variant of Dedede. Please file a bug
+in [Infra > ChromeOS > Product > Device](https://bugs.chromium.org/p/chromium/issues/list?q=component:Infra%3EChromeOS%3EProduct%3EDevice)
+to have the project configuration updated.
+
+This example shows how to create the "Acro" variant of the Waddledee
+reference board. Note that there is no project configuration repository
+for Acro, but this example proceeds as if it does exist.
+
+### Start the new variant
+
+```
+(cr) $ cd ~/trunk/src/platform/src/contrib/variant
+(cr) $ ./new_variant.py --board=waddledee --variant=acro --bug=b:157183582
+[... some messages about creating a new coreboot variant and configuation ...]
+[... the source files for the new FIT image are created, and then the ...]
+[... program exits with a message about building the FIT image ...]
+ERROR:root:The following files need to be generated:
+ERROR:root:* fitimage-acro.bin
+ERROR:root:* fitimage-acro-versions.txt
+ERROR:root:The fitimage sources are ready for gen_fit_image.sh to process.
+ERROR:root:gen_fit_image.sh cannot run inside the chroot. Please open a new terminal
+ERROR:root:window, change to the directory where gen_fit_image.sh is located, and run
+ERROR:root:./gen_fit_image.sh acro <path_to_fit_kit> -b
+ERROR:root:Then re-start this program with --continue.
+ERROR:root:If your chroot is based in ~/chromiumos, then the folder you want is
+ERROR:root:~/chromiumos/src/private-overlays/baseboard-dedede-private/sys-boot/coreboot-private-files-baseboard-dedede/asset_generation
+```
+
+### Generate the FIT image
+
+Dedede currently uses version 13.50.0.7049 (but the version will likely change
+in the future) of Intel's FIT tools, so this example assumes that you have
+unzipped the Intel FIT tool files in the directory `~/TXE_JSL`.
+
+```
+$ cd ~/chromiumos/src/private-overlays/baseboard-dedede-private/sys-boot/coreboot-private-files-baseboard-dedede/asset_generation
+$ ./gen_fit_image.sh acro ~/TXE_JSL -b
+```
+
+### Continue creating the variant
+
+```
+(cr) $ cd ~/trunk/src/platform/src/contrib/variant
+(cr) $ ./new_variant.py --continue
+[... lots of messages about various commits being created ...]
+[... the EC code builds ...]
+[... the firmware boot image builds (using emerge) ...]
+[... the program exits with a message about pushing to coreboot ...]
+INFO:root:Running step push_coreboot
+ERROR:root:The following commit needs to be pushed to coreboot.org:
+ERROR:root:  Branch "create_acro_20200521"
+ERROR:root:  in directory "/mnt/host/source/src/third_party/coreboot"
+ERROR:root:  with change-id "Ie900d09ff55e695527eafe68a5a75cd4a0b6d340"
+ERROR:root:Please push the branch to review.coreboot.org, and then re-start this program with --continue
+```
+
+Note that the change-id is the same as Sushi in this example, because the
+acro CLs have not been (and will not be) uploaded.
+
+### Push the coreboot CL
+
+### Upload the rest of the CLs
+
+```
+(cr) $ cd ~/trunk/src/platform/src/contrib/variant
+(cr) $ ./new_variant.py --continue
+INFO:root:Running step push_coreboot
+INFO:root:Running step upload_CLs
+INFO:root:Running step find_coreboot_upstream
+ERROR:root:Program cannot continue until coreboot CL is upstreamed.
+ERROR:root:(coreboot:39892, change-id Ie900d09ff55e695527eafe68a5a75cd4a0b6d340)
+ERROR:root:Please wait for the CL to be upstreamed, then run this program again with --continue
+```
+
+Note that the CL number and change-id is the same as Sushi in this example,
+because the acro CLs have not been (and will not be) uploaded.
+
+### Add Cq-Depend information, re-upload, and clean up
+
+```
+(cr) $ cd ~/trunk/src/platform/src/contrib/variant
+(cr) $ ./new_variant.py --continue
+INFO:root:Running step find_coreboot_upstream
+INFO:root:Running step add_cq_depend
+INFO:root:Running step re_upload
+INFO:root:Running step clean_up
+```
+
 ## New variant of Zork
 
 The Zork baseboard has two reference boards: Trembyle and Dalboz. This example