Garbled video output with RX570 on 32bit platforms
Brief summary of the problem:
When using a RX570 on 32 bit systems (tested on ARMv7 Marvell Armada 385 and x86) the display output is only a garbled, static pattern. This problem seems to occur only when using a 32 bit kernel. On the x86 platform using a 64 bit enabled kernel with the same 32 bit userspace works as expected.
Notably the hardware cursor is not affected and displays correctly. When switching to software cursor it disappears entirely. The pattern displayed looks the same whether using X or Wayland and does not seem to be affected by what is displayed on the display server at all. Please see attached screenshots of what should be displayed and photos of the actual screen output for reference.
I've tried with multiple other kernel versions starting from 4.19.232 (where the card falls off the bus mid initialization) through 5.4.183, 5.10.11, 5.16.12 and finally 5.17.0-rc7. Apart from 4.19 where I was unable to get the card to initialize they all show the same behaviour.
Hardware description:
- CPU: i7-2640M
- GPU: 02:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef)
- System Memory: 16GiB
- Display(s): Motorola Atrix Lapdock (1366x768)
- Type of Display Connection: HDMI
System information:
- Distro name and Version: Debian 11
- Kernel version: 5.17.0-rc7
- Custom kernel: N/A
- AMD official driver version: N/A
How to reproduce the issue:
- Boot a Debian 11 32 bit live system (non-free image with firmware) with a RX570
- Observe garbled screen output
Attached files:
Screenshots/video files
This is what should be displayed (obtained via xwd):
This is what I'm seeing on the connected screen: