ginbot86 / 2433_nandflashtest

Test program to read NAND Flash ID and partial JEDEC Parameter Page data from a NAND Flash chip, using an MSP430FR2433 MCU.
3 stars 3 forks source link

Which arduino board you use for this arduino code? #1

Closed DRCRecoveryData closed 2 months ago

DRCRecoveryData commented 2 months ago

Hi,

Which arduino board you use for this arduino code?

Also can i dump to nand dump file?

ginbot86 commented 2 months ago

I used a Texas Instruments MSP430FR2433 LaunchPad board, but you can use any Arduino-compatible development board as long as the microcontroller uses 3.3V logic levels. All that needs to be changed are the pin assignments via the #define lines at the start of the program.

The program in its current form does not dump to a file, nor does it dump actual user data from the NAND Flash. The primitive commands to write commands/read data are there, so theoretically (with the right commands) you could make the program create a dump of the actual data on the chip.

DRCRecoveryData commented 2 months ago

I used a Texas Instruments MSP430FR2433 LaunchPad board, but you can use any Arduino-compatible development board as long as the microcontroller uses 3.3V logic levels. All that needs to be changed are the pin assignments via the #define lines at the start of the program.

The program in its current form does not dump to a file, nor does it dump actual user data from the NAND Flash. The primitive commands to write commands/read data are there, so theoretically (with the right commands) you could make the program create a dump of the actual data on the chip.

I have found your article so i'm making a adapter for it now,

Also how do disable controller when card is cracked to only access to nand like this:

image

image

image

ginbot86 commented 2 months ago

card is cracked

What do you mean by the card is cracked? Like as in physical damage to the card?

DRCRecoveryData commented 2 months ago

card is cracked

What do you mean by the card is cracked? Like as in physical damage to the card?

It's cracked like this:

https://www.instagram.com/p/Cq6S19-AFrK/?igsh=MTV5MTJ1N3N3cjRlMg==

ginbot86 commented 2 months ago

Interesting, I haven't seen a card ground down like that. I presume that's for disconnecting the controller from the NAND? I'd have thought that pulling the controller's reset line would be enough usually... do the test pads not work after that procedure is done?

DRCRecoveryData commented 2 months ago

Interesting, I haven't seen a card ground down like that. I presume that's for disconnecting the controller from the NAND? I'd have thought that pulling the controller's reset line would be enough usually... do the test pads not work after that procedure is done?

I have change pinout to arduino leonardo pinout, does your code dump few page and block? Does is possible to dump whole nand to a dump file and support other sandisk sdcard?

ginbot86 commented 2 months ago

Make sure your Arduino Leonardo uses 3.3V logic levels. And yes, the program in its current state will dump the parameter page(s) only and block execution afterwards.

It is theoretically possible to modify the program to dump the main NAND Flash data, including spare area. This can be done with vendor-independent NAND Flash commands like READ PAGE (0x00), sending 5 address bytes (column 1, column 2, row 1, row 2, row 3) then READ PAGE CONFIRM (0x30) then reading out however many bytes there are in a page; repeat for the rest of the pages and blocks. You could then write some code to receive this printed data from the microcontroller and convert it back into a binary dump file.

However, the raw dump won't be of much use unless you can understand the card's specific XOR/scrambling, ECC, mapping, etc.

DRCRecoveryData commented 2 months ago

Make sure your Arduino Leonardo uses 3.3V logic levels. And yes, the program in its current state will dump the parameter page(s) only and block execution afterwards.

It is theoretically possible to modify the program to dump the main NAND Flash data, including spare area. This can be done with vendor-independent NAND Flash commands like READ PAGE (0x00), sending 5 address bytes (column 1, column 2, row 1, row 2, row 3) then READ PAGE CONFIRM (0x30) then reading out however many bytes there are in a page; repeat for the rest of the pages and blocks. You could then write some code to receive this printed data from the microcontroller and convert it back into a binary dump file.

However, the raw dump won't be of much use unless you can understand the card's specific XOR/scrambling, ECC, mapping, etc.

Yes i have software to decode ecc and xor of flash extractor and vnr from rusolut, the chip i wanna dump is:

// Chip
Company      Sandisk
Name         TSOP-48  SDTNSGBMB-032G
ID code      45 3c 95 93

// Structure
Bus          8
Banks        1 x 32 GB
Page         17664
Block        0x450000
Blocks       0x2100

// Read
Cmd          Std
Col          2
Row          3
DDR          false

// Timings
RE_Up        2
RE_Down      2

// Special
Power
Retry
Skip_Mask_1  0x1fffff
Skip_Page_1  0x108000
Skip_Mask_2  0xffffffff
Skip_Page_2  0xffffffff
Join CE      1-2
ginbot86 commented 2 months ago

Hmm, do you not already have a tool to dump that NAND?

DRCRecoveryData commented 2 months ago

Hmm, do you not already have a tool to dump that NAND?

yes i have reader but i wanna dump dump nand by other way like you do

DRCRecoveryData commented 4 days ago

Can you decode this Sandisk ID?

image

image

45 3e 98 03 76 6c 08 1e

I wanna know the size of