PC-3000 SSD. Maxio MAS0902A/DM918 recovery process

Current article was written using PC-3000 7.8.17 software update

Hello everyone!

In this article, we’re going to dive deep into the process of recovering data from a SATA SSD equipped with a Maxio MAS0902 controller series, including rebranded versions such as the Lexar DM918.

Currently, PC‑3000 SSD supports the following Maxio SATA controllers:

  • MAS0902 – full support,
  • DM918 – full support,
  • MAS1102 – under development.

Maxio, formerly known as JMicron, manufactures SSD controllers. The “MAS” controller series follows a different drive initialization process compared to popular drives based on Phison and Silicon Motion controllers.

To correctly prepare such a SATA SSD for data access, please follow this guide.

First, you need to identify the number of NAND chips located on the drive’s PCB. It is also important to check the total capacity of your SSD, as you will need this information later.

In our case, we are using an Apacer AS350 PANTHER with 2 NAND chips and a 512GB capacity.

Apacer Panther 512GB SATA

MAS0902A CPU and two NAND chips

No chips on reverse side of PCB – only info about drive capacity – 512G

Let’s connect the SSD to your preferred PC-3000 tool (Portable III/Pro, Express or UDMA) and launch the PC-3000 SSD software.

We found that our drive is in a BUSY state after powering on.

BSY state of SATA SSD after power on

This indicates a serious firmware corruption that is preventing the drive from completing its initialization.

Our next step is grouping utilities by controller vendors, then select “Maxio” and choose “MAS0902A” from the “Controllers” tab:

 

MAS0902 selection in CPU list

In the Family Selector window, choose the “Default” series and then select “MAS0902” again. Under the “Mode” section please opt for the “Safe” option.

We do not yet know how to enable Safe Mode on this drive, but the Utility will guide us through it later.

After the service firmware upload window appears, you will see several options. The current Utility already contains a large number of profiles and drive configurations for various types of SSDs powered by Maxio controllers. Each profile contains information about the controller, the NAND memory chip type (including the internal manufacturer’s code), the number of channels and the number of memory chips on the PCB.

Sections such as “Page format and ECC” or “NAND timings” are usually pre-configured by the Utility. However, for the “NAND configuration” section you must select the correct NAND package, number of channels and CE count, as well as both the Channel and CE maps.

Let’s start by identifying the NAND marking.

Our drive already has a fully supported profile, so we don’t need to configure all parameters manually. However, if your drive is not listed in the utility’s profile library, you can attempt to identify the correct configuration yourself.

Generally, NAND chips are identified by three names:

  1. NAND marking: marking on the top of the chip (e.g., H25JGT8A1M8R07).
  2. NAND ID: a group of bytes in HEX (e.g., 0xAD89285300B0).
  3. Memory chip code: specific “factory name” (e.g., SKV603047).

For a correct utility initialization, we need a Memory chip code.

There are two primary methods to find the correct NAND manufacturer’s code for your SSD. We’ll guide you through both.

NAND marking on chips

Option 1

The NAND memory chips on our SSD are marked with “29F2T08EMLCE”, which simplifies the following steps.

Now follow your local PC-3000 Profiles folder. It is typically located within the PC-3000 installation directory. In our case, the path is:
C:\Program Files\ACE Lab\PC-3000\Bin\!Profiles

Here you will find saved profiles for all the storage devices you have worked with. For now, we are interested in a specific default profile folder named “MaxioSSD”.

Within this folder, open the “GDP” subfolder and then open “MK8215” (the old name for the MAS0902 controller). Inside you will find the Flash.ini configuration file. This file contains information about most known memory chips compatible with the Maxio MAS controller.

NAND chip info inside Flash.ini

As you can see, different manufacturers often use similar first letters in their chip names – for example, Micron uses “MT” or “eMT,” while Intel chips start with “PF.”

Compare these codes with the marking on your SSD’s NAND chips and find the code that is identical (or the most similar) to yours. Next, check the “Name###=” column – here you will find the manufacturer’s actual chip code. In our case, the “29F2T08EMLCE” marking is found in the Flash.ini list as a B27B06417 chip from Micron, with the chip ID 0x2C 0xC3 0x08 0x32 0xE6 0x00 (or 0x2CC30832E6).

In the Utility select the compatible Apacer drive profile that uses the B27B06417 code. The remaining options (e.g., Channels count, CE count) can be left at their default values.

