While AMD provided upstream open-source driver support for the Radeon RX 7900 series launch, the initial user experience can be less than desirable if running a new Radeon GPU but initially running an out-of-date kernel or lacking the necessary firmware support. With a new patch series posted AMD is looking to improve the experience by being able to more easily fallback to the firmware frame-buffer when their AMDGPU kernel graphics driver fails to properly load.
With the new IP-based discovery “block by block” approach to how the open-source AMD Radeon Linux graphics driver is managing the hardware initialization with RDNA3 and moving forward, the AMDGPU driver will try to probe all Radeon GPUs even if it might not end up being fully supported. In turn that ends up destroying the system firmware frame-buffer. But right now in the case of booting an RDNA3 GPU with a slightly out of date kernel (pre-6.0) or lacking the necessary RDNA3 firmware for hardware initialization, it can mean the screen freezing or system appearing unresponsive.
The patch series sent out by AMD’s Mairo Limonciello is about being able to recover the system firmware frame-buffer should the AMDGPU driver initialization fail. At the moment users need to know to use the “nomodeset” kernel option for booting without DRM/KMS active if you run into a DRM driver hardware initialization issue while the patch series in a future kernel release would allow re-running the initialization process for the firmware frame-buffer — rather than just destroying it and no attempt to fallback to it.
This patch series lays the foundation for this support with the AMDGPU kernel driver. Other DRM Linux drivers may also choose to make use of this functionality as well in case of hardware probing/initialization failures.