[PATCH] drm/amdgpu: add coreboot workaround for KV/KB

Felix Kuehling felix.kuehling at amd.com
Fri Jan 17 02:01:05 UTC 2020


On 2020-01-16 8:09, Christian König wrote:
> Coreboot seems to have a problem correctly setting up access to the stolen VRAM
> on KV/KB. Use the direct access only when necessary.

I'm not sure what you mean by "necessary".

>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> index 19d5b133e1d7..9da9596a3638 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> @@ -381,7 +381,8 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
>   	adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
>   
>   #ifdef CONFIG_X86_64
> -	if (adev->flags & AMD_IS_APU) {
> +	if (adev->flags & AMD_IS_APU &&
> +	    adev->gmc.real_vram_size > adev->gmc.aper_size) {

CPU access to the whole VRAM isn't really necessary. I thought the main 
motivation for accessing FB directly on APUs was better performance. 
You're disabling that optimization on all APUs where the FB is smaller 
than the aperture size.

Regards,
   Felix


>   		adev->gmc.aper_base = ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22;
>   		adev->gmc.aper_size = adev->gmc.real_vram_size;
>   	}


More information about the amd-gfx mailing list