NAND configuration window for MAS0902

Our drive is now ready for correct initialization and loader upload. After pressing “Next” the Utility will ask you about using a COM Terminal – one of the methods to switch the drive into Safe Mode. If you wish to use this method, select the appropriate COM port from the list. If you do not have a COM terminal or prefer not to use it, simply select “No COM Port access”.

The next step is to choose the method for Safe Mode activation.

  • If you are using a COM Terminal, select the “Auto” option and follow the on-screen instructions.
  • If you have not shorted the pins, choose “Hardware key” and follow the instructions.

For MAS0902 controllers, the correct pins to short are usually marked with the label “J2“.

Shorting points on drive PCB – J2 for MAS0902

If you have already shorted the pins, please use the option “SSD is already in the Safe mode” and press “Upload”.

If you encounter a “Drive initialization error” it typically means you have either selected an incorrect NAND profile or you are attempting to upload the firmware for a second time without power-cycling the drive.

Please note that uploading any service firmware profile requires power-cycling the connected drive. You can do this using the controls in the upper-left corner:

The firmware has been successfully uploaded! After the upload the Utility will output the basic information about our chip’s actual ID in the log.

Now let’s gather additional information about the chips by navigating to Tests > NAND Flash Chips > Read ID.

The test results, including the chip ID and channel map, should match the information you selected in the Extended Mode window.

Correct CE / Channel Map for our Apacer drive

Thus we have 4 channels, each with 2 CEs and the following mapping: 0 1 2 3 for Channels and 0 1 for CE:

Final configuration for Apacer drive

Here it is! Now we are ready to build the translator. But before we do, let’s discuss the situation where memory chips have no marking or an MAS0902-based drive has no available profile.

Option 2

If your chips have no visible markings you can navigate through the vendors menu in the left corner of the Utility’s Extended Mode. Our Apacer AS350 PANTHER has a 512GB capacity and there are three possible NAND memory chip options for this controller.

If you have more than one option, as we do, don’t worry – you can try each one to see if the drive initializes successfully. Choose the profile you wish to proceed with (the NAND package will be configured automatically), and set both “Channels count” and “CE count” to 1. This ensures the drive has the maximum chance of correctly reading the chip ID.

Press “Next”.

Single CE/Channel config for test ID reading

ID is avaliable!

Now when you know the Chip ID you can select the correct NAND code from the Flash.ini file. If you are working with the drive manually using your own profile, don’t forget to also read the Chip ID map for correct utility initialization.

CE/Channel configuration

Final CE / Channel map configuration

After entering the correct data and uploading the service firmware, it’s time to move to the translator building step. Navigate to Tests > Service Information > Translator > Translator Building.

You can leave the search algorithm at its default setting. The only parameter we need to adjust before searching for translator tables is the L2P record size. The rule is simple:

  • 4096 bytes for SSDs with a capacity up to 256 GB
  • 8192 bytes for capacities between 480 GB and 512 GB
  • 16384 bytes for 1 TB drives
  • 32768 bytes for 2 TB models

This is why we asked you to verify your drive’s total capacity at the beginning of this article.

Since our Apacer AS350 has a capacity of 512 GB we have adjusted L2P record size accordingly:

L2P record size config

Once you have set the L2P record size, press “Search” and wait for the process to complete. This may take some time.

Once the search is finished you will see a list of translator records, each with its respective version and size in LBA. Finally, you can assemble the translator by pressing the “Build” button. Let’s proceed!

Transaltor window in MAS0902 Utility

That’s it – the translator has been built successfully! We can now create a new task in Data Extractor based on the Maxio utility, confirming that the data is intact.

New task creation in DE

Don’t forget to chose PC-3000 Utility as a source!

Final data structure is ready

Maxio MAS controllers have a quite complex internal structure. ACE Lab engineers continue to research them and implement all relevant improvements in the Utility. If you have any questions, please contact us through the ACE Lab Technical Support portal. We will be happy to help!

1 Star2 Stars3 Stars4 Stars5 Stars (7 votes, average: 5.00 out of 5)
Loading...

This entry was posted in Articles, Data Extractor, PC-3000 SSD. Bookmark the permalink.

One Response to PC-3000 SSD. Maxio MAS0902A/DM918 recovery process

  1. ahmed says:

    many thanks for this valuable information

Leave a Reply

Your email address will not be published. Required fields are marked *