Am 06.11.19 um 21:05 schrieb Zeng, Oak: > Thanks Alex. > >> AGP is also used for page tables in system memory. > I am not aware of this usage. I thought page table are all in frame buffer today. Was this a use case in old asics? No, that is pretty new and only works for Renoir. But we have disabled it currently because of bad interactions with IOMMU. Christian. > > Oak > > -----Original Message----- > From: Alex Deucher <alexdeucher@xxxxxxxxx> > Sent: Wednesday, November 6, 2019 12:37 PM > To: Zeng, Oak <Oak.Zeng@xxxxxxx> > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Kuehling, Felix <Felix.Kuehling@xxxxxxx>; Koenig, Christian <Christian.Koenig@xxxxxxx> > Subject: Re: [PATCH] drm/amdgpu: Add comments to gmc structure > > On Wed, Nov 6, 2019 at 12:21 PM Zeng, Oak <Oak.Zeng@xxxxxxx> wrote: >> Explain fields like aper_base, agp_start etc. The definition of those >> fields are confusing as they are from different view (CPU or GPU). Add >> comments for easier understand. >> >> Change-Id: I02c2a27cd0dbc205498eb86aafa722f2e0c25fe6 >> Signed-off-by: Oak Zeng <Oak.Zeng@xxxxxxx> > A few comments below, otherwise looks good to me. > >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 25 >> +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h >> index 555d8e5..8003201 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h >> @@ -127,18 +127,43 @@ struct amdgpu_xgmi { }; >> >> struct amdgpu_gmc { >> + /* FB's physical address in MMIO space (for CPU to >> + * map FB). This is different compared to the apg/ > apg -> agp > >> + * gart/vram_start/end field as the later is from >> + * GPU's view and aper_base is from CPU's view. >> + */ >> resource_size_t aper_size; >> resource_size_t aper_base; >> /* for some chips with <= 32MB we need to lie >> * about vram size near mc fb location */ >> u64 mc_vram_size; >> u64 visible_vram_size; >> + /* APG aperture start and end in MC address space > APG -> AGP > >> + * Driver find a hole in the MC address space >> + * to place AGP by setting MC_VM_AGP_BOT/TOP registers >> + * Under VMID0, logical address == MC address >> + * AGP aperture is used to simulate FB in ZFB case >> + */ > You may want to add a comment that the AGP aperture just maps to physical bus or IOVA addresses on the platform. It's also used for page tables in system memory. > >> u64 agp_size; >> u64 agp_start; >> u64 agp_end; >> + /* GART aperture start and end in MC address space >> + * Driver find a hole in the MC address space >> + * to place GART by setting VM_CONTEXT0_PAGE_TABLE_START/END_ADDR >> + * registers >> + * Under VMID0, logical address inside GART aperture will >> + * be translated through gpuvm gart page table to access >> + * paged system memory >> + */ >> u64 gart_size; >> u64 gart_start; >> u64 gart_end; >> + /* Frame buffer aperture of this GPU device. Different from >> + * fb_start (see below), this only covers the local GPU device. >> + * Driver get fb_start from MC_VM_FB_LOCATION_BASE (set by vbios) >> + * and calculate vram_start of this local device by adding an >> + * offset inside the XGMI hive. >> + */ >> u64 vram_start; >> u64 vram_end; >> /* FB region , it's same as local vram region in single GPU, >> in XGMI >> -- >> 2.7.4 >> >> _______________________________________________ >> amd-gfx mailing list >> amd-gfx@xxxxxxxxxxxxxxxxxxxxx >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx