diff --git a/hypervisor/include/common/vm.h b/hypervisor/include/common/vm.h
index cb1f9d82b..cdcba0108 100644
--- a/hypervisor/include/common/vm.h
+++ b/hypervisor/include/common/vm.h
@@ -56,6 +56,7 @@ struct vm_sw_info {
struct sw_module_info bootargs_info;
struct sw_module_info ramdisk_info;
struct sw_module_info acpi_info;
+ struct sw_module_info fdt_info;
/* HVA to IO shared page */
void *io_shared_page;
void *asyncio_sbuf;
diff --git a/hypervisor/include/common/vm_config.h b/hypervisor/include/common/vm_config.h
index 868f096e7..0573db96b 100644
--- a/hypervisor/include/common/vm_config.h
+++ b/hypervisor/include/common/vm_config.h
@@ -98,6 +98,10 @@ struct acrn_vm_acpi_config {
char acpi_mod_tag[MAX_MOD_TAG_LEN]; /* multiboot module tag for ACPI */
} __aligned(8);
+struct acrn_vm_fdt_config {
+ char fdt_mod_tag[MAX_MOD_TAG_LEN]; /* multiboot module tag for FDT */
+} __aligned(8);
+
/* the vbdf is assgined by device model */
#define UNASSIGNED_VBDF 0xFFFFU
@@ -142,6 +146,7 @@ struct acrn_vm_config {
struct acrn_vm_pci_dev_config *pci_devs; /* point to PCI devices BDF list */
struct acrn_vm_os_config os_config; /* OS information the VM */
struct acrn_vm_acpi_config acpi_config; /* ACPI config for the VM */
+ struct acrn_vm_fdt_config fdt_config; /* FDT config for the VM */
struct vuart_config vuart[MAX_VUART_NUM_PER_VM];/* vuart configuration for VM */
diff --git a/misc/config_tools/xforms/vm_configurations.c.xsl b/misc/config_tools/xforms/vm_configurations.c.xsl
index 5d00671cb..d881aa9d5 100644
--- a/misc/config_tools/xforms/vm_configurations.c.xsl
+++ b/misc/config_tools/xforms/vm_configurations.c.xsl
@@ -132,6 +132,7 @@
+
@@ -273,6 +274,15 @@
+
+
+
+
+ },
+
+
+
+