Based on page 127 of http://www.x.org/docs/AMD/R6xx_3D_Registers.pdf it should be possible to change the base address and size of the memory export.
However it doesn't make any difference if I change the address: the register always ends up having 0x10000000 after any resource mapping operation. Even if the register is set right before kernel execution the kernel still reads the original export buffer (created using calResAllocRemote).
Is there any other way to control the memory export address? I am using HD4850 and Catalyst 9.3 on Linux.
There is currently no way to change the location of the memory export address except for binding it to a different resource.