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
<> wrote:
From: Alex Deucher <>

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 <>
Signed-off-by: Andrey Grodzovsky <>

diff --git a/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.

amd-gfx mailing list

Reply via email to