UPSTREAM: Documentation/mainboard/facebook/monolith.md: Add flash components

Add description of the procedure to create the flash components for this
system.

BUG=N/A
TEST=N/A

Change-Id: Ie27dcac0d6b987a5084186f4237b285eb3d4bbbb
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Original-Commit-Id: c4a71467d1f9807d93f0a943219f511773447050
Original-Change-Id: I2690dfbe715fa120f840d98c57fdc3fd7e8b45b1
Original-Signed-off-by: Wim Vervoorn <wvervoorn@eltan.com>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/38588
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/2027436
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Wim Vervoorn <wvervoorn@eltan.com>
Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
Commit-Queue: Wim Vervoorn <wvervoorn@eltan.com>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Wim Vervoorn <wvervoorn@eltan.com>
diff --git a/Documentation/mainboard/facebook/monolith.md b/Documentation/mainboard/facebook/monolith.md
index 0bc1448..dca2d6a 100644
--- a/Documentation/mainboard/facebook/monolith.md
+++ b/Documentation/mainboard/facebook/monolith.md
@@ -13,12 +13,50 @@
 
 Microcode	3rdparty/intel-microcode/intel-ucode
 
+## Flash components
+
+To create a complete flash image, the flash descriptor, GBE and ME blobs are required. The
+complete image can be used when e.g. a blank flash should be programmed. In other cases (when
+only coreboot needs to be replaced) placeholders can be used for the GBE and ME regions.
+
+These can be extracted from the original flash image as follows:
+1) Read the complete image from flash.
+2) Create a layout file with the following content:
+```
+00000000:00000fff fd
+00700000:00ffffff bios
+00003000:006FFFFF me
+00001000:00002fff gbe
+```
+3) Use `ifdtool -n <layout_file> <flash_image>` to resize the *bios* region from the default 6MB
+   to 9 MB, this is required to create sufficient space for LinuxBoot.
+   NOTE: Please make sure only the firmware descriptor (*fd*) region is changed. Older versions
+   	 of the ifdtool corrupt the *me* region.
+4) Use `ifdtool -x <resized_flash_image>` to extract the components.
+
+The regions extracted can be used to generate a full flash image. The *bios* region is
+not needed as this is replaced by the coreboot image.
+
+NOTE: The gbe region contains the MAC address so be careful. When updating the flash using
+      flashrom it is advisable to leave out the *gbe* area.
+
 ## Flashing coreboot
 
 ### Internal programming
 
 The SPI flash can be accessed using [flashrom].
 
+The descriptor area needs to be updated once to resize the *bios* region.
+`flashrom -p internal --ifd -i fd -w <coreboot.bin>`
+
+After that only the bios area should to be updated.
+`flashrom -p internal --ifd -i bios -w <coreboot.bin>`
+
+The *gbe* and *me* regions should not be updated.
+
+NOTE: As `flashrom --ifd` uses the flash descriptor it is required to update the
+      descriptor and bios regions in the right sequence. Don't update both in one command.
+
 ### External programming
 
 The system has an internal flash chip which is a 16 MiB soldered SOIC-8 chip.