[PATCH 1/2] drm/amdgpu/gmc: always steal the first 32MB of vram for fw hand-over

Michel Dänzer michel at daenzer.net
Fri Apr 6 07:50:56 UTC 2018


On 2018-04-05 09:27 PM, Alex Deucher wrote:
> On Thu, Apr 5, 2018 at 2:26 PM, Andrey Grodzovsky
> <andrey.grodzovsky at amd.com> wrote:
>> From: Alex Deucher <alexander.deucher at amd.com>
>>
>> The vbios uses memory from the start of vram for the pre-OS
>> framebuffer. Reserve this at driver load time to prevent
>> the driver from using it for other things which may cause
>> atrifacts on screen before the console has kicked in.
>>
>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>

[...]

>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> index d71d4cb..c8c5ca2 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> @@ -1096,7 +1096,7 @@ static int gmc_v8_0_sw_init(void *handle)
>>          */
>>         adev->gmc.mc_mask = 0xffffffffffULL; /* 40 bit MC */
>>
>> -       adev->gmc.stolen_size = 256 * 1024;
>> +       adev->gmc.stolen_size = 32 * 1024 * 1024;
> 
> For platforms that might have limited carve out (ST, CZ, RV), we may
> want to do something like:
> if (adev->gmc.real_vram_size <= 32MB) // 128MB?
>     stolen_size = 256K;

That means artifacts are likely to still occur during initialization on
systems where we only reserve 256K, right?


I wonder if there's no way to determine which part of VRAM is being
scanned out. If there was, we could just create a normal BO covering
that, which would get destroyed once no CRTC references it anymore.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list