raspberry-pi-pcie-devices icon indicating copy to clipboard operation
raspberry-pi-pcie-devices copied to clipboard

Test AMD RX 9070 XT 16GB

Open geerlingguy opened this issue 2 months ago • 9 comments

I just bought a PowerColor AMD RX 9070 XT Reaper, with 16GB of GDDR6 RAM.

Image

I am testing it with yanghaku's 15 line DRM patch to see if it works 'out of the box' as the other AMD GPUs have—it may need some updated firmware that's not already in the firmware-amd-graphics package on Debian.

Current steps to get this card working with Pi OS Bookworm

Last updated: 2025-10-01

  1. Clone the Raspberry Pi Linux kernel patching the default Raspberry Pi rpi-6.17.y kernel tree with this patch.
  2. Before compiling the kernel, run make menuconfig and select the options: 1. Kernel Features > Page Size > 4 KB (for Box86 compatibility) 2. Device Drivers > Graphics support > AMD GPU (optionally SI/CIK support too)
  3. Recompile the kernel following Raspberry Pi's instructions
  4. Install the AMD firmware: sudo apt install -y firmware-amd-graphics
  5. Install additional firmware for this card (see 'Install Additional Firmware')
  6. ONLY if running Bookworm (Pi OS 12): Update Mesa to the latest version (version 25+)
  7. Reboot the Pi with the card attached using an appropriate PCIe riser and external ATX power supply.

Install Additional Firmware

cd /usr/lib/firmware/amdgpu && \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/psp_14_0_3_sos.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/psp_14_0_3_ta.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/smu_14_0_3.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/dcn_4_0_1_dmcub.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_pfp.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_me.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_mec.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_rlc.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_imu.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/sdma_7_0_1.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/vcn_5_0_0.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_uni_mes.bin

Confirm everything's working

Confirm everything is working by plugging a monitor into the graphics card; then confirm the card's GPU is in use by running glxinfo -B (part of the mesa-utils package), for example:

$ DISPLAY=:0 glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon Graphics (radeonsi, gfx1201, ACO, DRM 3.63, 6.15.11-v8-4k-gpu+) (0x7550)
    Version: 25.0.7
    Accelerated: yes
    Video memory: 16384MB
...

geerlingguy avatar Sep 29 '25 20:09 geerlingguy

lspci output:

