diff --git a/tests/hostside/Android.bp b/tests/hostside/Android.bp
index d0838a6..1f86d6b 100644
--- a/tests/hostside/Android.bp
+++ b/tests/hostside/Android.bp
@@ -26,6 +26,7 @@
         ":microdroid_general_sepolicy.conf",
         ":test.com.android.virt.pem",
         ":test2.com.android.virt.pem",
+        "java/**/goldens/dt_dump_*",
     ],
     data_native_bins: [
         "sepolicy-analyze",
@@ -38,6 +39,7 @@
         "lz4",
         "sign_virt_apex",
         "simg2img",
+        "dtc",
     ],
     // java_test_host doesn't have data_native_libs but jni_libs can be used to put
     // native modules under ./lib directory.
@@ -48,6 +50,7 @@
         "libcrypto_utils",
         "libcrypto",
         "libext4_utils",
+        "libfdt",
         "liblog",
         "liblp",
         "libsparse",
diff --git a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
index 2d55d66..b8b4312 100644
--- a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
+++ b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
@@ -1352,6 +1352,134 @@
         }
     }
 
+    @Test
+    @Parameters(method = "gkiVersions")
+    @TestCaseName("{method}_gki_{0}")
+    public void microdroidDeviceTreeCompat(String gki) throws Exception {
+        assumeArm64Supported();
+        final String configPath = "assets/vm_config.json";
+        // Preconditions
+        assumeKernelSupported(gki);
+        int mem_size = 256;
+        assertTrue("Memory size too small", mem_size >= minMemorySize());
+
+        // Start the VM with the dump DT option.
+        mMicrodroidDevice =
+                MicrodroidBuilder.fromDevicePath(getPathForPackage(PACKAGE_NAME), configPath)
+                        .debugLevel("full")
+                        .memoryMib(mem_size)
+                        .cpuTopology("one_cpu")
+                        .protectedVm(false)
+                        .gki(sGkiVersions.get(gki))
+                        .name("test_device_tree")
+                        .dumpDt("/data/local/tmp/dump_dt.dtb")
+                        .build(getAndroidDevice());
+        assertThat(mMicrodroidDevice.waitForBootComplete(BOOT_COMPLETE_TIMEOUT)).isTrue();
+
+        File goldenDt = findTestFile("dt_dump_golden.dts");
+        testGoldenDeviceTree(goldenDt.getAbsolutePath());
+    }
+
+    @Test
+    @Parameters(method = "gkiVersions")
+    @TestCaseName("{method}_gki_{0}")
+    public void microdroidProtectedDeviceTreeCompat(String gki) throws Exception {
+        assumeArm64Supported();
+        final String configPath = "assets/vm_config.json";
+        // Preconditions
+        assumeKernelSupported(gki);
+        assumeVmTypeSupported(true);
+        int mem_size = 256;
+        assertTrue("Memory size too small", mem_size >= minMemorySize());
+
+        // Start the VM with the dump DT option.
+        mMicrodroidDevice =
+                MicrodroidBuilder.fromDevicePath(getPathForPackage(PACKAGE_NAME), configPath)
+                        .debugLevel("full")
+                        .memoryMib(mem_size)
+                        .cpuTopology("one_cpu")
+                        .protectedVm(true)
+                        .gki(sGkiVersions.get(gki))
+                        .name("test_device_tree")
+                        .dumpDt("/data/local/tmp/dump_dt.dtb")
+                        .build(getAndroidDevice());
+        assertThat(mMicrodroidDevice.waitForBootComplete(BOOT_COMPLETE_TIMEOUT)).isTrue();
+
+        File goldenDt = findTestFile("dt_dump_protected_golden.dts");
+        testGoldenDeviceTree(goldenDt.getAbsolutePath());
+    }
+
+    private void testGoldenDeviceTree(String goldenDt) throws Exception {
+        // Pull the device tree to host.
+        TestDevice device = getAndroidDevice();
+        boolean disableRoot = !device.isAdbRoot();
+        device.enableAdbRoot();
+        assumeTrue("adb root is not enabled", device.isAdbRoot());
+
+        // Pull DT from device
+        File dtb_from_device = device.pullFile("/data/local/tmp/dump_dt.dtb");
+        if (disableRoot) {
+            device.disableAdbRoot();
+        }
+
+        File dtc = findTestFile("dtc");
+
+        // Create temp file for Device tree conversion
+        File dt_dump_dts = File.createTempFile("dt_dump", "dts");
+        dt_dump_dts.delete();
+        String dt_dump_dts_path = dt_dump_dts.getAbsolutePath();
+        // Convert DT to text format.
+        CommandResult dtb_to_dts =
+                RunUtil.getDefault()
+                        .runTimedCmd(
+                                3000,
+                                dtc.getAbsolutePath(),
+                                "-I",
+                                "dtb",
+                                "-O",
+                                "dts",
+                                "-qqq",
+                                "-f",
+                                "-s",
+                                "-o",
+                                dt_dump_dts_path,
+                                dtb_from_device.getAbsolutePath());
+        assertTrue(
+                "result convert stderr: " + dtb_to_dts.getStderr(),
+                dtb_to_dts.getStderr().trim().isEmpty());
+        assertTrue(
+                "result convert stdout: " + dtb_to_dts.getStdout(),
+                dtb_to_dts.getStdout().trim().isEmpty());
+
+        // Diff device's DT with the golden DT.
+        CommandResult result_compare =
+                RunUtil.getDefault()
+                        .runTimedCmd(
+                                3000,
+                                "diff",
+                                "-u",
+                                "-w",
+                                "-I",
+                                "kaslr-seed",
+                                "-I",
+                                "instance-id",
+                                "-I",
+                                "rng-seed",
+                                "-I",
+                                "linux,initrd-end",
+                                "-I",
+                                "secretkeeper_public_key",
+                                dt_dump_dts_path,
+                                goldenDt);
+
+        assertTrue(
+                "result compare stderr: " + result_compare.getStderr(),
+                result_compare.getStderr().trim().isEmpty());
+        assertTrue(
+                "result compare stdout: " + result_compare.getStdout(),
+                result_compare.getStdout().trim().isEmpty());
+    }
+
     @Before
     public void setUp() throws Exception {
         assumeDeviceIsCapable(getDevice());
@@ -1428,4 +1556,11 @@
                 "Microdroid is not supported for specific VM protection type",
                 getAndroidDevice().supportsMicrodroid(protectedVm));
     }
+
+    private void assumeArm64Supported() throws Exception {
+        CommandRunner android = new CommandRunner(getDevice());
+        String abi = android.run("getprop", "ro.product.cpu.abi");
+        assertThat(abi).isNotEmpty();
+        assumeTrue("Skipping test as the architecture is not supported", abi.startsWith("arm64"));
+    }
 }
diff --git a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts
new file mode 100644
index 0000000..795c50f
--- /dev/null
+++ b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts
@@ -0,0 +1,145 @@
+/dts-v1/;
+
+/ {
+        #address-cells = <0x02>;
+        #size-cells = <0x02>;
+        compatible = "linux,dummy-virt";
+        interrupt-parent = <0x01>;
+        name = "reference";
+
+        U6_16550A@2e8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x02 0x01>;
+                reg = <0x00 0x2e8 0x00 0x08>;
+        };
+
+        U6_16550A@2f8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x02 0x01>;
+                reg = <0x00 0x2f8 0x00 0x08>;
+        };
+
+        U6_16550A@3e8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x00 0x01>;
+                reg = <0x00 0x3e8 0x00 0x08>;
+        };
+
+        U6_16550A@3f8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x00 0x01>;
+                reg = <0x00 0x3f8 0x00 0x08>;
+        };
+
+        __symbols__ {
+                intc = "/intc";
+        };
+
+        avf {
+                secretkeeper_public_key = [];
+
+                untrusted {
+                        defer-rollback-protection;
+                        instance-id = <0xf145d4f8 0x15f03952 0x5af249aa 0xfead94d8 0xb9f05746 0xd9163f48 0x7251b67b 0xe117409e 0x2b14dfa5 0xcaa8caf7 0x14176d2d 0xf88cc94b 0xeed4a59d 0x9a2d8fe5 0x5ac590f1 0xbb6c96f5>;
+                };
+        };
+
+        chosen {
+                bootargs = "panic=-1 crashkernel=17M";
+                kaslr-seed = <>;
+                linux,initrd-end = <0x81200360>;
+                linux,initrd-start = <0x81000000>;
+                linux,pci-probe-only = <0x01>;
+                rng-seed = <>;
+                stdout-path = "/U6_16550A@3f8";
+        };
+
+        config {
+                kernel-address = <0x80000000>;
+                kernel-size = <0xc91000>;
+        };
+
+        cpufreq {
+                compatible = "virtual,kvm-cpufreq";
+        };
+
+        cpus {
+                #address-cells = <0x01>;
+                #size-cells = <0x00>;
+
+                cpu@0 {
+                        compatible = "arm,armv8";
+                        device_type = "cpu";
+                        phandle = <0x100>;
+                        reg = <0x00>;
+                };
+        };
+
+        intc {
+                #address-cells = <0x02>;
+                #interrupt-cells = <0x03>;
+                #size-cells = <0x02>;
+                compatible = "arm,gic-v3";
+                interrupt-controller;
+                phandle = <0x01>;
+                reg = <0x00 0x3fff0000 0x00 0x10000 0x00 0x3ffd0000 0x00 0x20000>;
+        };
+
+        memory {
+                device_type = "memory";
+                reg = <0x00 0x80000000 0x00 0x10000000>;
+        };
+
+        pci {
+                #address-cells = <0x03>;
+                #interrupt-cells = <0x01>;
+                #size-cells = <0x02>;
+                bus-range = <0x00 0x00>;
+                compatible = "pci-host-cam-generic";
+                device_type = "pci";
+                dma-coherent;
+                interrupt-map = <0x800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x1000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x05 0x04 0x1800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x06 0x04 0x2000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x07 0x04 0x2800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x08 0x04 0x3000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x09 0x04 0x3800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0a 0x04 0x4000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0b 0x04 0x4800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0c 0x04>;
+                interrupt-map-mask = <0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07>;
+                ranges = <0x3000000 0x00 0x2000000 0x00 0x2000000 0x00 0x2000000 0x43000000 0x00 0x90800000 0x00 0x90800000 0xff 0x6f800000>;
+                reg = <0x00 0x10000 0x00 0x1000000>;
+        };
+
+        pclk@3M {
+                #clock-cells = <0x00>;
+                clock-frequency = <0x2fefd8>;
+                compatible = "fixed-clock";
+                phandle = <0x18>;
+        };
+
+        psci {
+                compatible = "arm,psci-1.0\0arm,psci-0.2";
+                method = "hvc";
+        };
+
+        rtc@2000 {
+                arm,primecell-periphid = <0x41030>;
+                clock-names = "apb_pclk";
+                clocks = <0x18>;
+                compatible = "arm,primecell";
+                interrupts = <0x00 0x01 0x04>;
+                reg = <0x00 0x2000 0x00 0x1000>;
+        };
+
+        timer {
+                always-on;
+                compatible = "arm,armv8-timer";
+                interrupts = <0x01 0x0d 0x108 0x01 0x0e 0x108 0x01 0x0b 0x108 0x01 0x0a 0x108>;
+        };
+
+        vmwdt@3000 {
+                clock-frequency = <0x02>;
+                compatible = "qemu,vcpu-stall-detector";
+                interrupts = <0x01 0x0f 0x101>;
+                reg = <0x00 0x3000 0x00 0x1000>;
+                timeout-sec = <0x0a>;
+        };
+};
diff --git a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts
new file mode 100644
index 0000000..5761c15
--- /dev/null
+++ b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts
@@ -0,0 +1,159 @@
+/dts-v1/;
+
+/ {
+        #address-cells = <0x02>;
+        #size-cells = <0x02>;
+        compatible = "linux,dummy-virt";
+        interrupt-parent = <0x01>;
+        name = "reference";
+
+        U6_16550A@2e8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x02 0x01>;
+                reg = <0x00 0x2e8 0x00 0x08>;
+        };
+
+        U6_16550A@2f8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x02 0x01>;
+                reg = <0x00 0x2f8 0x00 0x08>;
+        };
+
+        U6_16550A@3e8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x00 0x01>;
+                reg = <0x00 0x3e8 0x00 0x08>;
+        };
+
+        U6_16550A@3f8 {
+                clock-frequency = <0x1c2000>;
+                compatible = "ns16550a";
+                interrupts = <0x00 0x00 0x01>;
+                reg = <0x00 0x3f8 0x00 0x08>;
+        };
+
+        __symbols__ {
+                intc = "/intc";
+        };
+
+        avf {
+                secretkeeper_public_key = [];
+
+                untrusted {
+                        defer-rollback-protection;
+                        instance-id = <0x4d482941 0x27228238 0x11d7b28 0xaeed3076 0x88eb3fcb 0x2b9de301 0x57ff8977 0xaf8c24b6 0x55466af4 0x23beed37 0x2f976083 0xe630eb28 0x1edbc491 0xa8300897 0xeb3e9f76 0x21ea9284>;
+                };
+        };
+
+        chosen {
+                bootargs = "panic=-1 crashkernel=31M";
+                kaslr-seed = <>;
+                linux,initrd-end = <0x81202104>;
+                linux,initrd-start = <0x81000000>;
+                linux,pci-probe-only = <0x01>;
+                rng-seed = <>;
+                stdout-path = "/U6_16550A@3f8";
+        };
+
+        config {
+                kernel-address = <0x80000000>;
+                kernel-size = <0xc91000>;
+        };
+
+        cpufreq {
+                compatible = "virtual,kvm-cpufreq";
+        };
+
+        cpus {
+                #address-cells = <0x01>;
+                #size-cells = <0x00>;
+
+                cpu@0 {
+                        compatible = "arm,armv8";
+                        device_type = "cpu";
+                        phandle = <0x100>;
+                        reg = <0x00>;
+                };
+        };
+
+        intc {
+                #address-cells = <0x02>;
+                #interrupt-cells = <0x03>;
+                #size-cells = <0x02>;
+                compatible = "arm,gic-v3";
+                interrupt-controller;
+                phandle = <0x01>;
+                reg = <0x00 0x3fff0000 0x00 0x10000 0x00 0x3ffd0000 0x00 0x20000>;
+        };
+
+        memory {
+                device_type = "memory";
+                reg = <0x00 0x80000000 0x00 0x10e00000>;
+        };
+
+        pci {
+                #address-cells = <0x03>;
+                #interrupt-cells = <0x01>;
+                #size-cells = <0x02>;
+                bus-range = <0x00 0x00>;
+                compatible = "pci-host-cam-generic";
+                device_type = "pci";
+                dma-coherent;
+                interrupt-map = <0x800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x1000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x05 0x04 0x1800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x06 0x04 0x2000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x07 0x04 0x2800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x08 0x04 0x3000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x09 0x04 0x3800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0a 0x04 0x4000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0b 0x04>;
+                interrupt-map-mask = <0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07>;
+                memory-region = <0x02>;
+                ranges = <0x3000000 0x00 0x2000000 0x00 0x2000000 0x00 0x2000000 0x43000000 0x00 0x91600000 0x00 0x91600000 0xff 0x6ea00000>;
+                reg = <0x00 0x10000 0x00 0x1000000>;
+        };
+
+        pclk@3M {
+                #clock-cells = <0x00>;
+                clock-frequency = <0x2fefd8>;
+                compatible = "fixed-clock";
+                phandle = <0x18>;
+        };
+
+        psci {
+                compatible = "arm,psci-1.0\0arm,psci-0.2";
+                method = "hvc";
+        };
+
+        reserved-memory {
+                #address-cells = <0x02>;
+                #size-cells = <0x02>;
+                ranges;
+
+                restricted_dma_reserved {
+                        alignment = <0x00 0x1000>;
+                        compatible = "restricted-dma-pool";
+                        phandle = <0x02>;
+                        size = <0x00 0xe00000>;
+                };
+        };
+
+        rtc@2000 {
+                arm,primecell-periphid = <0x41030>;
+                clock-names = "apb_pclk";
+                clocks = <0x18>;
+                compatible = "arm,primecell";
+                interrupts = <0x00 0x01 0x04>;
+                reg = <0x00 0x2000 0x00 0x1000>;
+        };
+
+        timer {
+                always-on;
+                compatible = "arm,armv8-timer";
+                interrupts = <0x01 0x0d 0x108 0x01 0x0e 0x108 0x01 0x0b 0x108 0x01 0x0a 0x108>;
+        };
+
+        vmwdt@3000 {
+                clock-frequency = <0x02>;
+                compatible = "qemu,vcpu-stall-detector";
+                interrupts = <0x01 0x0f 0x101>;
+                reg = <0x00 0x3000 0x00 0x1000>;
+                timeout-sec = <0x0a>;
+        };
+};
