So yesterday I went to marcan's 33C3 talk titled Console Hacking 2016,
The presenter spend a good part of the talk explaining how to get the radeon kernel/x/mesa driver running on the PS4. There were a few interesting details:
My commentary:
The existence of the DP/HDMI encoder may be due to hardware bugs, HDR, or HDCP, or as marcan thinks, just Sony being stupid.
Upstreaming may face the same problem as the reverse engineered gma500 driver, which has a lot of code in common with i915. But Intel refused to accept gma500 support code in i915, so that code had to be duplicated in a separate driver.
But I hope with the register documentation now public, it may at least be possible to replace some magic values in the driver with register names, similar to what happened with xf86-video-avivo.
The presenter spend a good part of the talk explaining how to get the radeon kernel/x/mesa driver running on the PS4. There were a few interesting details:
- The PS4 "Liverpool" APU is a GCN CI part (but that was known already since last year)
- The APU uses some kind of 31-bit DMA
- The APU has DisplayPort and HDMI outputs. The HDMI one is unused while the DisplayPort output is connected via a Panasonic DP/HDMI bridge to the PS4's HDMI port. Why that is is currently unclear.
- The hackers used BONAIRE register documentation that got leaked on the web to assist their driver modifications
- Linux radeon drivers contain far too many magic undocumented values to get the driver running without such documentation, and even so it was difficult
- The proprietary firmware was a problem, but they wrote a disassembler for CI F32 microcode which they extracted from the PS4's FreeBSD based OS. Incidentally this disassembler works for other same-generation Radeon firmware too.
- 3D acceleration works, but currently requires a workaround, submitting commands via the CPU.
- During Q&A they also talked about upstreaming their code, but I understood that in their conversations at least one developer from AMD acted hostile towards their work.
My commentary:
The existence of the DP/HDMI encoder may be due to hardware bugs, HDR, or HDCP, or as marcan thinks, just Sony being stupid.
Upstreaming may face the same problem as the reverse engineered gma500 driver, which has a lot of code in common with i915. But Intel refused to accept gma500 support code in i915, so that code had to be duplicated in a separate driver.
But I hope with the register documentation now public, it may at least be possible to replace some magic values in the driver with register names, similar to what happened with xf86-video-avivo.
Comment