0001:01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev 24) (prog-if 00 [Normal decode])
	Subsystem: Tul Corporation / PowerColor Navi 10 XL Upstream Port of PCI Express Switch
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 38
	Region 0: Memory at 1b80100000 (32-bit, non-prefetchable) [size=16K]
	Bus: primary=01, secondary=02, subordinate=03, sec-latency=0
	I/O behind bridge: 0000f000-00000fff [disabled] [32-bit]
	Memory behind bridge: 80000000-800fffff [size=1M] [32-bit]
	Prefetchable memory behind bridge: 1800000000-1817ffffff [size=384M] [32-bit]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Upstream Port, MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ SlotPowerLimit 0W
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <64us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM L1 Enabled; Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 8GT/s (downgraded), Width x1 (downgraded)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 4
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS-
			 AtomicOpsCap: Routing+ 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
			 AtomicOpsCtl: EgressBlck-
		LnkCap2: Supported Link Speeds: 2.5-32GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
		LnkCtl2: Target Link Speed: 32GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
			 EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [c0] Subsystem: Tul Corporation / PowerColor Navi 10 XL Upstream Port of PCI Express Switch
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [270 v1] Secondary PCI Express
		LnkCtl3: LnkEquIntrruptEn- PerformEqu-
		LaneErrStat: 0
	Capabilities: [320 v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Capabilities: [370 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=0us PortTPowerOnTime=50us
		L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
			   T_CommonMode=0us LTR1.2_Threshold=0ns
		L1SubCtl2: T_PwrOn=10us
	Capabilities: [400 v1] Data Link Feature <?>
	Capabilities: [410 v1] Physical Layer 16.0 GT/s <?>
	Capabilities: [440 v1] Lane Margining at the Receiver <?>
	Capabilities: [500 v1] Extended Capability ID 0x2a
	Kernel driver in use: pcieport

0001:02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch (rev 24) (prog-if 00 [Normal decode])
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 39
	Bus: primary=02, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 0000f000-00000fff [disabled] [32-bit]
	Memory behind bridge: 80000000-800fffff [size=1M] [32-bit]
	Prefetchable memory behind bridge: 1800000000-1817ffffff [size=384M] [32-bit]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Downstream Port (Slot-), MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0
			ExtTag+ RBE+
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
		LnkCtl:	ASPM L1 Enabled; Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+
		LnkSta:	Speed 32GT/s, Width x16
			TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 4
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- ARIFwd-
			 AtomicOpsCap: Routing+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled, ARIFwd-
			 AtomicOpsCtl: EgressBlck-
		LnkCap2: Supported Link Speeds: 2.5-32GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
		LnkCtl2: Target Link Speed: 32GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 000000fffffff000  Data: 0008
	Capabilities: [c0] Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [270 v1] Secondary PCI Express
		LnkCtl3: LnkEquIntrruptEn- PerformEqu-
		LaneErrStat: 0
	Capabilities: [2a0 v1] Access Control Services
		ACSCap:	SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans+
		ACSCtl:	SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
	Capabilities: [400 v1] Data Link Feature <?>
	Capabilities: [410 v1] Physical Layer 16.0 GT/s <?>
	Capabilities: [450 v1] Lane Margining at the Receiver <?>
	Capabilities: [500 v1] Extended Capability ID 0x2a
	Kernel driver in use: pcieport

0001:03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [RX 9070/9070 XT] (rev c0) (prog-if 00 [VGA controller])
	Subsystem: Tul Corporation / PowerColor Navi 48 [RX 9070/9070 XT]
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 38
	Region 0: Memory at 1800000000 (64-bit, prefetchable) [size=256M]
	Region 2: Memory at 1810000000 (64-bit, prefetchable) [size=2M]
	Region 5: Memory at 1b80000000 (32-bit, non-prefetchable) [size=512K]
	Expansion ROM at 1b80080000 [disabled] [size=128K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [64] Express (v2) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 32GT/s, Width x16
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 1
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS-
			 AtomicOpsCap: 32bit+ 64bit+ 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkCap2: Supported Link Speeds: 2.5-32GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
		LnkCtl2: Target Link Speed: 32GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [200 v1] Physical Resizable BAR
		BAR 0: current size: 256MB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
		BAR 2: current size: 2MB, supported: 2MB 4MB 8MB 16MB 32MB 64MB 128MB 256MB
	Capabilities: [240 v1] Power Budgeting <?>
	Capabilities: [270 v1] Secondary PCI Express
		LnkCtl3: LnkEquIntrruptEn- PerformEqu-
		LaneErrStat: 0
	Capabilities: [2a0 v1] Access Control Services
		ACSCap:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Capabilities: [2d0 v1] Process Address Space ID (PASID)
		PASIDCap: Exec+ Priv+, Max PASID Width: 10
		PASIDCtl: Enable- Exec- Priv-
	Capabilities: [320 v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Capabilities: [410 v1] Physical Layer 16.0 GT/s <?>
	Capabilities: [450 v1] Lane Margining at the Receiver <?>
	Capabilities: [500 v1] Extended Capability ID 0x2a
	Kernel modules: amdgpu

0001:03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device ab40
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device ab40
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 255
	Region 0: Memory at 1b800a0000 (32-bit, non-prefetchable) [disabled] [size=16K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [64] Express (v2) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 32GT/s, Width x16
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 1
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- 10BitTagReq- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [2a0 v1] Access Control Services
		ACSCap:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-

geerlingguy avatar Sep 29 '25 21:09 geerlingguy

As expected, needs newer firmware than what's in the Pi OS Debian 12 Bookworm package:

$ dmesg | grep amdgpu
[    5.061554] [drm] amdgpu kernel modesetting enabled.
[    5.061778] amdgpu 0001:03:00.0: enabling device (0000 -> 0002)
[    5.066961] amdgpu 0001:03:00.0: amdgpu: detected ip block number 0 <soc24_common>
[    5.066971] amdgpu 0001:03:00.0: amdgpu: detected ip block number 1 <gmc_v12_0>
[    5.066974] amdgpu 0001:03:00.0: amdgpu: detected ip block number 2 <ih_v7_0>
[    5.066999] amdgpu 0001:03:00.0: amdgpu: detected ip block number 3 <psp>
[    5.067002] amdgpu 0001:03:00.0: amdgpu: detected ip block number 4 <smu>
[    5.067006] amdgpu 0001:03:00.0: amdgpu: detected ip block number 5 <dm>
[    5.067009] amdgpu 0001:03:00.0: amdgpu: detected ip block number 6 <gfx_v12_0>
[    5.067012] amdgpu 0001:03:00.0: amdgpu: detected ip block number 7 <sdma_v7_0>
[    5.067015] amdgpu 0001:03:00.0: amdgpu: detected ip block number 8 <vcn_v5_0_0>
[    5.067018] amdgpu 0001:03:00.0: amdgpu: detected ip block number 9 <jpeg_v5_0_0>
[    5.067021] amdgpu 0001:03:00.0: amdgpu: detected ip block number 10 <mes_v12_0>
[    5.075417] amdgpu 0001:03:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    5.075425] amdgpu: ATOM BIOS: 113-EXT112333-100
[    5.076487] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/psp_14_0_3_sos.bin failed with error -2
[    5.076497] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <psp> failed -19
[    5.077068] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/smu_14_0_3.bin failed with error -2
[    5.077076] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <smu> failed -19
[    5.077389] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/dcn_4_0_1_dmcub.bin failed with error -2
[    5.077394] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <dm> failed -19
[    5.077859] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_pfp.bin failed with error -2
[    5.077865] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v12_0> failed -19
[    5.078434] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/sdma_7_0_1.bin failed with error -2
[    5.078444] [drm:sdma_v7_0_early_init [amdgpu]] *ERROR* Failed to init sdma firmware!
[    5.078747] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <sdma_v7_0> failed -19
[    5.079242] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/vcn_5_0_0.bin failed with error -2
[    5.079253] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <vcn_v5_0_0> failed -19
[    5.079619] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_uni_mes.bin failed with error -2
[    5.079627] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <mes_v12_0> failed -19
[    5.079953] amdgpu 0001:03:00.0: amdgpu: Fatal error during GPU init
[    5.079960] amdgpu 0001:03:00.0: amdgpu: amdgpu: finishing device.

...

# After a reboot with initial set of firmware, also got:
[    4.863947] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/psp_14_0_3_ta.bin failed with error -2
[    4.863959] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <psp> failed -19
[    4.870032] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_me.bin failed with error -2
[    4.870051] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v12_0> failed -19
[    4.981344] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_rlc.bin failed with error -2
[    4.981375] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v12_0> failed -19
[    4.876904] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_mec.bin failed with error -2
[    4.876934] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v12_0> failed -19
[    5.050765] amdgpu 0001:03:00.0: Direct firmware load for amdgpu/gc_12_0_1_imu.bin failed with error -2
[    5.050776] amdgpu 0001:03:00.0: amdgpu: gfx12: Failed to load firmware "gc_12_0_1_imu.bin"
[    5.050779] amdgpu 0001:03:00.0: amdgpu: Failed to load imu firmware!
[    5.050813] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v12_0> failed -19
[    4.876774] amdgpu 0001:03:00.0: amdgpu: Fatal error during GPU init
[    4.876787] amdgpu 0001:03:00.0: amdgpu: amdgpu: finishing device.

Downloading all the firmware with:

cd /usr/lib/firmware/amdgpu

sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/psp_14_0_3_sos.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/psp_14_0_3_ta.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/smu_14_0_3.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/dcn_4_0_1_dmcub.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_pfp.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_me.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_mec.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_rlc.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_imu.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/sdma_7_0_1.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/vcn_5_0_0.bin & \
sudo wget -q -o -nc https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/gc_12_0_1_uni_mes.bin

Then rebooted. After reboot, I got a blank screen, but no errors:

[    5.056573] [drm] amdgpu kernel modesetting enabled.
[    5.056785] amdgpu 0001:03:00.0: enabling device (0000 -> 0002)
[    5.056799] [drm] initializing kernel modesetting (IP DISCOVERY 0x1002:0x7550 0x148C:0x2435 0xC0).
[    5.056828] [drm] register mmio base: 0x80000000
[    5.056832] [drm] register mmio size: 524288
[    5.060880] amdgpu 0001:03:00.0: amdgpu: detected ip block number 0 <soc24_common>
[    5.060888] amdgpu 0001:03:00.0: amdgpu: detected ip block number 1 <gmc_v12_0>
[    5.060893] amdgpu 0001:03:00.0: amdgpu: detected ip block number 2 <ih_v7_0>
[    5.060898] amdgpu 0001:03:00.0: amdgpu: detected ip block number 3 <psp>
[    5.060902] amdgpu 0001:03:00.0: amdgpu: detected ip block number 4 <smu>
[    5.060906] amdgpu 0001:03:00.0: amdgpu: detected ip block number 5 <dm>
[    5.060910] amdgpu 0001:03:00.0: amdgpu: detected ip block number 6 <gfx_v12_0>
[    5.060914] amdgpu 0001:03:00.0: amdgpu: detected ip block number 7 <sdma_v7_0>
[    5.060919] amdgpu 0001:03:00.0: amdgpu: detected ip block number 8 <vcn_v5_0_0>
[    5.060923] amdgpu 0001:03:00.0: amdgpu: detected ip block number 9 <jpeg_v5_0_0>
[    5.060926] amdgpu 0001:03:00.0: amdgpu: detected ip block number 10 <mes_v12_0>
[    5.069276] amdgpu 0001:03:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    5.069283] amdgpu: ATOM BIOS: 113-EXT112333-100
[    5.090183] amdgpu 0001:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[    5.090209] amdgpu 0001:03:00.0: amdgpu: PCIE atomic ops is not supported
[    5.090219] [drm] GPU posting now...
[    5.090259] amdgpu 0001:03:00.0: amdgpu: MEM ECC is not presented.
[    5.090264] amdgpu 0001:03:00.0: amdgpu: SRAM ECC is not presented.
[    5.090282] [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[    5.090307] amdgpu 0001:03:00.0: BAR 2 [mem 0x1810000000-0x18101fffff 64bit pref]: releasing
[    5.090314] amdgpu 0001:03:00.0: BAR 0 [mem 0x1800000000-0x180fffffff 64bit pref]: releasing
[    5.090330] pcieport 0001:02:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.090335] pcieport 0001:01:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.090339] pcieport 0001:00:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.090351] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090355] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090360] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090364] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090369] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090373] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090377] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090381] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090386] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090389] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090394] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.090398] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.090402] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[    5.090406] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[    5.090411] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[    5.090414] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[    5.090419] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[    5.090423] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[    5.090427] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[    5.090431] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[    5.090435] pcieport 0001:00:00.0: PCI bridge to [bus 01-03]
[    5.090440] pcieport 0001:00:00.0:   bridge window [mem 0x1b80000000-0x1b801fffff]
[    5.090445] pcieport 0001:00:00.0: PCI bridge to [bus 01-03]
[    5.090449] pcieport 0001:00:00.0:   bridge window [mem 0x1b80000000-0x1b801fffff]
[    5.090454] pcieport 0001:00:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.090458] pcieport 0001:01:00.0: PCI bridge to [bus 02-03]
[    5.090464] pcieport 0001:01:00.0:   bridge window [mem 0x1b80000000-0x1b800fffff]
[    5.090469] pcieport 0001:01:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.090477] pcieport 0001:02:00.0: PCI bridge to [bus 03]
[    5.090483] pcieport 0001:02:00.0:   bridge window [mem 0x1b80000000-0x1b800fffff]
[    5.090489] pcieport 0001:02:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.090500] [drm] Not enough PCI address space for a large BAR.
[    5.090504] amdgpu 0001:03:00.0: BAR 0 [mem 0x1800000000-0x180fffffff 64bit pref]: assigned
[    5.090517] amdgpu 0001:03:00.0: BAR 2 [mem 0x1810000000-0x18101fffff 64bit pref]: assigned
[    5.090530] amdgpu 0001:03:00.0: amdgpu: VRAM: 16304M 0x0000008000000000 - 0x00000083FAFFFFFF (16304M used)
[    5.090535] amdgpu 0001:03:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[    5.090540] [drm] Detected VRAM RAM=16304M, BAR=256M
[    5.090543] [drm] RAM width 256bits GDDR6
[    5.090668] [drm] amdgpu: 16304M of VRAM memory ready
[    5.090675] [drm] amdgpu: 8001M of GTT memory ready.
[    5.090703] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    5.090775] amdgpu 0001:03:00.0: amdgpu: PCIE GART of 512M enabled (table at 0x0000008000000000).
[    5.094190] [drm] Loading DMUB firmware via PSP: version=0x0A000400
[    5.105888] Bluetooth: hci0: BCM: chip id 107
[    5.106088] Bluetooth: hci0: BCM: features 0x2f
[    5.107158] Bluetooth: hci0: BCM4345C0
[    5.107162] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000
[    5.107718] Bluetooth: hci0: BCM4345C0 'brcm/BCM4345C0.hcd' Patch
[    5.154851] amdgpu 0001:03:00.0: amdgpu: Found VCN firmware Version ENC: 1.9 DEC: 9 VEP: 0 Revision: 38
[    5.376590] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.376773] Bluetooth: BNEP filters: protocol multicast
[    5.376788] Bluetooth: BNEP socket layer initialized
[    5.400274] Adding 524284k swap on /var/swap.  Priority:-2 extents:3 across:5185536k SS
[    5.406657] amdgpu 0001:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
[    5.406677] amdgpu 0001:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[    5.406717] amdgpu 0001:03:00.0: amdgpu: smu driver if version = 0x0000002e, smu fw if version = 0x00000032, smu fw program = 0, smu fw version = 0x00684a00 (104.74.0)
[    5.406876] amdgpu 0001:03:00.0: amdgpu: SMU driver if version not matched
[    5.434235] amdgpu 0001:03:00.0: amdgpu: SMU is initialized successfully!
[    5.436734] [drm] Display Core v3.2.325 initialized on DCN 4.0.1
[    5.436763] [drm] DP-HDMI FRL PCON supported
[    5.441501] [drm] DMUB hardware initialized: version=0x0A000400
[    5.495696] amdgpu 0001:03:00.0: amdgpu: program CP_MES_CNTL : 0x4000000
[    5.495714] amdgpu 0001:03:00.0: amdgpu: program CP_MES_CNTL : 0xc000000
[    5.505368] amdgpu 0001:03:00.0: amdgpu: SE 4, SH per SE 2, CU per SH 8, active_cu_number 64
[    5.505383] amdgpu 0001:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[    5.505390] amdgpu 0001:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[    5.505394] amdgpu 0001:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[    5.505398] amdgpu 0001:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 6 on hub 0
[    5.505402] amdgpu 0001:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 7 on hub 0
[    5.505406] amdgpu 0001:03:00.0: amdgpu: ring sdma0 uses VM inv eng 8 on hub 0
[    5.505409] amdgpu 0001:03:00.0: amdgpu: ring sdma1 uses VM inv eng 9 on hub 0
[    5.505413] amdgpu 0001:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[    5.505417] amdgpu 0001:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 8
[    5.509554] [drm] ring gfx_32768.1.1 was added
[    5.509781] [drm] ring compute_32768.2.2 was added
[    5.509998] [drm] ring sdma_32768.3.3 was added
[    5.510050] [drm] ring gfx_32768.1.1 ib test pass
[    5.510112] [drm] ring compute_32768.2.2 ib test pass
[    5.510163] [drm] ring sdma_32768.3.3 ib test pass
[    5.512801] amdgpu 0001:03:00.0: amdgpu: Using BACO for runtime pm
[    5.513611] [drm] Initialized amdgpu 3.63.0 for 0001:03:00.0 on minor 2
[    5.658951] macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Broadcom BCM54213PE] (irq=POLL)
[    5.659388] macb 1f00100000.ethernet eth0: configuring for phy/rgmii-id link mode
[    5.662726] macb 1f00100000.ethernet: gem-ptp-timer ptp clock registered.
[    5.672893] [drm] pre_validate_dsc:1627 MST_DSC dsc precompute is not needed
[    5.698288] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[    5.733414] Console: switching to colour frame buffer device 480x135
[    5.754934] amdgpu 0001:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device

