gpu: nvgpu: Force the PMU VM to use 128K large pages (gm20b)

Add a WAR for gm20b that allows us to force the PMU VM to use
128K large pages. For some reason setting the small page size
to 64K breaks the PMU boot. Unclear why. Bug needs to be filed
and fixed. Once fixed this patch can and should be reverted.

Bug 200105199

Change-Id: I2b4c9e214e2a6dff33bea18bd2359c33364ba03f
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1782769
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Alex Waterman
2018-07-20 11:12:19 -07:00
committed by mobile promotions
parent bcf83fab33
commit 652da81169
5 changed files with 18 additions and 3 deletions

View File

@@ -215,6 +215,8 @@ static void nvgpu_init_mm_vars(struct gk20a *g)
platform->unified_memory);
__nvgpu_set_enabled(g, NVGPU_MM_UNIFY_ADDRESS_SPACES,
platform->unify_address_spaces);
__nvgpu_set_enabled(g, NVGPU_MM_FORCE_128K_PMU_VM,
platform->force_128K_pmu_vm);
nvgpu_mutex_init(&g->mm.tlb_lock);
nvgpu_mutex_init(&g->mm.priv_lock);

View File

@@ -244,6 +244,8 @@ struct gk20a_platform {
bool honors_aperture;
/* unified or split memory with separate vidmem? */
bool unified_memory;
/* WAR for gm20b chips. */
bool force_128K_pmu_vm;
/*
* DMA mask for Linux (both coh and non-coh). If not set defaults to

View File

@@ -952,6 +952,7 @@ struct gk20a_platform gm20b_tegra_platform = {
.unified_memory = true,
.dma_mask = DMA_BIT_MASK(34),
.force_128K_pmu_vm = true,
.secure_buffer_size = 335872,
};