diff --git a/iopsys-brcm63xx-arm/disc/base-files/lib/preinit/70_flash_layout_from_overlayAB_to_12 b/iopsys-brcm63xx-arm/disc/base-files/lib/preinit/70_flash_layout_from_overlayAB_to_12
new file mode 100644
index 0000000000000000000000000000000000000000..0a289d79b3980588feb1827bfe22fe0ed7652c34
--- /dev/null
+++ b/iopsys-brcm63xx-arm/disc/base-files/lib/preinit/70_flash_layout_from_overlayAB_to_12
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+rename_ubi_volume_if_not_done() {
+	old_name="$1"
+	new_name="$2"
+	find /sys/class/ubi/ubi0_*/name \
+		-exec grep -F "$old_name" '{}' ';' \
+		-exec echo DISC_FLASH_LAYOUT_FIX: Renaming: ubirename /dev/ubi0 "$old_name" "$new_name" ';' \
+		-exec ubirename /dev/ubi0 "$old_name" "$new_name" ';'
+}
+
+flash_layout_fixup () {
+	echo "DISC_FLASH_LAYOUT_FIX: Starting (if it does not print anything, then volumes are already renamed to overlay1/2)"
+	rename_ubi_volume_if_not_done overlayA overlay1
+	rename_ubi_volume_if_not_done overlayB overlay2
+	echo "DISC_FLASH_LAYOUT_FIX: Overlay volume names are:"
+	ubinfo --all | grep overlay
+	echo "DISC_FLASH_LAYOUT_FIX: Finished"
+}
+
+boot_hook_add preinit_main flash_layout_fixup