I wonder if the blank screen is because I had built both radeon and amdgpu into my latest kernel build, for testing older AMD cards? I've re-built the kernel again without it enabled (also removing nouveau) to see if there's some issue there.

geerlingguy avatar Sep 29 '25 21:09 geerlingguy

Ah, looking more closely, there is a blinking cursor up in the top left. So... maybe I need to disable the built-in iGPU like on Intel Arc cards? Testing that now, by editing /boot/firmware/config.txt and commenting dtoverlay=vc4-kms-v3d, then rebooting.

That didn't help, though. Still the blinking cursor on the blank screen. Also tried a DisplayPort output into my monitor instead of HDMI. Exact same thing.

If I hit Alt + F2 I get to text mode and can log in.

Then startx, and it starts the GUI. Why is it not doing it automatically??? (That works but is not the labwc environment.)

When I try running labwc, I get:

'gfx1201' is not a recognized processor for this target (ignoring processor)
'gfx1201' is not a recognized processor for this target (ignoring processor)
amd: LLVM doesn't support gfx1201, bailing out...
libEGL warning: egl: failed to create dri2 screen
00:00:00.045 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
'gfx1201' is not a recognized processor for this target (ignoring processor)
'gfx1201' is not a recognized processor for this target (ignoring processor)
amd: LLVM doesn't support gfx1201, bailing out...
libEGL warning: egl: failed to create dri2 screen
00:00:00.051 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
_amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
libEGL warning: egl: failed to create dri2 screen
00:00:00.056 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
00:00:00.056 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "eglInitialize"
00:00:00.056 [ERROR] [render/egl.c:268] Failed to initialize EGL
00:00:00.056 [ERROR] [render/egl.c:571] Failed to initialize EGL context
00:00:00.056 [ERROR] [render/gles2/renderer.c:487] Could not initialize EGL
00:00:00.056 [ERROR] [render/wlr_renderer.c:296] Could not initialize renderer
00:00:00.056 [ERROR] [../src/server.c:507] unable to create renderer

