if (!hdev->mmu_enable)
                goto out;
 
-       if (hdev->dram_supports_virtual_memory &&
+       if (prop->dram_supports_virtual_memory &&
                (addr >= prop->dmmu.start_addr && addr < prop->dmmu.end_addr))
                return true;
 
 
  *                        false otherwise
  * @fw_security_status_valid: security status bits are valid and can be fetched
  *                            from BOOT_DEV_STS0
+ * @dram_supports_virtual_memory: is there an MMU towards the DRAM
  */
 struct asic_fixed_properties {
        struct hw_queue_properties      *hw_queues_props;
        u8                              completion_queues_count;
        u8                              fw_security_disabled;
        u8                              fw_security_status_valid;
+       u8                              dram_supports_virtual_memory;
 };
 
 /**
  * @heartbeat: is heartbeat sanity check towards CPU-CP enabled.
  * @reset_on_lockup: true if a reset should be done in case of stuck CS, false
  *                   otherwise.
- * @dram_supports_virtual_memory: is MMU enabled towards DRAM.
  * @dram_default_page_mapping: is DRAM default page mapping enabled.
  * @memory_scrub: true to perform device memory scrub in various locations,
  *                such as context-switch, context close, page free, etc.
        u8                              hard_reset_pending;
        u8                              heartbeat;
        u8                              reset_on_lockup;
-       u8                              dram_supports_virtual_memory;
        u8                              dram_default_page_mapping;
        u8                              memory_scrub;
        u8                              pmmu_huge_range;
 
                 * the user's input, the driver can't ensure the validity
                 * of this accounting.
                 */
-               if (!hdev->dram_supports_virtual_memory) {
+               if (!hdev->asic_prop.dram_supports_virtual_memory) {
                        atomic64_add(args->in.alloc.mem_size,
                                        &ctx->dram_phys_mem);
                        atomic64_add(args->in.alloc.mem_size,
                 * the user's input, the driver can't ensure the validity
                 * of this accounting.
                 */
-               if (!hdev->dram_supports_virtual_memory) {
+               if (!hdev->asic_prop.dram_supports_virtual_memory) {
                        atomic64_sub(args->in.alloc.mem_size,
                                        &ctx->dram_phys_mem);
                        atomic64_sub(args->in.alloc.mem_size,
         * because the user notifies us on allocations. If the user is no more,
         * all DRAM is available
         */
-       if (!ctx->hdev->dram_supports_virtual_memory)
+       if (!ctx->hdev->asic_prop.dram_supports_virtual_memory)
                atomic64_set(&ctx->hdev->dram_used_mem, 0);
 }
 
 
                hop2_pte_addr, hop3_pte_addr, pte_val;
        int rc, i, j, hop3_allocated = 0;
 
-       if ((!hdev->dram_supports_virtual_memory) ||
+       if ((!prop->dram_supports_virtual_memory) ||
                        (!hdev->dram_default_page_mapping) ||
                        (ctx->asid == HL_KERNEL_ASID_ID))
                return 0;
                hop2_pte_addr, hop3_pte_addr;
        int i, j;
 
-       if ((!hdev->dram_supports_virtual_memory) ||
+       if ((!prop->dram_supports_virtual_memory) ||
                        (!hdev->dram_default_page_mapping) ||
                        (ctx->asid == HL_KERNEL_ASID_ID))
                return;
 
        prop->mmu_hop_table_size = HOP_TABLE_SIZE;
        prop->mmu_hop0_tables_total_size = HOP0_TABLES_TOTAL_SIZE;
        prop->dram_page_size = PAGE_SIZE_2MB;
+       prop->dram_supports_virtual_memory = false;
 
        prop->pmmu.hop0_shift = HOP0_SHIFT;
        prop->pmmu.hop1_shift = HOP1_SHIFT;
        if (gaudi->hw_cap_initialized & HW_CAP_MMU)
                return 0;
 
-       hdev->dram_supports_virtual_memory = false;
-
        for (i = 0 ; i < prop->max_asid ; i++) {
                hop0_addr = prop->mmu_pgt_addr +
                                (i * prop->mmu_hop_table_size);
 
        prop->mmu_hop_table_size = HOP_TABLE_SIZE;
        prop->mmu_hop0_tables_total_size = HOP0_TABLES_TOTAL_SIZE;
        prop->dram_page_size = PAGE_SIZE_2MB;
+       prop->dram_supports_virtual_memory = true;
 
        prop->dmmu.hop0_shift = HOP0_SHIFT;
        prop->dmmu.hop1_shift = HOP1_SHIFT;
        if (goya->hw_cap_initialized & HW_CAP_MMU)
                return 0;
 
-       hdev->dram_supports_virtual_memory = true;
        hdev->dram_default_page_mapping = true;
 
        for (i = 0 ; i < prop->max_asid ; i++) {