diff --git a/tuxrun/__main__.py b/tuxrun/__main__.py
index 01416a97c6d9..364420e6ff12 100644
--- a/tuxrun/__main__.py
+++ b/tuxrun/__main__.py
@@ -212,6 +212,7 @@ def run(options, tmpdir: Path, cache_dir: Optional[Path], artefacts: dict) -> in
         "mcp_fw": options.mcp_fw,
         "mcp_romfw": options.mcp_romfw,
         "fip": options.fip,
+        "enable_highmem": options.enable_highmem,
         "enable_kvm": options.enable_kvm,
         "enable_trustzone": options.enable_trustzone,
         "enable_network": options.enable_network,
diff --git a/tuxrun/argparse.py b/tuxrun/argparse.py
index 138b5acd6fde..ee25335a46f0 100644
--- a/tuxrun/argparse.py
+++ b/tuxrun/argparse.py
@@ -387,6 +387,13 @@ def setup_parser() -> argparse.ArgumentParser:
         action="store_true",
         help="Enable trustzone, applicable to QEMU arm64 device only",
     )
+    group.add_argument(
+        "--enable-highmem",
+        default=False,
+        action="store_true",
+        help="Enable highmem, applicable to QEMU armv7 device only",
+    )
+
 
     group.add_argument(
         "--enable-network",
diff --git a/tuxrun/devices/qemu.py b/tuxrun/devices/qemu.py
index 8ba7e1b2c200..ea68c2373b0e 100644
--- a/tuxrun/devices/qemu.py
+++ b/tuxrun/devices/qemu.py
@@ -51,6 +51,7 @@ class QemuDevice(Device):
         partition,
         prompt,
         rootfs,
+        enable_highmem,
         enable_kvm,
         enable_trustzone,
         enable_network,
@@ -101,6 +102,7 @@ class QemuDevice(Device):
         kwargs["console"] = self.console
         kwargs["rootfs_dev"] = self.rootfs_dev
         kwargs["rootfs_arg"] = self.rootfs_arg
+        kwargs["enable_highmem"] = kwargs["enable_highmem"]
         kwargs["enable_trustzone"] = kwargs["enable_trustzone"]
         kwargs["no_kvm"] = not kwargs["enable_kvm"]
         kwargs["no_network"] = not kwargs["enable_network"]
@@ -118,6 +120,15 @@ class QemuDevice(Device):
         else:
             kwargs["tux_prompt"] = []
 
+        if "machine.highmem" in kwargs.get("parameters").keys() and kwargs["parameters"].get(
+            "machine.highmem"
+        ) in ["off", "on"]:
+            if self.name not in ["qemu-armv7", "qemu-armv7be"]:
+                raise InvalidArgument(
+                    "argument '--parameters machine.highmem=on/off' is only valid for qemu-armv7 and qemu-armv7be device"
+                )
+            kwargs["machine"] += f',highmem={kwargs["parameters"]["machine.highmem"]}'
+
         if "cpu.lpa2" in kwargs.get("parameters").keys() and kwargs["parameters"].get(
             "cpu.lpa2"
         ) in ["off", "on"]:
@@ -218,16 +229,29 @@ class QemuArmv7(QemuDevice):
     lava_arch = "arm"
     machine = "virt,gic-version=3"
     cpu = "cortex-a15"
+    memory = "3G"
 
     extra_options = ["-smp 2"]
 
     console = "ttyAMA0"
     rootfs_dev = "/dev/vda"
-    rootfs_arg = "-drive file={rootfs},if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0"
+    rootfs_arg = "-drive file={rootfs},if=virtio,format=raw,id=hd0"
 
     kernel = "https://storage.tuxboot.com/buildroot/armv7/zImage"
     rootfs = "https://storage.tuxboot.com/buildroot/armv7/rootfs.ext4.zst"
 
+    def validate(self, enable_highmem, **kwargs):
+        super().validate(
+            enable_highmem=enable_highmem, **kwargs
+        )
+
+        if enable_highmem:
+            highmem = "on"
+        else:
+            highmem = "off"
+
+        self.machine = f"{self.machine},highmem={highmem}"
+
 
 class QemuArmv7BE(QemuArmv7):
     name = "qemu-armv7be"
