UMR fails to read any virtual memory on Hotpink Bonefish
On my RX 7600S (PCI vendor:device ID 1002:7480
), any functionality that accesses virtual memory (for example program disassembly in wave dumps) fails. With -O verbose
, I usually get something like the following:
=== VM Decoding of address 7@0x80010008e000 ===
mmGCVM_CONTEXT7_PAGE_TABLE_START_ADDR_LO32=0x0
mmGCVM_CONTEXT7_PAGE_TABLE_START_ADDR_HI32=0x0
mmGCVM_CONTEXT7_PAGE_TABLE_END_ADDR_LO32=0xffffffff
mmGCVM_CONTEXT7_PAGE_TABLE_END_ADDR_HI32=0xf
mmGCVM_CONTEXT7_PAGE_TABLE_BASE_ADDR_LO32=0x0
mmGCVM_CONTEXT7_PAGE_TABLE_BASE_ADDR_HI32=0x0
mmGCVM_CONTEXT7_CNTL=0x0
VMID7.page_table_block_size=0
VMID7.page_table_depth=0
mmVGA_MEMORY_BASE_ADDRESS=0x0
mmVGA_MEMORY_BASE_ADDRESS_HIGH=0x0
mmMC_VM_FB_OFFSET=0x0
mmGCMC_VM_MX_L1_TLB_CNTL=0x0
mmGCMC_VM_SYSTEM_APERTURE_LOW_ADDR=0x0
mmGCMC_VM_SYSTEM_APERTURE_HIGH_ADDR=0x0
mmGCMC_VM_FB_LOCATION_BASE=0x1fffe01
mmGCMC_VM_FB_LOCATION_TOP=0x1fffe07
mmGCMC_VM_AGP_BASE=0x0
mmGCMC_VM_AGP_BOT=0x0
mmGCMC_VM_AGP_TOP=0x0
PDE=0x0000000000000000, VA=0x80010008e000, PBA==0x000000000000, V=0, S=0, C=0, MTYPE=0, P=0, FS=0, A=0, Y=0
I'm pretty sure the GCVM_CONTEXTx_*
registers are invalid. I've also had cases where the PAGE_TABLE_BASE_ADDR
was non-zero, but reading from that physical address failed with ENXIO
, which, upon reading AMDGPU source, apparently happens when the address is outside the range of physical VRAM.
I've dumped GCVM_CONTEXT*_CNTL
while running some apps, and it seemed like the value of all CNTL
registers were always 0
. Using PCI with -O use_pci
didn't change the result.