I may have stumbled upon a fix by accident.  Enabling resizable BAR in
my UEFI settings seems to stop the crash.

On Wed, Jan 24, 2024 at 09:46:41PM +1100, Jonathan Gray wrote:
> On Tue, Jan 23, 2024 at 10:55:26AM -0500, Josh Rickmar wrote:
> > Latest -current is unhappy with my amd64 desktop.  I'm assuming this
> > is due to the recent drm sync to newer Linux.  My GPU is a RX Vega 64.
> 
> An earlier snapshot worked?
> 
> > 
> > It seems to kernel panic but I can't confirm this, the screen is black
> > and it doesn't bring up networking/respond to pings.
> > 
> > I see the following errors in the dmesg buffer before the most recent
> > boot:
> > 
> > amdgpu0: VEGA10 GC 9.0.1 64 CU rev 0x01
> > [drm] *ERROR* IB test failed on gfx_low (-60).
> > [drm] *ERROR* IB test failed on gfx_high (-60).
> > [drm] *ERROR* IB test failed on comp_1.0.0 (-60).
> > [drm] *ERROR* IB test failed on comp_1.1.0 (-60).
> > [drm] *ERROR* IB test failed on comp_1.2.0 (-60).
> > [drm] *ERROR* IB test failed on comp_1.3.0 (-60).
> > [drm] *ERROR* IB test failed on comp_1.0.1 (-60).
> > [drm] *ERROR* IB test failed on comp_1.1.1 (-60).
> > [drm] *ERROR* IB test failed on comp_1.2.1 (-60).
> 
> Does the following change this?
> 
> The framebuffer offset/size can cause tests to fail.
> 
> Index: sys/dev/pci/drm/amd/amdgpu/amdgpu_gmc.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/amd/amdgpu/amdgpu_gmc.c,v
> diff -u -p -r1.11 amdgpu_gmc.c
> --- sys/dev/pci/drm/amd/amdgpu/amdgpu_gmc.c   16 Jan 2024 23:37:52 -0000      
> 1.11
> +++ sys/dev/pci/drm/amd/amdgpu/amdgpu_gmc.c   24 Jan 2024 10:07:49 -0000
> @@ -738,15 +738,6 @@ void amdgpu_gmc_get_vbios_allocations(st
>       } else {
>               size = amdgpu_gmc_get_vbios_fb_size(adev);
>  
> -#ifdef __amd64__
> -             /*
> -              * XXX Workaround for machines where the framebuffer
> -              * size reported by the hardware is incorrect.
> -              */
> -             extern psize_t efifb_stolen();
> -             size = max(size, efifb_stolen());
> -#endif
> -
>               if (adev->mman.keep_stolen_vga_memory)
>                       size = max(size, (unsigned)AMDGPU_VBIOS_VGA_ALLOCATION);
>       }
> 

Reply via email to