And Vulkan sees the device (vulkaninfo --summary > vulkan.txt):

==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.239


Instance Extensions: count = 23
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_EXT_headless_surface                : extension revision 1
VK_EXT_surface_maintenance1            : extension revision 1
VK_EXT_swapchain_colorspace            : extension revision 4
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_portability_enumeration         : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_wayland_surface                 : extension revision 6
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6

Instance Layers: count = 2
--------------------------
VK_LAYER_MESA_device_select Linux device selection layer 1.3.211  version 1
VK_LAYER_MESA_overlay       Mesa Overlay layer           1.3.211  version 1

Devices:
========
GPU0:
	apiVersion         = 1.3.289
	driverVersion      = 24.2.8
	vendorID           = 0x1002
	deviceID           = 0x7550
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = AMD Radeon Graphics (RADV GFX1201)
	driverID           = DRIVER_ID_MESA_RADV
	driverName         = radv
	driverInfo         = Mesa 24.2.8-1~bpo12+rpt4
	conformanceVersion = 1.3.0.0
	deviceUUID         = 01000000-0300-0000-0000-000000000000
	driverUUID         = 414d442d-4d45-5341-2d44-525600000000
GPU1:
	apiVersion         = 1.3.289
	driverVersion      = 0.0.1
	vendorID           = 0x10005
	deviceID           = 0x0000
	deviceType         = PHYSICAL_DEVICE_TYPE_CPU
	deviceName         = llvmpipe (LLVM 15.0.6, 128 bits)
	driverID           = DRIVER_ID_MESA_LLVMPIPE
	driverName         = llvmpipe
	driverInfo         = Mesa 24.2.8-1~bpo12+rpt4 (LLVM 15.0.6)
	conformanceVersion = 1.3.1.1
	deviceUUID         = 6d657361-3234-2e32-2e38-2d317e627000
	driverUUID         = 6c6c766d-7069-7065-5555-494400000000

