Details On The PS4's Radeon GPU With Linux Driver Modifications
At this week's Chaos Communication Congress (33C3) one of the talks interesting us is on console hacking, due to the PlayStation 4 making use of a Radeon GPU and the work done to modify the open-source Radeon Linux GPU driver to run on the PS4.
Hector Martin was the presenter for Console Hacking 2016 where he talked about his PlayStation 4 hacking and going from Sony's FreeBSD-based operating system to the lengthy process of getting Linux running on the PS4 and being able to make use of the Radeon APU.
The slides from the presentation can be found here. A Phoronix reader also shared his notes of the talk via this forum thread.
The PlayStation 4 uses a Sea Islands derived graphics processor. But even with the open-source Radeon GPU driver code on Linux, it was still quite an effort getting the graphics working. The presenter made it very clear that contrary to the belief of some, AMD has not been publishing register documentation for recent GPUs. And aside from the lack of proper documentation, when digging through the code there are undocumented areas and magic numbers.
Aside from insufficient documentation, the use of an external HDMI encoder and binary firmware blobs also caused bring-up issues of the hardware. There are also issues with writing GPU commands having issues when going via the command processor and thus needing to write from the CPU for now.
The developer has published some new reverse engineering tools for Radeon graphics, including for disassembly of the microcode/firmware.
Check out all of the links if you want to learn more.
Hector Martin was the presenter for Console Hacking 2016 where he talked about his PlayStation 4 hacking and going from Sony's FreeBSD-based operating system to the lengthy process of getting Linux running on the PS4 and being able to make use of the Radeon APU.
The slides from the presentation can be found here. A Phoronix reader also shared his notes of the talk via this forum thread.
The PlayStation 4 uses a Sea Islands derived graphics processor. But even with the open-source Radeon GPU driver code on Linux, it was still quite an effort getting the graphics working. The presenter made it very clear that contrary to the belief of some, AMD has not been publishing register documentation for recent GPUs. And aside from the lack of proper documentation, when digging through the code there are undocumented areas and magic numbers.
Aside from insufficient documentation, the use of an external HDMI encoder and binary firmware blobs also caused bring-up issues of the hardware. There are also issues with writing GPU commands having issues when going via the command processor and thus needing to write from the CPU for now.
The developer has published some new reverse engineering tools for Radeon graphics, including for disassembly of the microcode/firmware.
This is a disassembler for the Radeon "microcode" processor, which seems to be internally called F32 (even though it's a 64-bit processor). This disassembler can handle firmware for CE, ME, MEC, PFP, RLC in the CI (Sea Islands) GPU series and probably others. SDMA uses a related but incompatible variant, so will not work.
Check out all of the links if you want to learn more.
35 Comments