JAISPI: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(29 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Wikify}}
{{Wikify}}


 
Someone should crosscheck the spanish and realworld into english for wiki here, please.
Someone should translate the spanish resources into english for wiki here, please.


== JAISPI ==
== JAISPI ==
Line 19: Line 18:
** Programming
** Programming
** Full Erase
** Full Erase
=== Options ===
  -i /dev/spidevX.X            Get ID from flash
  -e /dev/spidevX.X            Erase entire flash
  -r file.bin /dev/spidevX.X    Read entire flash to file
  -p file.bin /dev/spidevX.X    Only write blocks differences from file
  -v file.bin /dev/spidevX.X    Verify blocks with file
==== Get ID ====
-i: Displays information of the flash.
#jaispi -i /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
==== Erase ====
-e: Clears all flash - Average time: 1min, 30sec.
#jaispi -e /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Erasing blocks...
Done!
==== Read ====
-r: Makes a full dump of the flash - Average time: 35sec.
#jaispi -r DUMP.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Reading...
0x02000000
Done!
==== Program ====
-p: Write to flash only the changed sectors - Average time: 1min 30sec
#jaispi -p Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Starting...
0x02000000 -> 8192 Sectors written
Done!
==== Verify ====
-v: Verify the contents of the flash with the filename - Average time: 35sec.
#jaispi -v Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Checking...
0x02000000 -> 0 Different sectors
Done!


=== Installation Instructions ===
=== Installation Instructions ===