geerlingguy avatar Sep 29 '25 22:09 geerlingguy

Card is on the site here, btw: https://pipci.jeffgeerling.com/cards_gpu/amd-radeon-rx-9070-xt.html

geerlingguy avatar Sep 29 '25 22:09 geerlingguy

Mesa version default in Bookworm:

$ vulkaninfo | grep "Mesa"
'DISPLAY' environment variable not set... skipping surface info
VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.3.211, layer version 1:
	driverInfo      = Mesa 24.2.8-1~bpo12+rpt4
	driverInfo                                           = Mesa 24.2.8-1~bpo12+rpt4
	driverInfo      = Mesa 24.2.8-1~bpo12+rpt4 (LLVM 15.0.6)
	driverInfo                                           = Mesa 24.2.8-1~bpo12+rpt4 (LLVM 15.0.6)

I'm upgrading Mesa, to see if that helps.

Add the following lines inside /etc/apt/sources.list:

deb https://deb.debian.org/debian/ bookworm-backports main contrib non-free
deb-src https://deb.debian.org/debian/ bookworm-backports main contrib non-free

Run sudo apt update, then install the updated mesa version:

sudo apt install -t bookworm-backports mesa-vulkan-drivers

After a reboot, the new Mesa version is:

$ vulkaninfo | grep "Mesa"
VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.4.303, layer version 1:
	driverInfo      = Mesa 25.0.7-2~bpo12+1
	driverInfo                                           = Mesa 25.0.7-2~bpo12+1
	driverInfo      = Mesa 25.0.7-2~bpo12+1 (LLVM 15.0.6)
	driverInfo                                           = Mesa 25.0.7-2~bpo12+1 (LLVM 15.0.6)

