Some ASICs have the device memory divided into multiple partitions. The
parititions could be denoted by a numa node or by a range of pages.
Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
        struct amdgpu_xgmi_ras *ras;
 };
 
+struct amdgpu_mem_partition_info {
+       union {
+               struct {
+                       uint32_t fpfn;
+                       uint32_t lpfn;
+               } range;
+               struct {
+                       int node;
+               } numa;
+       };
+       uint64_t size;
+};
+
+#define INVALID_PFN    -1
+
 struct amdgpu_gmc {
        /* FB's physical address in MMIO space (for CPU to
         * map FB). This is different compared to the agp/
        bool tmz_enabled;
        bool is_app_apu;
 
+       struct amdgpu_mem_partition_info *mem_partitions;
+       uint8_t num_mem_partitions;
        const struct amdgpu_gmc_funcs   *gmc_funcs;
 
        struct amdgpu_xgmi xgmi;