diff --git a/devices/gl-mt300a/default.nix b/devices/gl-mt300a/default.nix
index 2cd72b9..3682d2f 100644
--- a/devices/gl-mt300a/default.nix
+++ b/devices/gl-mt300a/default.nix
@@ -45,6 +45,7 @@
         flash = {
           address = "0xbc050000";
           size ="0xf80000";
+          eraseBlockSize = "65536";
         };
         rootDevice = "1f05";
 
diff --git a/devices/gl-mt300n-v2/default.nix b/devices/gl-mt300n-v2/default.nix
index 959dce3..168831d 100644
--- a/devices/gl-mt300n-v2/default.nix
+++ b/devices/gl-mt300n-v2/default.nix
@@ -42,6 +42,7 @@
         flash = {
           address = "0xbc050000";
           size = "0xfb0000";
+          eraseBlockSize = "65536";
         };
         rootDevice = "1f05";
 
diff --git a/modules/tftpboot.nix b/modules/tftpboot.nix
index e1ce9f6..6eb2e79 100644
--- a/modules/tftpboot.nix
+++ b/modules/tftpboot.nix
@@ -34,7 +34,7 @@ in {
           rootfsStart=0x$(printf %x $((${cfg.loadAddress} + 0x100000 + $uimageSize)))
           rootfsBytes=$(($(stat -L -c %s ${config.outputs.rootfs}) + 0x100000 &(~0xfffff)))
           rootfsMb=$(($rootfsBytes >> 20))
-          cmd="mtdparts=phram0:''${rootfsMb}M(rootfs) phram.phram=phram0,''${rootfsStart},''${rootfsMb}Mi memmap=''${rootfsMb}M\$''${rootfsStart} root=1f00";
+          cmd="mtdparts=phram0:''${rootfsMb}M(rootfs) phram.phram=phram0,''${rootfsStart},''${rootfsMb}Mi,${config.hardware.flash.eraseBlockSize} memmap=''${rootfsMb}M\$''${rootfsStart} root=/dev/mtdblock0";
 
           cat > $out << EOF
           setenv serverip ${cfg.serverip}