Am 06.04.2018 um 09:50 schrieb Michel Dänzer: > 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. Unfortunately it goes further than that. The stolen VRAM is needed for VGA emulation, not only for scanout. But yes I agree that we somehow figure that value out from the BIOS. If I'm not completely mistaken I've also seen some atombios table with that info in some discussion. Christian.