And what's better... it works!

Image

geerlingguy avatar Sep 29 '25 22:09 geerlingguy

Running glmark2-es2-wayland gives tons of errors like:

[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;:'gfx1201' is not a recognized processor for this target (ignoring processor)
'gfx1201' is not a recognized processor for this target (ignoring processor)
amd: LLVM doesn't support gfx1201, bailing out...
 FPS: 10299 FrameTime: 0.097 ms

But it does run.

geerlingguy avatar Sep 29 '25 22:09 geerlingguy

Total system power draw while running GravityMark is around 266W, not bad (idle power around 15W, also pretty good compared to many other older graphics cards I've tested):

Image

Result:

Image

geerlingguy avatar Sep 30 '25 14:09 geerlingguy

Re-testing on kernel rpi-6.17.y with the nightly Debian Trixie image, I got everything going pretty quickly.

dmesg output:

[    5.425018] [drm] amdgpu kernel modesetting enabled.
[    5.425284] amdgpu 0001:03:00.0: enabling device (0000 -> 0002)
[    5.425302] amdgpu 0001:03:00.0: amdgpu: initializing kernel modesetting (IP DISCOVERY 0x1002:0x7550 0x148C:0x2435 0xC0).
[    5.425334] amdgpu 0001:03:00.0: amdgpu: register mmio base: 0x80000000
[    5.425338] amdgpu 0001:03:00.0: amdgpu: register mmio size: 524288
[    5.438879] amdgpu 0001:03:00.0: amdgpu: detected ip block number 0 <soc24_common>
[    5.438899] amdgpu 0001:03:00.0: amdgpu: detected ip block number 1 <gmc_v12_0>
[    5.438933] amdgpu 0001:03:00.0: amdgpu: detected ip block number 2 <ih_v7_0>
[    5.438947] amdgpu 0001:03:00.0: amdgpu: detected ip block number 3 <psp>
[    5.438958] amdgpu 0001:03:00.0: amdgpu: detected ip block number 4 <smu>
[    5.438970] amdgpu 0001:03:00.0: amdgpu: detected ip block number 5 <dm>
[    5.438981] amdgpu 0001:03:00.0: amdgpu: detected ip block number 6 <gfx_v12_0>
[    5.438991] amdgpu 0001:03:00.0: amdgpu: detected ip block number 7 <sdma_v7_0>
[    5.439003] amdgpu 0001:03:00.0: amdgpu: detected ip block number 8 <vcn_v5_0_0>
[    5.439015] amdgpu 0001:03:00.0: amdgpu: detected ip block number 9 <jpeg_v5_0_0>
[    5.439025] amdgpu 0001:03:00.0: amdgpu: detected ip block number 10 <mes_v12_0>
[    5.445052] Bluetooth: hci0: BCM: chip id 107
[    5.446401] Bluetooth: hci0: BCM: features 0x2f
[    5.448012] Bluetooth: hci0: BCM4345C0
[    5.448021] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000
[    5.449294] Bluetooth: hci0: BCM4345C0 'brcm/BCM4345C0.raspberrypi,500.hcd' Patch
[    5.449475] amdgpu 0001:03:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    5.449488] amdgpu: ATOM BIOS: 113-EXT112333-100
[    5.476405] amdgpu 0001:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[    5.476439] amdgpu 0001:03:00.0: amdgpu: PCIE atomic ops is not supported
[    5.476904] amdgpu 0001:03:00.0: amdgpu: GPU posting now...
[    5.477629] amdgpu 0001:03:00.0: amdgpu: MEM ECC is not presented.
[    5.478251] amdgpu 0001:03:00.0: amdgpu: SRAM ECC is not presented.
[    5.478576] amdgpu 0001:03:00.0: amdgpu: vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[    5.479054] amdgpu 0001:03:00.0: BAR 2 [mem 0x1810000000-0x18101fffff 64bit pref]: releasing
[    5.479300] amdgpu 0001:03:00.0: BAR 0 [mem 0x1800000000-0x180fffffff 64bit pref]: releasing
[    5.479529] pcieport 0001:02:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.479742] pcieport 0001:01:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.479953] pcieport 0001:00:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[    5.480165] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480365] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480376] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480379] pcieport 0001:00:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480383] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480386] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480388] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480391] pcieport 0001:01:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480394] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480397] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480399] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: can't assign; no space
[    5.480402] pcieport 0001:02:00.0: bridge window [mem size 0x600000000 64bit pref]: failed to assign
[    5.480406] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[    5.480408] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[    5.480412] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[    5.480414] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[    5.480417] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[    5.480420] amdgpu 0001:03:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[    5.480422] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[    5.480424] amdgpu 0001:03:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[    5.480428] pcieport 0001:00:00.0: PCI bridge to [bus 01-03]
[    5.480434] pcieport 0001:00:00.0:   bridge window [mem 0x1b80000000-0x1b801fffff]
[    5.480439] pcieport 0001:00:00.0: PCI bridge to [bus 01-03]
[    5.480458] pcieport 0001:00:00.0:   bridge window [mem 0x1b80000000-0x1b801fffff]
[    5.480462] pcieport 0001:00:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.480465] pcieport 0001:01:00.0: PCI bridge to [bus 02-03]
[    5.480474] pcieport 0001:01:00.0:   bridge window [mem 0x1b80000000-0x1b800fffff]
[    5.480479] pcieport 0001:01:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.480486] pcieport 0001:02:00.0: PCI bridge to [bus 03]
[    5.480491] pcieport 0001:02:00.0:   bridge window [mem 0x1b80000000-0x1b800fffff]
[    5.480496] pcieport 0001:02:00.0:   bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]
[    5.480507] amdgpu 0001:03:00.0: amdgpu: Not enough PCI address space for a large BAR.
[    5.480512] amdgpu 0001:03:00.0: BAR 0 [mem 0x1800000000-0x180fffffff 64bit pref]: assigned
[    5.480523] amdgpu 0001:03:00.0: BAR 2 [mem 0x1810000000-0x18101fffff 64bit pref]: assigned
[    5.480538] amdgpu 0001:03:00.0: amdgpu: VRAM: 16304M 0x0000008000000000 - 0x00000083FAFFFFFF (16304M used)
[    5.480542] amdgpu 0001:03:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[    5.480546] [drm] Detected VRAM RAM=16304M, BAR=256M
[    5.480548] [drm] RAM width 256bits GDDR6
[    5.482720] amdgpu 0001:03:00.0: amdgpu: amdgpu: 16304M of VRAM memory ready
[    5.482732] amdgpu 0001:03:00.0: amdgpu: amdgpu: 8001M of GTT memory ready.
[    5.482770] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    5.482861] amdgpu 0001:03:00.0: amdgpu: PCIE GART of 512M enabled (table at 0x0000008000000000).
[    5.487942] amdgpu 0001:03:00.0: amdgpu: [drm] Loading DMUB firmware via PSP: version=0x0000F501
[    5.553151] amdgpu 0001:03:00.0: amdgpu: Found VCN firmware Version ENC: 1.4 DEC: 9 VEP: 0 Revision: 1
[    5.781080] amdgpu 0001:03:00.0: amdgpu: RAS: optional ras ta ucode is not available
[    5.784584] amdgpu 0001:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
[    5.784588] amdgpu 0001:03:00.0: amdgpu: SECUREDISPLAY: optional securedisplay ta ucode is not available
[    5.784623] amdgpu 0001:03:00.0: amdgpu: smu driver if version = 0x0000002e, smu fw if version = 0x00000031, smu fw program = 0, smu fw version = 0x00683900 (104.57.0)
[    5.784628] amdgpu 0001:03:00.0: amdgpu: SMU driver if version not matched
[    5.814124] amdgpu 0001:03:00.0: amdgpu: SMU is initialized successfully!
[    5.816241] amdgpu 0001:03:00.0: amdgpu: [drm] Display Core v3.2.340 initialized on DCN 4.0.1
[    5.816255] amdgpu 0001:03:00.0: amdgpu: [drm] DP-HDMI FRL PCON supported
[    5.820496] amdgpu 0001:03:00.0: amdgpu: [drm] DMUB hardware initialized: version=0x0000F501
[    6.023573] amdgpu 0001:03:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[    6.023721] amdgpu 0001:03:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[    6.023845] amdgpu 0001:03:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[    6.023914] amdgpu 0001:03:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[    6.024333] amdgpu 0001:03:00.0: amdgpu: program CP_MES_CNTL : 0x4000000
[    6.024339] amdgpu 0001:03:00.0: amdgpu: program CP_MES_CNTL : 0xc000000
[    6.032968] amdgpu 0001:03:00.0: amdgpu: SE 4, SH per SE 2, CU per SH 8, active_cu_number 64
[    6.032974] amdgpu 0001:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[    6.032978] amdgpu 0001:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[    6.032981] amdgpu 0001:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[    6.032984] amdgpu 0001:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 6 on hub 0
[    6.032986] amdgpu 0001:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 7 on hub 0
[    6.032988] amdgpu 0001:03:00.0: amdgpu: ring sdma0 uses VM inv eng 8 on hub 0
[    6.032991] amdgpu 0001:03:00.0: amdgpu: ring sdma1 uses VM inv eng 9 on hub 0
[    6.032994] amdgpu 0001:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[    6.032997] amdgpu 0001:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 8
[    6.036673] amdgpu 0001:03:00.0: amdgpu: Using BACO for runtime pm
[    6.037103] [drm] Initialized amdgpu 3.64.0 for 0001:03:00.0 on minor 2
[    6.108625] Console: switching to colour frame buffer device 480x135
[    6.108658] amdgpu 0001:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device

