Re: drm bug on Dell Inspiron 3721 (6.4release and 6.4 current)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: drm bug on Dell Inspiron 3721 (6.4release and 6.4 current)

Joe Davis
I had a similar issue when attempting to boot on an 2011 iMac with a
radeon card. I did track down the location of the bug, but I didn't get
around to reporting it.

As far as I can tell the problem is this line (243, in -current) in
dev/pci/drm/radeon/radeon_bios.c, in the function radeon_read_bios:

#else
        bios = (u8 *)ISA_HOLE_VADDR(0xc0000);
#endif

It makes the assumption that the system firmware has mapped the graphics
card ROM at 0xC0000. This works fine on most computers if legacy BIOS
compatiblity is enabled, but breaks on (U)EFI systems which have it
disabled or unavailable. Apple hardware for instance, if booted in EFI
mode, don't map anything to 0xC0000 and make no attempt to have legacy
BIOS compatibility unless specifically told to boot a legacy bootsector.

I worked around it on that iMac by doing an MBR installation rather than
EFI/GPT. On other hardware, I'd recommend going into your BIOS settings
and ensuring that Legacy BIOS/CSM compatibility is enabled, and it isn't
set to UEFI-only.

A robust fix would have the radeon_get_bios map the ROM into memory
itself instead of relying on the firmware to do it. This is how the
linux code (line 208) works.

Cheers,
Joe

Reply | Threaded
Open this post in threaded view
|

Re: drm bug on Dell Inspiron 3721 (6.4release and 6.4 current)

dmitry.sensei
thanks for investigation .
With "Legacy BIOS/CSM compatibility is enabled" my dmesg output is
dmesg|grep -i drm
radeondrm0 at pci1 dev 0 function 0 "ATI Radeon HD 8730M" rev 0x00
drm1 at radeondrm0
radeondrm0: msi
inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 4000" rev 0x09
drm0 at inteldrm0
inteldrm0: msi
inteldrm0: 1600x900, 32bpp
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation)
error: [drm:pid0:cpt_set_fifo_underrun_reporting] *ERROR* uncleared pch
fifo underrun on pch transcoder A
error: [drm:pid0:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH
transcoder A FIFO underrun
drm:pid0:si_init *ERROR* Expecting atombios for cayman GPU
drm:pid0:radeondrm_attachhook *ERROR* Fatal error during GPU init



пт, 8 февр. 2019 г. в 22:29, Joe Davis <[hidden email]>:

> I had a similar issue when attempting to boot on an 2011 iMac with a
> radeon card. I did track down the location of the bug, but I didn't get
> around to reporting it.
>
> As far as I can tell the problem is this line (243, in -current) in
> dev/pci/drm/radeon/radeon_bios.c, in the function radeon_read_bios:
>
> #else
>         bios = (u8 *)ISA_HOLE_VADDR(0xc0000);
> #endif
>
> It makes the assumption that the system firmware has mapped the graphics
> card ROM at 0xC0000. This works fine on most computers if legacy BIOS
> compatiblity is enabled, but breaks on (U)EFI systems which have it
> disabled or unavailable. Apple hardware for instance, if booted in EFI
> mode, don't map anything to 0xC0000 and make no attempt to have legacy
> BIOS compatibility unless specifically told to boot a legacy bootsector.
>
> I worked around it on that iMac by doing an MBR installation rather than
> EFI/GPT. On other hardware, I'd recommend going into your BIOS settings
> and ensuring that Legacy BIOS/CSM compatibility is enabled, and it isn't
> set to UEFI-only.
>
> A robust fix would have the radeon_get_bios map the ROM into memory
> itself instead of relying on the firmware to do it. This is how the
> linux code (line 208) works.
>
> Cheers,
> Joe
>


--
Dmitry Orlov