diff --git a/package/base-files/files/lib/functions/iopsys-system-layout.sh b/package/base-files/files/lib/functions/iopsys-system-layout.sh
index 569d4e8b9b7d0ed70baee09206a16411fe19138a..0d0aff5e36a8b35bd98eff33eab5c49f86748238 100644
--- a/package/base-files/files/lib/functions/iopsys-system-layout.sh
+++ b/package/base-files/files/lib/functions/iopsys-system-layout.sh
@@ -56,7 +56,7 @@ create_rootfs_data_loop_device() {
     local data_size
     local data_position
     local overlay_position
-    local alignment=$(( 512 * 1024 ))
+    local alignment
     local loop_dev
 
     if [ "$current_or_other" = "current" ]; then
@@ -65,6 +65,7 @@ create_rootfs_data_loop_device() {
         boot_part=$(find_mmc_part "boot$(iopsys_get_next_bank_id)")
     fi
 
+    alignment=$(fdtget -t i "$boot_part" -d $(( 512*1024 )) / iopsys,rootfs-data-alignment) || return 1
     last_image=$(fdtget --list "$boot_part" /images | tail -n1) || return 1
     data_size=$(fdtget -t i "$boot_part" "/images/$last_image" data-size) > /dev/null 2>&1 || return 1
     data_position=$(fdtget -t i "$boot_part" "/images/$last_image" data-position) > /dev/null 2>&1 || return 1