#include "ivpu_mmu.h"
 #include "ivpu_mmu_context.h"
 
+#define IVPU_MMU_VPU_ADDRESS_MASK        GENMASK(47, 12)
 #define IVPU_MMU_PGD_INDEX_MASK          GENMASK(47, 39)
 #define IVPU_MMU_PUD_INDEX_MASK          GENMASK(38, 30)
 #define IVPU_MMU_PMD_INDEX_MASK          GENMASK(29, 21)
 
        if (!IS_ALIGNED(vpu_addr, IVPU_MMU_PAGE_SIZE))
                return -EINVAL;
-       /*
-        * VPU is only 32 bit, but DMA engine is 38 bit
-        * Ranges < 2 GB are reserved for VPU internal registers
-        * Limit range to 8 GB
-        */
-       if (vpu_addr < SZ_2G || vpu_addr > SZ_8G)
+
+       if (vpu_addr & ~IVPU_MMU_VPU_ADDRESS_MASK)
                return -EINVAL;
 
        prot = IVPU_MMU_ENTRY_MAPPED;