diff --git a/src/freedombone-image-hardware-setup b/src/freedombone-image-hardware-setup
index aaef7cb0aeb3ff38f497a8015ca4572c28a9e447..b9c94652e8a8aa4d31e6f6a432e51cfda8e89999 100755
--- a/src/freedombone-image-hardware-setup
+++ b/src/freedombone-image-hardware-setup
@@ -155,7 +155,7 @@ arm_setup_boot() {
     arm_initrd_addr='0x48000000'
     arm_fdtaddr='0x47000000'
     arm_boot_script=/boot/boot.cmd
-    arm_boot_device=mmc
+    arm_boot_device="mmc \${mmcdev}:\${mmcpart}"
     arm_boot_start=
     arm_boot_dev=
 
@@ -166,7 +166,7 @@ arm_setup_boot() {
                arm_boot_script=/boot/uEnv.txt
                if [ "$EXTERNAL_DRIVE" ]; then
                    arm_boot_dev='bootdev=0:1'
-                   arm_boot_device=usb
+                   arm_boot_device="usb \${bootdev}"
                    arm_loadaddr='0x80300000'
                    arm_initrd_addr='0x81600000'
                    arm_fdtaddr='0x815f0000'
@@ -194,9 +194,9 @@ fdtaddr=$arm_fdtaddr
 initrd_high=0xffffffff
 fdt_high=0xffffffff
 
-loadkernel=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file}
-loadinitrd=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}; setenv initrd_size \${filesize}
-loadfdt=load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile}
+loadkernel=load ${arm_boot_device} \${loadaddr} \${kernel_file}
+loadinitrd=load ${arm_boot_device} \${initrd_addr} \${initrd_file}; setenv initrd_size \${filesize}
+loadfdt=load ${arm_boot_device} \${fdtaddr} /dtbs/\${fdtfile}
 
 loadfiles=run loadkernel; run loadinitrd; run loadfdt
 mmcargs=setenv bootargs init=/lib/systemd/systemd console=tty0 console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags} ifnames=0 slub_debug=FZP slab_nomerge page_poison=1
@@ -226,9 +226,9 @@ setenv fdtaddr $arm_fdtaddr
 setenv initrd_high 0xffffffff
 setenv fdt_high 0xffffffff
 
-setenv loadkernel load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file}
-setenv loadinitrd load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize}
-setenv loadfdt load ${arm_boot_device} \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile}
+setenv loadkernel load ${arm_boot_device} \${loadaddr} \${kernel_file}
+setenv loadinitrd load ${arm_boot_device} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize}
+setenv loadfdt load ${arm_boot_device} \${fdtaddr} /dtbs/\${fdtfile}
 
 setenv loadfiles run loadkernel\\; run loadinitrd\\; run loadfdt
 setenv mmcargs setenv bootargs init=/lib/systemd/systemd console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags} ifnames=0 slub_debug=FZP slab_nomerge page_poison=1