Update SD Card Image to rely on image sizes

* Sizes should now be configured in preamble.mk to ensure all
  downstream makefiles use the correct image size.

Change-Id: Ibd56c1a720d19d8472e248aa61fb72d71916df73
diff --git a/boot.mk b/boot.mk
index 6695362..fa80179 100644
--- a/boot.mk
+++ b/boot.mk
@@ -7,7 +7,7 @@
 boot: $(PRODUCT_OUT)/boot.img
 
 $(PRODUCT_OUT)/boot.img:
-	fallocate -l 128M $@
+	fallocate -l $(BOOT_SIZE_MB)M $@
 	mkfs.ext2 -F $@
 
 targets::
diff --git a/preamble.mk b/preamble.mk
index 3f6812a..55b57df 100644
--- a/preamble.mk
+++ b/preamble.mk
@@ -123,3 +123,11 @@
 FETCH_PACKAGES ?= $(IS_GLINUX)
 PACKAGES_REVISION ?= latest
 PACKAGES_FETCH_ROOT_DIRECTORY ?= /google/data/ro/teams/spacepark/enterprise/kokoro/prod/spacepark/enterprise/continuous
+
+# Image size variables
+BOOT_START := 8
+BOOT_SIZE_MB := 128
+ROOTFS_START := $(shell echo $(BOOT_START)+$(BOOT_SIZE_MB) | bc)
+ROOTFS_SIZE_MB := 4096
+UBOOT_START := 66# Cribbed from Yocto.
+SDIMAGE_SIZE_MB := $(shell echo $(ROOTFS_START)+$(ROOTFS_SIZE_MB) | bc)
diff --git a/rootfs.mk b/rootfs.mk
index 72263a5..b3cc3b5 100644
--- a/rootfs.mk
+++ b/rootfs.mk
@@ -60,7 +60,7 @@
 $(ROOTFS_RAW_IMG): $(ROOTDIR)/build/preamble.mk $(ROOTDIR)/build/rootfs.mk /usr/bin/qemu-aarch64-static
 	mkdir -p $(ROOTFS_DIR)
 	rm -f $(ROOTFS_RAW_IMG)
-	fallocate -l 4G $(ROOTFS_RAW_IMG)
+	fallocate -l $(ROOTFS_SIZE_MB)M $(ROOTFS_RAW_IMG)
 	mkfs.ext4 -F -j $(ROOTFS_RAW_IMG)
 	tune2fs -o discard $(ROOTFS_RAW_IMG)
 	-sudo umount $(ROOTFS_DIR)/dev
diff --git a/sdcard.mk b/sdcard.mk
index 9901dd4..f18e598 100644
--- a/sdcard.mk
+++ b/sdcard.mk
@@ -8,7 +8,7 @@
 sdcard-xz: $(PRODUCT_OUT)/sdcard.img.xz
 
 sdcard-allocate: | $(PRODUCT_OUT)
-	fallocate -l 4G $(PRODUCT_OUT)/sdcard.img
+	fallocate -l $(SDIMAGE_SIZE_MB)M $(PRODUCT_OUT)/sdcard.img
 
 $(PRODUCT_OUT)/sdcard.img: sdcard-allocate \
                            $(ROOTDIR)/build/rootfs.mk \
@@ -19,12 +19,12 @@
                            $(PRODUCT_OUT)/boot.img \
                            $(PRODUCT_OUT)/obj/ROOTFS/rootfs.patched.img
 	parted -s $(PRODUCT_OUT)/sdcard.img mklabel msdos
-	parted -s $(PRODUCT_OUT)/sdcard.img unit MiB mkpart primary ext2 8 136
-	parted -s $(PRODUCT_OUT)/sdcard.img unit MiB mkpart primary ext4 136 4095
-	dd if=$(PRODUCT_OUT)/u-boot.imx of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=66 bs=512
-	dd if=$(PRODUCT_OUT)/boot.img of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=8 bs=1M
+	parted -s $(PRODUCT_OUT)/sdcard.img unit MiB mkpart primary ext2 $(BOOT_START) $(ROOTFS_START)
+	parted -s $(PRODUCT_OUT)/sdcard.img unit MiB mkpart primary ext4 $(ROOTFS_START) 100%
+	dd if=$(PRODUCT_OUT)/u-boot.imx of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=$(UBOOT_START) bs=512
+	dd if=$(PRODUCT_OUT)/boot.img of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=$(BOOT_START) bs=1M
 	dd if=$(PRODUCT_OUT)/obj/ROOTFS/rootfs.patched.img \
-		of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=136 bs=1M
+		of=$(PRODUCT_OUT)/sdcard.img conv=notrunc seek=$(ROOTFS_START) bs=1M
 
 
 	mkdir -p $(ROOTFS_DIR)