2013/8/2 Rafał Miłecki zajec5@gmail.com:
It doesn't allow playing anything yet, but was the most tricky part to RE (it's indirect access, so couldn't trace it by dumping registers). Now we just need to implement support for HDMI blocks.
In case someone wonders, there is how I figured out that registers offset and meaning:
WREG32(0x00005e00, 0x00000025); RREG32(0x00005e04); -> 0x00c00000
WREG32(0x00005e00, 0x00000125); WREG32(0x00005e04, 0x00c1005f);
RREG32(0x00012c5c); -> 0x00000000 AFMT_AUDIO_PACKET_CONTROL2 WREG32(0x00012c5c, 0x0000ff00); AFMT_AUDIO_PACKET_CONTROL2
WREG32(0x00005e00, 0x00000027); RREG32(0x00005e04); -> 0x00000000
WREG32(0x00005e00, 0x00000127); 0x00005f80? WREG32(0x00005e04, 0x00000040); 0x00005f80?
WREG32(0x00005e00, 0x000c3128); DESCRIPTOR0 WREG32(0x00005e04, 0x7f077f07); DESCRIPTOR0
WREG32(0x00005e00, 0x00000129); DESCRIPTOR1 WREG32(0x00005e04, 0x00500705); DESCRIPTOR1
WREG32(0x00005e00, 0x0000012a); DESCRIPTOR2 WREG32(0x00005e04, 0x00000000); DESCRIPTOR2
One thing I don't understand yet is why writing to register 0x28 requires that extra 0x000c3000. It doesn't happen with any other one.