I'm writing a replacement for existing DRI infrastructure in linux* and I have several questions related to hardware.
1)where can I get description of HW registers for R800 and newest GPUs? There are register descriptions for R600-R700, but I cant find any documents for newer chips.
2)evegreen and newest gpus are dx11-compliant, that means they support "gpu preemption". However, I can't find any information related to this feature.
My driver will operate with per-application per-gpu "contexts", and will rely on ability to interrupt(possibly unrecoverable) a specified context.
Can I get any links to docs where preemption features are explained?
3)Recently, AMD published list of ACPI methods, some of them can be used to control display links, other can be used to manage power.
3.1)Some of ACPI methods seem to have parameters that override device's acpi object handle. ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST, for example, can adress device by pci id. Should it be evaluated with handle obtained by DEVICE_ACPI_HANDLE(&pci_device->dev), or I must use some other handle?
3.2)'radeon' driver seems to obtain atom bios image from first vga device which supports ATRM method. Is this correct behavior or I must obtain bios image with handle of device which will be accessed by this image?
3.3)how power management functions interoperate with atom bios functions? should they all be protected by single mutex?
3.4)in case of old GPUs, are there any unsupported methods I should be aware and not threat their absense as an unrecoverable error?
*why? because i'm developing my own os, because i support wayland, and want my programs to run without X, and because i'm very-very dissapointed with ugly hacks like DRM-prime.