Announcement

Collapse
No announcement yet.

PS4 running Linux, radeon driver

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PS4 running Linux, radeon driver

    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:
    • 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.

  • #2
    Originally posted by chithanh View Post
    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.
    You mean, what happened to xf86-video-avivo after a real driver came into existence which used the registers directly, and the developers of that real driver were kind enough to convince AMD to also release register documentation.

    You're welcome.

    Comment


    • #3
      Yeah well, whether AMD voluntarily released that documentation, or it had to be dragged out of them, or it became public due to leaks, probably matters a lot when it comes to politics.

      But I guess the above replacement of magic values with register names would have happened no matter which way the register documentation came out of AMD.

      Comment

      Working...
      X