Nand flasher command line has the following format.
IMPORTANT: before first use of the program, it is recommended (but not mandatory) that you backup your nands.
nandflasher [-options] function parameters
-d: Enables debug writing. It will write to the screen messages and errors not critical.
-n: Disables verification. By default, nandflasher verifies the writing. For speed reasons
you may want to enable this option. Also, in some bad UP installations, the verify won't work
properly, and it is mandatory to use this option.
Before explaining the functions, i will explain a bit about the "units".
There are three units available for UP (up nand, psp nand and file nand), and two in
psp-devolution (psp nand and file nand). The letters that identify these units are u, p and f.
If you specify the file nand, the LAST parameter of the command line must be a file path for
the nand dump (that may exist or maybe created, depending of the function).
Note the the psp nand cannot be written in the UP chip. It will actually attempt to write, and
it will partially do it, but the data written would be corrupt.
* cr source destination.(Copy raw)
Copies the source nand to destination nand in a binary way: if destination has no bad blocks, at
the end of the operation it will be an EXACT copy of source.
This method will probably cause a brick if destination has bad blocks, unless the source was
once dumped from a nand that had the same bad blocks in the same places as destination currently have them.
This method is more aproppiated for dumping purposes.
Example: nandflasher cr p f "nandimage.flash" -> It dumps the psp nand to the file nandimage.flash.
Example2: nandflasher cr p u -> copies the psp nand to the up nand (may not work in all instalations)
A modification of this function is the crs function, that perform the same operation, except that
it skips idstorage blocks.
* cl iplsource idstoragesource lflashsource destination
It copies logical sections from one or more units, to the destination unit.
The logical copy is more secure than raw copy, because it handles bad blocks in all areas
iplsource: specifies the unit containing the ipl. If this parameter is 0, ipl writing will be skipped.
idstoragesource: same as above, but for idstorage.
lflashsource: same as above, but for lflash.
destination: the destination unit.
Example: nandflasher -n cl f p f u "nandimage.flash" -> Write the ipl and the lflash of the file
nandimage.flash to the up nand, and it copies the idstorage from the psp nand to the up nand.
Example 2: nandflasher -n cl p 0 0 u -> Copies the ipl of the psp nand to the up nand.
* gipl unit iplfile
It extrats the ipl from the specified unit and saves it to file iplfile.
Example: nandflasher gipl p ipl.bin -> extracts the psp nand ipl to the file ipl.bin
EXample 2: nandflasher gipl f ipl.bin nandimage.flash -> extracts the ipl from the file nandimage.flash and
saves it into the file ipl.bin.
* sipl unit iplfile
It sets the ipl of the specified unit, with the contents of the specified ipl file.
Example: nandimage sipl u ipl.bin -> writes the ipl contained in the file ipl.bin in the up nand.
* gids unit idsdirectory
It dumps the idstorage of the specified unit to the directory specified by idsdirectory.
After the dump, this directory will have an index.bin file which is the index of the idstorage,
and files with names keyXXXX.bin that have the contents of each key.
EXample: nandimage gids p myidstorage -> dumps the idstorage keys and index of the psp nand into the directory myidstorage.
* sids unit idsdirectory
It writes the idstorage contained in the directory idsdirectory to the specified unit.
The format of the directory input is obviously the same dumped by gids function.
Example: nandimage sids u myidstorage -> writes to the up nand, the idstorage of the direcrory myidstorage.
* glfs unit lflashimage
Dumps the lflash (logical flash, that contains the filesystems partitions) from the specified unit to the lflashimage file.
This file can be later manipulated with tools such as WinImage. (except in the case of 3.XX+ not OE nands)
Example: nandflasher glfs p flash.ima -> dumps the lflash from the psp nand to the file flash.ima.
* slfs unit lflashimage
Writes the lflash contained in the file lflashimage to the specified unit.
Example: nandflasher slfs u flash.ima -> writes the lflash dump file flash.ima to UP nand.
* t unit
Tests the specified unit blocks, to know which of them are in good or bad state. Note that this
will erase the nand to be tested, so you will have to program it later.
The test consist in erase test, writes block with all 0 with verify, rites block with all 1 with verify.
This action forces the verification even if -n option is specified, so it shouldn't be used in bad up installations.
This is actually the more slow function of all, but at the end you will know in which state is your nand,
and the number of true bad blocks.
Example: nandflasher t u -> will test the up nand.
Example 2: nandflasher t p -> will test psp nand (only for devolution, remember that erase and write
doesn't work for psp nand in UP).
Example 3: nandflasher t f "nandimage.flash" -> this is the more stupid action you can do with
the program, because it doesn't have much sense to test a dump file
A modification of this function is the ts function, that performs the same action, but skips idstorage.
* 82 unit
Patches the specified ta-082 unit so that it can run a firmware based in a 1.XX ipl.
The function won't do anything if the unit is not a ta82 one.
Here is a list of more usual operations, and their equivalency with the upflasher.
- Dump the PSP nand to the file "nandimage.flash" (equivalent to upflasher read psp nand):
nandflasher cr p f "nandimage.flash"
- Dump the UP nand to the file "nandimage.flash" (equivalent to upflasher read up nand):
nandflasher cr u f "nandimage.flash"
- Write a nand dump to UP nand.
For a first time programming (when you use chip for first time), you should use:
nandflasher -n cl f p f u "nandimage.flash" (it is equivalent to the upflasher up nand write).
For next times, it is better to use the following command (except if you screw the up idstorage, then use the
first one again):
nandflasher -n cl f 0 f u "nandimage.flash"
- Write a nand dump to the PSP nand (only devolution, DO NOT use on UP).
nandflasher -n cl f 0 f p "nandimage.flash"
- Patch a ta-082 nand (psp nand, only devolution)
nandflasher 82 p