Add factory and recovery image layouts for basic nand based targets

The exact image layout might require fine tuning, but we need to add
something to prevent canary builder failures.

BUG=chrome-os-partner:36851
TEST=the following cgtp.py invocation now succeeds:
 $ ~/trunk/src/scripts/build_library/cgpt.py validate factory_install \
  /mnt/host/source/src/private-overlays/overlay-urara-private/scripts/disk_layout.json

Change-Id: I87ba723bd0e815da72659bd215c37d4d19588f6a
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/250832
Reviewed-by: Daniel Ehrenberg <dehrenberg@chromium.org>
diff --git a/build_library/nand_disk_layout.json b/build_library/nand_disk_layout.json
index 1691cc2..f929842 100644
--- a/build_library/nand_disk_layout.json
+++ b/build_library/nand_disk_layout.json
@@ -105,6 +105,47 @@
         "num": 1,
         "features": ["expand"]
       }
+    ],
+    "factory_install": [
+      {
+        "num": 12,
+        "size": "32 MiB"
+      },
+      {
+        "num": 5,
+        "size": "2 MiB"
+      },
+      {
+        "num": 3,
+        "size": "420 MiB",
+        "fs_size": "400 MiB"
+      },
+      {
+        "num": 1,
+        "size": "140 MiB"
+      }
+    ],
+    "recovery": [
+      {
+        # Slot B rootfs, unused on USB, but pad to 2M.
+        # installation will expand this to size from base.
+        "num": 5,
+        "size": "2 MiB"
+      },
+      {
+        # Shrunken rootfs partition to support smaller USB sticks,
+        # and smaller recovery downloads.
+        # Installation will expand this to size from base.
+        # The offset to the beginning of this partition, and the FS
+        # size must match base exactly to allow secure boot.
+        "num": 3,
+        "size": "1290 MiB"
+      },
+      {
+        # Stateful on recovery is dynamically resized larger.
+        "num": 1,
+        "size": "2 MiB"
+      }
     ]
   }
 }