Hi,

I've been debugging a boot issue on my machine for a few days and
wanted to bring it upstream since it's been sitting unassigned on
Launchpad since February.

Hardware: AMD Picasso/Raven2 [1002:15d8], ASUS Vivo AIO V241DAP
Kernel: 6.17.0-14-generic, Ubuntu 24.04

Problem:
simpledrm registers on minor 0 at early boot:
[0.404994] [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0

amdgpu loads ~16 seconds later and gets minor 1 since minor 0 is taken:
[16.512693] [drm] Initialized amdgpu 3.64.0 for 0000:04:00.0 on minor 1

GDM starts, Mutter picks up card0 (simpledrm), calls drmModeAddFB,
gets ENODEV and crashes:
gnome-shell[1743]: Added device '/dev/dri/card0' (simpledrm) using
atomic mode setting.
gnome-shell[1743]: Integrated GPU /dev/dri/card0 selected as primary
gnome-shell[1743]: Failed to ensure KMS FB ID on /dev/dri/card0:
drmModeAddFB failed: No such device

systemd restarts GDM. Second attempt finds card1 (amdgpu) and works:
gnome-shell[2509]: Added device '/dev/dri/card1' (amdgpu) using atomic
mode setting.
gnome-shell[2509]: GPU /dev/dri/card1 selected primary from builtin
panel presence

This crash-restart cycle is the black screen on every boot.

Workaround:
Adding this to kernel cmdline fixes it:
initcall_blacklist=simpledrm_platform_driver_init

With simpledrm blocked, amdgpu claims card0 directly and GDM starts cleanly.

Is a handoff from simpledrm to amdgpu expected to happen on this
hardware? I couldn't find any takeover messages in dmesg.

Full logs and investigation:
https://github.com/jillravaliya/amdgpu-simpledrm-handoff-bug
Launchpad: https://bugs.launchpad.net/ubuntu/+bug/2142087

Thanks
Jill Ravaliya

Reply via email to