Enable overlay

Add the overlay function in the boot script.
The list of overlays can be modified at /boot/overlays.txt on the device.

Change-Id: I388bb5e9450e2bc0fde47dd35768f30efc17acdb
diff --git a/boot.txt b/boot.txt
index c51acd5..6291e70 100644
--- a/boot.txt
+++ b/boot.txt
@@ -1,3 +1,31 @@
+setenv fdt_addr 0x42000000
+setenv fdt_file mt8167-coral.dtb
+
 setexpr boot_partition ${rootfs_partition} - 1
+echo Loading image...
 ext2load mmc ${mmcdev}:${boot_partition} ${kerneladdr} boot.img
-bootm ${kerneladdr}
+
+# Load base device tree.
+echo Loading device tree...
+ext2load mmc ${mmcdev}:${boot_partition} ${fdt_addr} ${fdt_file}
+fdt addr ${fdt_addr}
+fdt resize
+
+# Load overlays to arbitrary address beyond fdt location (will apply them later).
+setexpr fdtovaddr ${fdt_addr} + F0000
+
+# Parse overlays.txt and apply individual overlays.
+if ext2load mmc ${mmcdev}:${boot_partition} ${fdtovaddr} overlays.txt && env import -t ${fdtovaddr} ${filesize} && test -n ${overlay}; then
+	echo Loaded overlay.txt: ${overlay}
+	for ov in ${overlay}; do
+		if ext2load mmc ${mmcdev}:${boot_partition} ${fdtovaddr} ${ov}.dtbo && fdt apply ${fdtovaddr}; then
+			echo Overlay of ${ov} successful
+		else
+			echo Overlay failed, reverting to original device tree
+			ext2load mmc ${mmcdev}:${boot_partition} ${fdt_addr} ${fdt_file}
+			bootm ${kerneladdr} - ${fdt_addr}
+		fi
+	done
+fi
+
+bootm ${kerneladdr} - ${fdt_addr}
diff --git a/debian/rules b/debian/rules
index 3f6bcdc..00631bd 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,6 +20,7 @@
 	install -p -m 755 ./fip.bin $(DESTDIR)/boot/fip.bin
 	install -p -m 755 ./u-boot-env.bin $(DESTDIR)/boot/u-boot-env.bin
 	install -p -m 755 ./boot.scr $(DESTDIR)/boot/boot.scr
+	install -p -m 644 ./overlays.txt $(DESTDIR)/boot/overlays.txt
 	install -p -m 755 ./mt8167-coral/bl2.img $(DESTDIR)/boot/bl2.img
 
 override_dh_installinit:
diff --git a/overlays.txt b/overlays.txt
new file mode 100644
index 0000000..dcd7c44
--- /dev/null
+++ b/overlays.txt
@@ -0,0 +1,2 @@
+# List of device tree overlays to load. Format: overlay=<dtbo name, no extenstion> <dtbo2> ...
+overlay=