Tuesday, July 26, 2011

Blue ray function lost after downgrade : some work


Lot of people have lost the function of blue ray reading after downgrading, I'm one of them ! I've tried many many things found on the internet to get it back, without success. So I decided to work on this, with only one goal : repairing blue ray drives.

So I have 2 PS3 with this problem (a 60Go and a 40Go) and I don't know what were the last BR read as I don't know where the boards came from. So after applying the association procedure, everything is read by the drive, except blue ray films, which seems to be a DRL problem.

As I read on the internet this DRL stuff might be handled in the EEPROM of the board, which is a SPI memory. So I said to myself, the first thing to do would be to watch what are the actions on this memory in order to identify something on this problem !

OK, so I worked on a SPI spy tool for several weeks, and I got it working.

Here it is :

The first step of this project is to SPY the SPI bus of this memory.
Next could be read and write functions, in order to examin the memory content and modify it.

But for now I have the SPY thing, this is how it works :

- A FPGA does all the job
- A first vhdl part make SPI deserialization of the SI and SO lines of the SPI bus, using the CS_n and CLK lines.
- Every 8 serial bits a 16 bits word is written in a FIFO, with D[15:8] = SI and D[7:0] = SO, a 16 bit is used to flag the rising edge of the CS_n to end some instructions.
- On the other side of the FIFO a got a microblaze microntroller in the FPGA. His job is to :
+ Watch FIFO to see if data is available.
+ READ the data and store it in a SRAM memory. This is mandatory as printing analyzed data on the UART is to slow and FIFO gets full and data are lost.
+ Read back the SRAM memory when SPI traffic is done, and analyze data flow to provide memory protocol transactions on the UART to see what is beeing done on the memory.
- Thanks to the hyperterminal log are done and memory access can be analyzed.

So for now I've got the following logs :

- 60Go power up sequence
- 40Go power up sequence
This is quite a lot of data as the controller of the board seems to get configuration parameters of the drive.

- 40Go RED blue ray insertion sequence
- 40Go TRON blue ray insertion sequence
This is where the controler shall get DRL informations to see if it can allow playback of the movie.

As I don't know how to put them on this blog, I can provide theses files if you make an email request for it.

Ok, back from holidays, but can't work on it !
Here, it is about 39°C in my house, so I will not use my PS3 to keep them alive !
It is supposed to rain in a couple of days, so....

Coming soon....

1 comment:

  1. Did you ever get further with this project? I've been having similar troubles (see my thread at http://www.ps3hax.net/showthread.php?t=30878) and would be interested in what you have discovered!

    If you think DRL is your problem, it is easy to confirm it with linux. You need linux with glevand's kernel and ps3dm-utils installed on the PS3. From linux you can read the HRL from the BD drive and also read the DRL stored in PS3 flash. If DRL is missing, knowing the HRL can help track down the movie with the corresponding DRL. I believe you can write the HRL and DRL from linux aswell but I haven't tested it.

    Most of the info is on ps3devwiki.com, but feel free to contact me at ps3hax.net if you have questions.