clearfog: Introduce a /cfg partition for persistent changes

The idea is to store whatever important bits that need real persistence
in there.

Note that I am deliberately *not* using this as the upper directory for
the /etc overlay. I inherited that company-wide worrying about flash
lifetime, and hence I would like to limit the amount of writes to some
reasonable minimum. That doesn't play terribly well with SW such as
sysrepo which happily stores both persistent and run-time data on disk,
in the same directory -- hence these ugly detours...

I've tried to do the right thing with the alignment:

- we need a 1MB of nothing at the very beginning for U-Boot and its
environment
- the eMMC version of the microSOM has 8GB of storage
- it probably makes sense to split that into two halves for
future-proofness, so that we don't have to deal with overlapping
partitions later
- finally, the 1MB gap between the end of cfg-A and the beginning of
rootfs-B is there to be symmetric with regards to the U-Boot's reserved
space in the first 1MB

Hopefully, we should be able to just (more or less) `dd` stuff in-place.

There's one missing piece: nothing explicitly puts stuff to /cfg/etc/,
yet.

Change-Id: Idc540ecfedf1b17615b01f28cdce5dca9b976260
diff --git a/board/czechlight/clearfog/genimage.cfg b/board/czechlight/clearfog/genimage.cfg
index a0e0471..7633c8f 100644
--- a/board/czechlight/clearfog/genimage.cfg
+++ b/board/czechlight/clearfog/genimage.cfg
@@ -12,10 +12,27 @@
 		partition-type = 0x83
 		image = "rootfs.ext4"
 		offset = 1M
+		size = 1999M
+	}
+
+	partition cfg-A {
+		partition-type = 0x83
+		image = "cfg.ext4"
+		offset = 2000M
+		size = 2000M
 	}
 
 	partition rootfs-B {
 		partition-type = 0x83
 		image = "rootfs.ext4"
+		offset = 4001M
+		size = 1999M
+	}
+
+	partition cfg-B {
+		partition-type = 0x83
+		image = "cfg.ext4"
+		offset = 6000M
+		size = 2000M
 	}
 }
diff --git a/board/czechlight/clearfog/overlay/etc/rauc/system.conf b/board/czechlight/clearfog/overlay/etc/rauc/system.conf
index 8de0da8..11cf7c5 100644
--- a/board/czechlight/clearfog/overlay/etc/rauc/system.conf
+++ b/board/czechlight/clearfog/overlay/etc/rauc/system.conf
@@ -4,8 +4,19 @@
 
 [slot.rootfs.0]
 device=/dev/mmcblk0p1
+type=ext4
 bootname=A
 
-[slot.rootfs.1]
+[slot.cfg.0]
 device=/dev/mmcblk0p2
+type=ext4
+parent=rootfs.0
+
+[slot.rootfs.1]
+device=/dev/mmcblk0p3
 bootname=B
+
+[slot.cfg.1]
+device=/dev/mmcblk0p4
+type=ext4
+parent=rootfs.1
diff --git a/board/czechlight/clearfog/patches/u-boot/boot.patch b/board/czechlight/clearfog/patches/u-boot/boot.patch
index 1d4520b..f826cb3 100644
--- a/board/czechlight/clearfog/patches/u-boot/boot.patch
+++ b/board/czechlight/clearfog/patches/u-boot/boot.patch
@@ -88,7 +88,7 @@
 +CONFIG_WDT=y
 +CONFIG_WDT_ORION=y
 diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
-index 5061f6c6fd..2465b3d933 100644
+index 5061f6c6fd..592c7cc499 100644
 --- a/include/configs/clearfog.h
 +++ b/include/configs/clearfog.h
 @@ -32,6 +32,11 @@
@@ -143,7 +143,7 @@
 +	"    if test ${BOOT_B_LEFT} -gt 0; then" \
 +	"      setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1;" \
 +	"      echo \"Found valid slot B, ${BOOT_B_LEFT} attempts remaining\";" \
-+	"      setenv rauc_part 2;" \
++	"      setenv rauc_part 3;" \
 +	"      setenv rauc_slot B;" \
 +	"    fi;" \
 +	"  fi;" \