I also did not need to install a later version of Mesa, so I'm going to update the instructions in the top post to note that change.

$ DISPLAY=:0 glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon Graphics (radeonsi, gfx1201, ACO, DRM 3.64, 6.17.0-v8-4k-gpu+) (0x7550)
    Version: 25.0.7
    Accelerated: yes
    Video memory: 16384MB
    Unified memory: no

What's odd is I only got a score of 41,193 (re-tested 3x) with this Trixie setup, compared to 56,944 under Bookworm with Mesa compiled from source. That seems like a pretty hefty performance delta!

Image

geerlingguy avatar Oct 01 '25 19:10 geerlingguy

Also re-testing LLM performance with llama 3.2:3B, I am getting slightly reduced performance (see original benchmarks):

model size params backend ngl test t/s
llama 3B Q4_K - Medium 1.87 GiB 3.21 B Vulkan 99 pp512 1967.33 ± 4.02
llama 3B Q4_K - Medium 1.87 GiB 3.21 B Vulkan 99 pp4096 1679.32 ± 2.86
llama 3B Q4_K - Medium 1.87 GiB 3.21 B Vulkan 99 tg128 76.49 ± 0.27
llama 3B Q4_K - Medium 1.87 GiB 3.21 B Vulkan 99 pp4096+tg128 916.63 ± 2.49

So maybe some improvements that are in the latest version of Mesa that aren't in the version shipping with Trixie? I don't think so, as I was running the backports version, which I just confirmed is the same major/minor release.

I also triple-checked to ensure dtparam=pciex1_gen=3 is set in /boot/firmware/config.txt; just another variable I wanted to ensure was consistent.

geerlingguy avatar Oct 01 '25 20:10 geerlingguy