At least the ME microcode for R600 (and probably earlier CP microcode) is simple code with separate instructions for reading or writing registers, Rob Clark of Freedreno partially reverse engineered the instruction format. Newer Radeons have different ISAs. (ME is microengine, CP is control processor which has e.g. ME; it's not related to the Intel management engine used for AMT.)

Lack of existing free compilers is not an issue here: it needs a very simple assembler and some ISA documentation. It's not like CPU microcode or FPGA data.

Some time-consuming work is needed to reverse engineer the ISA and replace the microcode, all interested people that I know have other projects and do not have enough free time to do this.

(There was an important kernel change regarding microcode dependency: now modesetting won't work on recent Radeons without the microcode, since the driver uses features that require it. I don't know the details of these changes.)

Reply via email to