LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   AMDGPU RAVEN screen freeze on switch from EFIFB to AMDGPUDRMFB (https://www.linuxquestions.org/questions/slackware-14/amdgpu-raven-screen-freeze-on-switch-from-efifb-to-amdgpudrmfb-4175636284/)

bandrami 08-13-2018 12:15 PM

AMDGPU RAVEN screen freeze on switch from EFIFB to AMDGPUDRMFB
 
So I got a new Dell Inspiron 13 which has AMD's Vega 10 RAVEN graphics. I wanted to leave my success breadcrumbs for anybody coming after me and also solicit advice on where I'm stuck.

1. Initial boot, 14.2:

Booting at all requires the commandline "amdiommu=on ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2" This will boot and go to a black screen.

When I add "acpi_backlight=vendor nomodeset vga=normal", it boots to runlevel 3 fine, dropping EFIFB when the kernel takes over from ELILO. Obviously, no /dev/dri, no /sys/class/drm. X won't run, even on the VESA driver.

2. Updated to kernel 4.18, firmware from -current:

Since Linus was so kind as to release this today, I built Linux 4.18 and installed it. The first boot kvetched about bad firmware and not finding a BIOS, so I installed the kernel-firmware package from -current.

This worked fairly well. If I boot with the same command line as above (for those following along, that's "amdiommu=on ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2 acpi_backlight=vendor nomodeset vga=normal"), I get to runlevel 3, keeping the EFIFB the whole time (this was counterintuitive at first until I remembered the OS "thinks" the EFIFB is just a console). I can even run X on xf86-video-fbdev, with 1920x1080 resolution.

In theory, this should be fine and if I can't get any farther I'll still be happy with the laptop. However, I would like to get the actual AMDGPU FB working.

3. Updated libdrm

So now I've built the libdrm package from -current (2.4.93) and booted without nomodeset. This seems to boot well, except that when the screen message reaches

Quote:

fb: switching to amdgpudrmfb from EFI VGA
the display just freezes. It continues to boot, and restarts cleanly with the 3-finger salute.

Viewing the logs on the next boot with nomodeset, I can even see:

Quote:

Console: switching to colour dummy device 80x25
[drm] initializing kernel modesetting (RAVEN 0x1002:0x15DD 0x1028:0x0884 0xC3).
[drm] register mmio base: 0xE0800000
[drm] register mmio size: 524288
[drm] probing gen 2 caps for device 1022:15db = 700d03/e
[drm] probing mlw for device 1022:15db = 700d03
[drm] add ip block number 0 <soc15_common>
[drm] add ip block number 1 <gmc_v9_0>
[drm] add ip block number 2 <vega10_ih>
[drm] add ip block number 3 <psp>
[drm] add ip block number 4 <powerplay>
[drm] add ip block number 5 <gfx_v9_0>
[drm] add ip block number 6 <sdma_v4_0>
[drm] add ip block number 7 <vcn_v1_0>
[drm] VCN decode is enabled in VM mode
[drm] VCN encode is enabled in VM mode
ATOM BIOS: 113-RAVEN-102
[drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
amdgpu 0000:02:00.0: VRAM: 256M 0x000000F400000000 - 0x000000F40FFFFFFF (256M used)
amdgpu 0000:02:00.0: GTT: 1024M 0x000000F500000000 - 0x000000F53FFFFFFF
[drm] Detected VRAM RAM=256M, BAR=256M
[drm] RAM width 128bits DDR4
[TTM] Zone kernel: Available graphics memory: 5985902 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] amdgpu: 256M of VRAM memory ready
[drm] amdgpu: 3072M of GTT memory ready.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] use_doorbell being set to: [true]
[drm] Found VCN firmware Version: 1.73 Family ID: 18
amdgpu: [powerplay] dpm has been enabled
[drm] VCN decode and encode initialized successfully.
amdgpu 0000:02:00.0: ring 0(gfx) uses VM inv eng 4 on hub 0
amdgpu 0000:02:00.0: ring 1(comp_1.0.0) uses VM inv eng 5 on hub 0
amdgpu 0000:02:00.0: ring 2(comp_1.1.0) uses VM inv eng 6 on hub 0
amdgpu 0000:02:00.0: ring 3(comp_1.2.0) uses VM inv eng 7 on hub 0
amdgpu 0000:02:00.0: ring 4(comp_1.3.0) uses VM inv eng 8 on hub 0
amdgpu 0000:02:00.0: ring 5(comp_1.0.1) uses VM inv eng 9 on hub 0
amdgpu 0000:02:00.0: ring 6(comp_1.1.1) uses VM inv eng 10 on hub 0
amdgpu 0000:02:00.0: ring 7(comp_1.2.1) uses VM inv eng 11 on hub 0
amdgpu 0000:02:00.0: ring 8(comp_1.3.1) uses VM inv eng 12 on hub 0
amdgpu 0000:02:00.0: ring 9(kiq_2.1.0) uses VM inv eng 13 on hub 0
amdgpu 0000:02:00.0: ring 10(sdma0) uses VM inv eng 4 on hub 1
amdgpu 0000:02:00.0: ring 11(vcn_dec) uses VM inv eng 5 on hub 1
amdgpu 0000:02:00.0: ring 12(vcn_enc0) uses VM inv eng 6 on hub 1
amdgpu 0000:02:00.0: ring 13(vcn_enc1) uses VM inv eng 7 on hub 1
[drm] Initialized amdgpu 3.26.0 20150101 for 0000:02:00.0 on minor 0
So, the DRM seems to think it's setting up a framebuffer, but it doesn't actually get it to the screen. I've tried this with and without acpi_backlight=vendor and it behaves exactly the same.

Am I missing something? Are there some other knobs I can tweak about getting the DRM to actually talk to the screen?

dgrames 08-14-2018 08:34 AM

From when I did this, you also need libclc, libedit, llvm, and mesa from current.
At that point my AMD card did ok.

akimmet 08-14-2018 09:28 AM

Successfully upgrading every package required on 14.2 to support the latest AMD graphics is a daunting prospect. I have attempted it myself, and eventually gave up. However, to be honest though, I gave up pretty quickly once I found out how easy it was to get things up and running on -current instead.

Unless you absolutely must run 14.2, I highly recommend starting with -current. With -current almost everything is already in place for AMD VEGA graphics, the only missing piece is a newer kernel series.

bandrami 09-11-2018 06:17 PM

Thanks both. I ended up giving up on 14.2 and just going to -current. Add a more recent kernel and it Just Works (tm)


All times are GMT -5. The time now is 09:30 PM.