==== Materials Required ====
==== Materials Required ====
* 1x RaspberryPi (raspberrypi.org)
* 1x [[Raspberry Pi]] (see [[Raspberry_Pi#Where_to_buy.3F|here for where to buy]])
* 1x SD Memory
* 1x SD Memory (for Raspbian, a 4GB minimal is recommended)
* 1x Integrated [[MX25L25635FMI-10G]] (Main Memory PS4)
* 1x PS4 Serial Flash [[MX25L25635FMI-10G]] desoldered from console


==== Downloads ====
==== Downloads ====
Line 78: Line 34:


<div style="float:right">[[File:MX25L1006E Pinout.png|200px|thumb|left|[[MX25L1006E]] Pinout]]<br />[[File:25X10CLYA1 Pinout.png|200px|thumb|left|[[25X10CLYA1]] Pinout]]<br />[[File:MX25L25635FMI-10G Pinout.png|200px|thumb|left|[[MX25L25635FMI-10G]] Pinout]]<br />
<div style="float:right">[[File:MX25L1006E Pinout.png|200px|thumb|left|[[MX25L1006E]] Pinout]]<br />[[File:25X10CLYA1 Pinout.png|200px|thumb|left|[[25X10CLYA1]] Pinout]]<br />[[File:MX25L25635FMI-10G Pinout.png|200px|thumb|left|[[MX25L25635FMI-10G]] Pinout]]<br />
[[File:Raspberry-pi-rev-1-gpio-pin-out1.jpg|200px|thumb|left|Raspberry Pi GPIO pinout]]</div>
[[File:Raspberry-pi-rev-1-gpio-pin-out1.jpg|200px|thumb|left|Raspberry Pi GPIO pinout]]<br />[[File:Raspberry Pi - model B plus - gpio.png|200px|thumb|left|Raspberry Pi model B+ GPIO pinout]]</div>
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
|- bgcolor="#cccccc"
|- bgcolor="#cccccc"
Line 118: Line 74:


Use short wires, esp. if you are not adding the 0.1{{micro}}F capacitor between ground and vcc as close as possible to the chip
Use short wires, esp. if you are not adding the 0.1{{micro}}F capacitor between ground and vcc as close as possible to the chip
[http://www.raspberrypi.org/introducing-raspberry-pi-model-b-plus/ newer Raspberry Pi model B+] and Raspberry Pi model A+ both use same pinout for the first 26 pinheaders as the previous nonplus model, so it should work on that as well.




=== Installation ===
=== Installation ===
Run win32diskimage.
File-In image select the image downloaded and decompressed Raspbian.
- In Device select the drive where the SD memory is.
We Power-Write.


We insert the SD in Raspberry and fed by the USB cable. After two minutes, run Putty.
==== Installing Raspbian ====
-In Host Name put: raspberrypi
Run win32diskimage (if you use linux you can use dd)<br />
-De not work well the previous step, go to the router and find the IP assigned to your RaspberryPi.
[[File:Win32DiskImager.png]]
-We marked SSH.
# In "Image file" select the downloaded and decompressed Raspbian image (''2013-09-25-wheezy-raspbian.img'' at the time of this writing)
-We Power Open.
# In "Device" select the drive where the SD memory is.
# Select "Write".
After finished writing, put the SD card in the Raspberry Pi and power it up by inserting the USB cable.
 
==== Remote Shell into Raspbian ====
Two minutes after booting up the Raspberry Pi, run Putty.<br />
[[File:Putty.png]]
# In Host Name put: raspberrypi<br />If this doesn't works properly, go to the router, find the IP assigned to your Raspberry Pi and use that instead,
# Select SSH (or Raspberry and Putty support TTL https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/overview)
# Select Open
 
==== Installing Application ====
It will request a Login. According Raspbian the user is "pi" and the password "raspberry" (Both without quotes).


We request Login. According Raspbian the user is "pi" and the password "raspberry" (Both without quotes).
Insert the following commands:
We insert the following commands:
{{keyboard|content=
{{keyboard|content=
sudo-s
sudo -s
cd /bin
cd /bin
wget http://jaicrab.org/Ps4/Tools/JAISPI/jaispi
wget http://jaicrab.org/Ps4/Tools/JAISPI/jaispi
chmod +x jaispi
chmod +x jaispi
echo "# blacklist spi-bcm2708"> / etc / modprobe.d / blacklist.conf raspi-
echo "#blacklist spi-bcm2708" > /etc/modprobe.d/raspi-blacklist.conf
echo "blacklist i2c-bcm2708" >> / etc / modprobe.d / blacklist.conf raspi-
echo "blacklist i2c-bcm2708" >> /etc/modprobe.d/raspi-blacklist.conf
reboot
reboot
}}
}}


Installation is complete. By Putty you can access the RaspberryPi. To run the command jaispi need to be root (sudo-s):
Installation is complete. By Putty you can access the Raspberry Pi. To run the command jaispi you need to be root (sudo-s):
{{keyboard|content=
{{keyboard|content=
# sudo-s
# sudo -s
# Jaispi-i / dev/spidev0.0
# Jaispi -i / dev/spidev0.0
}}
}}
=== Options ===
  -i /dev/spidevX.X            Get ID from flash
  -r file.bin /dev/spidevX.X    Read entire flash to file
  -e /dev/spidevX.X            Erase entire flash
  -p file.bin /dev/spidevX.X    Only write blocks differences from file
  -v file.bin /dev/spidevX.X    Verify blocks with file
==== Get ID ====
-i: Displays information of the flash.
#jaispi -i /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
==== Read ====
-r: Makes a full dump of the flash (Average time: 35sec)
#jaispi -r DUMP.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Reading...
0x02000000
Done!
==== Erase ====
-e: Clears all flash (Average time: 1min, 30sec)
#jaispi -e /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Erasing blocks...
Done!
==== Program ====
-p: Write to flash only the changed sectors (Average time: 1min 30sec)
#jaispi -p Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Starting...
0x02000000 -> 8192 Sectors written
Done!
==== Verify ====
-v: Compares the flash contents with a file in PC (Average time: 35sec)
#jaispi -v Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Checking...
0x02000000 -> 0 Different sectors
Done!
=== JAISPI / PS4 NOR Chip Dumping personal experience by AlphaHack ===
PS4 NOR Chip Dumping Process Documentation
* [https://www.mediafire.com/?6jcpwd7mzw6fnsk as PDF]
* [http://playstationhax.it/forums/topic/1749-ps4-nor-chip-dumping-process-documentation/ as forumtopic]




{{Hardware Modification}}
{{Hardware Modification}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Revision as of 22:15, 2 June 2015

Someone should crosscheck the spanish and realworld into english for wiki here, please.

JAISPI

JAISPI - Raspberry Pi SPI flasher for PS4

Source:

JAISPI - Utility to read and write to the main memory (MX25L25635FMI-10G) of PS4 with the Raspberry Pi through the SPI protocol.

Changelog

Installation Instructions

Materials Required

Downloads

Pinout

MX25L1006E Pinout

25X10CLYA1 Pinout


Raspberry Pi GPIO pinout

Raspberry Pi model B+ GPIO pinout
8-Pin 16-pin Usage Raspberry Pi
JAISPI
Description
- 1 SIO3 NC 8pin: Not Available - not used / 16pin: Serial Data Input & Output (for 4xI/O read mode)
8 2 VCC 17 +3V DC Power Supply
7 3 HOLD#/RESET# NC 8pin: Hold, to pause the device without deselecting the device / 16pin: Hardware Reset Pin Active low
- 4 NC NC No Connection
- 5 NC NC No Connection
- 6 NC NC No Connection
1 7 CS# 24 Chip Select
2 8 SO/SIO1 21 Serial Data Output (for 1 x I/O) or Serial Data Input & Output (for 2x I/O or 4x I/O read mode)
3 9 WP#/SIO2 25 Write Protection: connect to GND or Serial Data Input & Output (for 4x I/O read mode)
4 10 GND 25 Ground
- 11 NC NC No Connection
- 12 NC NC No Connection
- 13 NC NC No Connection
- 14 NC NC No Connection
5 15 SI/SIO0 19 Serial Data Input (for 1 x I/O) or Serial Data Input & Output (for 2x I/O or 4x I/O read mode)
6 16 SCLK 23 Clock Input

Use short wires, esp. if you are not adding the 0.1µF capacitor between ground and vcc as close as possible to the chip

newer Raspberry Pi model B+ and Raspberry Pi model A+ both use same pinout for the first 26 pinheaders as the previous nonplus model, so it should work on that as well.


Installation

Installing Raspbian

Run win32diskimage (if you use linux you can use dd)
Win32DiskImager.png

  1. In "Image file" select the downloaded and decompressed Raspbian image (2013-09-25-wheezy-raspbian.img at the time of this writing)
  2. In "Device" select the drive where the SD memory is.
  3. Select "Write".

After finished writing, put the SD card in the Raspberry Pi and power it up by inserting the USB cable.

Remote Shell into Raspbian

Two minutes after booting up the Raspberry Pi, run Putty.
Putty.png

  1. In Host Name put: raspberrypi
    If this doesn't works properly, go to the router, find the IP assigned to your Raspberry Pi and use that instead,
  2. Select SSH (or Raspberry and Putty support TTL https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/overview)
  3. Select Open

Installing Application

It will request a Login. According Raspbian the user is "pi" and the password "raspberry" (Both without quotes).

Insert the following commands:

Type This
sudo -s
cd /bin
wget http://jaicrab.org/Ps4/Tools/JAISPI/jaispi
chmod +x jaispi
echo "#blacklist spi-bcm2708" > /etc/modprobe.d/raspi-blacklist.conf
echo "blacklist i2c-bcm2708" >> /etc/modprobe.d/raspi-blacklist.conf
reboot

Installation is complete. By Putty you can access the Raspberry Pi. To run the command jaispi you need to be root (sudo-s):

Type This
# sudo -s
# Jaispi -i / dev/spidev0.0

Options

 -i /dev/spidevX.X             Get ID from flash
 -r file.bin /dev/spidevX.X    Read entire flash to file
 -e /dev/spidevX.X             Erase entire flash
 -p file.bin /dev/spidevX.X    Only write blocks differences from file
 -v file.bin /dev/spidevX.X    Verify blocks with file

Get ID

-i: Displays information of the flash.

#jaispi -i /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635

Read

-r: Makes a full dump of the flash (Average time: 35sec)

#jaispi -r DUMP.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Reading...
0x02000000
Done!

Erase

-e: Clears all flash (Average time: 1min, 30sec)

#jaispi -e /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Erasing blocks...
Done!

Program

-p: Write to flash only the changed sectors (Average time: 1min 30sec)

#jaispi -p Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Starting...
0x02000000 -> 8192 Sectors written
Done!

Verify

-v: Compares the flash contents with a file in PC (Average time: 35sec)

#jaispi -v Base.bin /dev/spidev0.0
JaiSpi v1.0
ID:  0xC22019 MX25L25635
Checking...
0x02000000 -> 0 Different sectors
Done!

JAISPI / PS4 NOR Chip Dumping personal experience by AlphaHack

PS4 NOR Chip Dumping Process Documentation