mirror of https://gitee.com/openkylin/linux.git
drm/radeon: update comments to clarify VM setup (v2)
The actual set up and assignment of VM page tables is done on the fly in radeon_gart.c. v2: update vm size comments Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
29dbe3bcd2
commit
23d4f1f246
|
@ -770,6 +770,10 @@ static int cayman_pcie_gart_enable(struct radeon_device *rdev)
|
||||||
WREG32(0x15DC, 0);
|
WREG32(0x15DC, 0);
|
||||||
|
|
||||||
/* empty context1-7 */
|
/* empty context1-7 */
|
||||||
|
/* Assign the pt base to something valid for now; the pts used for
|
||||||
|
* the VMs are determined by the application and setup and assigned
|
||||||
|
* on the fly in the vm part of radeon_gart.c
|
||||||
|
*/
|
||||||
for (i = 1; i < 8; i++) {
|
for (i = 1; i < 8; i++) {
|
||||||
WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR + (i << 2), 0);
|
WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR + (i << 2), 0);
|
||||||
WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR + (i << 2), 0);
|
WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR + (i << 2), 0);
|
||||||
|
|
|
@ -1018,6 +1018,10 @@ int radeon_device_init(struct radeon_device *rdev,
|
||||||
return r;
|
return r;
|
||||||
/* initialize vm here */
|
/* initialize vm here */
|
||||||
mutex_init(&rdev->vm_manager.lock);
|
mutex_init(&rdev->vm_manager.lock);
|
||||||
|
/* Adjust VM size here.
|
||||||
|
* Currently set to 4GB ((1 << 20) 4k pages).
|
||||||
|
* Max GPUVM size for cayman and SI is 40 bits.
|
||||||
|
*/
|
||||||
rdev->vm_manager.max_pfn = 1 << 20;
|
rdev->vm_manager.max_pfn = 1 << 20;
|
||||||
INIT_LIST_HEAD(&rdev->vm_manager.lru_vm);
|
INIT_LIST_HEAD(&rdev->vm_manager.lru_vm);
|
||||||
|
|
||||||
|
|
|
@ -2407,12 +2407,13 @@ static int si_pcie_gart_enable(struct radeon_device *rdev)
|
||||||
WREG32(0x15DC, 0);
|
WREG32(0x15DC, 0);
|
||||||
|
|
||||||
/* empty context1-15 */
|
/* empty context1-15 */
|
||||||
/* FIXME start with 4G, once using 2 level pt switch to full
|
|
||||||
* vm size space
|
|
||||||
*/
|
|
||||||
/* set vm size, must be a multiple of 4 */
|
/* set vm size, must be a multiple of 4 */
|
||||||
WREG32(VM_CONTEXT1_PAGE_TABLE_START_ADDR, 0);
|
WREG32(VM_CONTEXT1_PAGE_TABLE_START_ADDR, 0);
|
||||||
WREG32(VM_CONTEXT1_PAGE_TABLE_END_ADDR, rdev->vm_manager.max_pfn);
|
WREG32(VM_CONTEXT1_PAGE_TABLE_END_ADDR, rdev->vm_manager.max_pfn);
|
||||||
|
/* Assign the pt base to something valid for now; the pts used for
|
||||||
|
* the VMs are determined by the application and setup and assigned
|
||||||
|
* on the fly in the vm part of radeon_gart.c
|
||||||
|
*/
|
||||||
for (i = 1; i < 16; i++) {
|
for (i = 1; i < 16; i++) {
|
||||||
if (i < 8)
|
if (i < 8)
|
||||||
WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2),
|
WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2),
|
||||||
|
|
Loading…
Reference in New Issue