How a SATA SSD Differs from NVMe
A SATA SSD speaks AHCI over a 6 Gbps SATA III link. An NVMe SSD speaks NVMe over PCIe with up to 32 Gbps on a Gen4 x4 connection. The protocols, command queues, & physical layers are different, & so are the recovery procedures.
SATA III caps single-drive throughput at roughly 550 MB/s on sequential reads. The AHCI command set was designed for spinning disks; it supports a single command queue of 32 entries (NCQ). NVMe by contrast allows up to 65,535 queues of 65,536 entries each. From a recovery perspective the practical consequence is link behavior: SATA SSDs use Link Power Management states (HIPM, DIPM, DevSleep) that can mask intermittent controller faults during normal-mode imaging unless those states are explicitly disabled on the test bench.
The NAND, FTL concepts, garbage collection, wear leveling, & TRIM behavior are shared across both interface families. The difference relevant to recovery is what happens when the controller dies: on a SATA SSD the host expects a SATA identify response, on NVMe the host expects an NVMe controller capability register read. PC-3000 SSD has separate utilities for each. For NVMe-specific procedures see the NVMe SSD recovery page.
How SATA SSD recovery differs from NVMe at the protocol level
The protocol gap between SATA and NVMe is not a throughput question on the bench; it is a question of how the link reacts when a queued read times out against a marginal NAND block, which controller-family loader PC-3000 SSD must inject, and whether host-side link power management will kick the drive off the bus mid-image. Each of these three axes changes the imaging procedure for a failing SATA SSD.
AHCI queue depth and FPDMA timeout handling on the bench
AHCI 1.3.1 and SATA 3.2 cap Native Command Queuing at a single 32-entry queue per port. NVMe permits up to 65,535 queues of 65,536 entries each. The practical lab consequence is severe: when a queued FPDMA READ times out on a marginal SATA SSD, the host issues a link reset that aborts every tag in the queue, not just the failing one. 31 healthy reads die alongside one bad LBA.
The failure path is mechanical. The host issues `READ FPDMA QUEUED` (opcode 60h), allocates a tag in the PxSACT register, and waits for the SDB FIS that clears the tag. When a degrading NAND block forces the controller to burn clock cycles on read-retry and ECC recovery, the per-command timeout breaches before the SDB FIS arrives. AHCI error handling has no graceful single-tag abort; it invokes COMRESET, which purges the entire AHCI queue. On a typical Linux host this surfaces in dmesg as `failed command: READ FPDMA QUEUED` followed by `Emask 0x4 (timeout)` and then a chain of resets that take the link down for seconds at a time.
On the PC-3000 SSD bench, the workaround is to remove NCQ from the equation entirely. The imaging session runs synchronously at queue depth 1, with the NCQ feature flag stripped and host timeouts extended past the controller's worst-case read-retry budget. A single bad LBA stalls one read; the next LBA proceeds without losing 31 good reads behind it.
- Disable NCQ at the bench host so commands serialize at queue depth 1. PC-3000 SSD presents this as a Technological Mode option per controller family.
- Extend per-command timeouts past the default 5-to-30-second host budget so marginal reads complete instead of triggering COMRESET.
- Where the controller supports it, route reads through Vendor-Specific Commands on the diagnostic channel rather than the standard AHCI block layer, which bypasses NCQ accounting and PxSACT polling altogether.
SATA controller silicon families and their PC-3000 SSD utility profile
PC-3000 SSD v3.8.10 (Feb 2026) exposes a distinct utility per supported SATA controller family. Each utility carries its own loader, its own Technological Mode entry path, and its own constraints on which silicon revision is fully supported versus partially supported. Naming the utility matters because the loader name on the bench is what tells the technician whether a given drive is in scope before any disassembly happens.
The list below is the supported set per ACELab v3.8.10. Vendors absent from the ACELab matrix are non-supported by definition; we do not claim PC-3000 SSD recovery for them.
- Phison (PS3105 / PS3108 / PS3109 / PS3110 / PS3111 / PS3112)
- Utility: Phison Active Utility. Technological Mode is reached by shorting the Safe Mode test points on the PCB, after which the utility injects an `SBF*` loader into controller SRAM to rebuild the translator (for example, the `SBFM 71.2` loader is the microcode injected for drives running `SBFK71E0` firmware). Older PS3109 and PS3111 variants are sensitive to the host interface; ACELab mandates a PATA-to-SATA bridge connection rather than a direct SATA port for those families.
- Silicon Motion / SMI (SM2236, SM2246EN/XT, SM2256K, SM2258H/G/XT, SM2259XT)
- Utility: SM Utility, segregated by OEM rebranding as Crucial-SiliconMotion Utility, ADATA-SiliconMotion Utility, and others. Safe Mode is entered via pin short. The loader carries per-firmware descrambling keys, disables background TRIM and garbage collection while the drive is on the bench, and forces stable single-channel access to the NAND for FTL rebuild.
- Marvell (88SS9174 / 88SS9187 / 88SS9189 / 88SS9190 / 88SS1074)
- Utility: Marvell VanGogh Active Utility. Technological Mode access is via a diagnostic channel rather than a pin-short Safe Mode. Older unencrypted Marvell silicon permits chip-off and manual FTL reconstruction through the PC-3000 Flash utility; newer iterations bind AES-256 to the controller and require the original controller IC to remain functional for any plaintext recovery to be possible.
- Samsung SATA (legacy S3C29 / S4LJ / S4LN families)
- Utility: Samsung Active Utility. The PC-3000 module communicates with legacy Samsung silicon through proprietary Vendor-Specific Commands to rebuild translators on supported models including the 470, 830, 840, 840 EVO, 840 Pro, 850 Pro, and OEM CM871 and PM-series drives. Modern Samsung in-house controllers (Polaris, Phoenix, Elpis, MEX, MGX, MHX, MJX, MKX) including the 850 EVO, 860 EVO, and 870 EVO are not in ACELab's supported list; PC-3000 SSD cannot inject a loader for them, so any recovery on those drives is restricted to board-level stabilization plus normal-mode imaging on the original controller. Rossmann does not currently offer in-lab recovery for Samsung MKX, MHX, MJX, MGX, MEX, Polaris, Phoenix, or Elpis controllers.
- Maxio (MAS0902 supported; MAS1102 partial)
- Utility: Maxio Active Utility. MAS0902 (Lexar DM918 and several rebrands) is fully supported: the utility enters Technological Mode, rebuilds the FTL, and applies XOR descrambling automatically. MAS1102 is marked under deep development by ACELab and is supported only for the 240 GB capacity (ADATA SU650 240 GB). Maxio's NVMe controllers (MAP1602, MAP1602A) are absent from the ACELab matrix; we do not offer PC-3000 SSD recovery for those parts.
- Legacy: Indilinx Barefoot, OCZ Barefoot 3, Intel PC29AS21AA0
- Indilinx Barefoot Active Utility, OCZ Barefoot 3 module, and Intel Postville Active Utility cover the relevant legacy silicon. These families predate transparent AES-256 in the SATA SSD market, which keeps chip-off plus manual FTL reconstruction on the table when the original controller is electrically beyond repair.
DEVSLP, HIPM, and DIPM as imaging hazards on a marginal SATA SSD
The four SATA power states are defined elsewhere on this page. What matters in an imaging context is that aggressive host-side link power management (ALPM) is the single most common reason a marginal SATA SSD vanishes mid-image. A failing controller cannot meet the 10 microsecond Partial wake budget or the 10 millisecond Slumber wake budget while it is also burning cycles on ECC retry. ALPM must come off before imaging starts.
The dmesg signature is distinctive. A drive that drops out of Slumber or Partial without renegotiating typically logs `ataX: SATA link down (SStatus 1 SControl 300)` followed by `COMRESET failed (errno=-32)` and `reset failed (errno=-32), retrying in 8 secs`. The block device disappears from `/dev/sdX`; any imaging job in flight aborts. On Windows, the storahci driver records Event ID 129 (Reset to device \Device\RaidPortX) and Event ID 153 (IO retried at logical block address) for the same underlying condition. If DEVSLP is the state the drive cannot leave, the OS frequently reports the device as fully disconnected.
- Disable ALPM at the host. On Linux, write `max_performance` to `/sys/class/scsi_host/hostX/link_power_management_policy` (the only valid libata values are `max_performance`, `medium_power`, `med_power_with_dipm`, and `min_power`). On Windows, set the HIPM and DIPM registry keys for the active power plan to Active (0 ms) so the AHCI driver never requests a low-power transition.
- Force the SATA PHY to Gen1 (1.5 Gbps) before imaging starts. Marginal controllers and degraded NAND stabilize at the slower signaling rate; signal integrity is no longer the bottleneck during heavy ECC retry passes.
- Where the drive will not pass identify under standard ATA, enter the controller-family Technological Mode at first power-up. PC-3000 SSD issues vendor-specific commands on the diagnostic channel before any LPM transition is attempted, which sidesteps the entire ALPM negotiation problem.
The takeaway from all three subsections is the same: the SATA protocol stack was designed for healthy drives on a desktop or laptop. A failing SSD breaks the assumptions AHCI was built around: that a queued command will return in bounded time, that LPM transitions will complete, that identify will report a sane capacity. PC-3000 SSD imaging works because it disables every one of those assumptions at the bench before the drive is asked to do anything.
SATA Link Power Management Stuck States and Vanished Drives
A SATA SSD that enumerates at 0 bytes, fails BIOS detection, or appears intermittently in Device Manager is often stuck mid-handshake inside SATA Link Power Management. The drive is electrically alive; the SATA PHY never finishes renegotiating OOB signaling on wake, so the host AHCI controller never completes its COMRESET / COMINIT sequence and no LBA address space is exposed.
The SATA specification defines four interface power states. Each one parks the link at a deeper level of clock gating, and each one carries its own wake requirements. When the drive or the host fails to negotiate the exit, the link stays in the low-power state and the drive disappears from enumeration.
- Active
- PHYRDY. Link fully powered, PHY clocks running, ready to issue and receive FIS packets. No wake latency.
- Partial
- PHY clocks gated but still receiving. Exit latency under 10 microseconds via an OOB COMWAKE sequence. Either side can request entry.
- Slumber
- PHY clocks fully stopped. Exit latency up to 10 milliseconds and requires the PHY to relock before COMWAKE completes. This is where most LPM-related hangs originate on desktop SATA SSDs.
- DevSleep
- DEVSLP. The entire device interface is powered down on a dedicated DEVSLP pin. Exit latency in the tens of milliseconds. Added in SATA 3.2 for mobile drives; the most common stuck-state source on 2014-and-newer laptop SATA SSDs.
Two negotiation paths sit on top of these states. HIPM, Host-Initiated Power Management, lets the host AHCI controller request Partial or Slumber after an idle threshold. DIPM, Device-Initiated Power Management, lets the drive controller request the same transitions on its own. The Windows AHCI driver, the Linux libata stack, and most BIOS storage option ROMs enable one or both by default. A handshake failure on wake from either path leaves the link half-down: the host issues COMRESET, the drive PHY fails to relock, no COMINIT returns, and the host gives up after the configured timeout. From the operating system, the drive looks like it was never plugged in.
This failure mode is invisible to consumer recovery software for a specific reason. EaseUS, Disk Drill, R-Studio, and similar tools sit on top of the operating system storage stack. When COMRESET never completes, the AHCI port never enumerates a device, the OS never creates a block-device node, and the software has nothing to scan. The user sees "no drive detected" and assumes the SSD is dead. The SSD is not dead; the link is stuck. Reseating the drive or cold-booting sometimes works because a power-off clears the PHY, but the failure tends to return as soon as the host requests the next low-power transition.
The lab procedure bypasses LPM negotiation entirely. PC-3000 SSD forces the drive into the controller family technological mode at first power-up, which issues vendor-specific commands on a diagnostic channel before any standard ATA identify or LPM transition is attempted. With LPM disabled at the bench level and host timeouts extended, the controller responds even when the SATA PHY would refuse to negotiate against a stock AHCI port. From there the user area is read through controller commands rather than the AHCI block layer, which is why a drive that fails BIOS detection on the original system can still image cleanly on the PC-3000 SSD bench.
Dominant SATA SSD Controller Families & Their Failure Modes
Four controller vendors account for the bulk of SATA SSDs sold over the past decade: Silicon Motion, Phison, Marvell, & Samsung. Each family has characteristic failure modes that determine which recovery tier applies.
Silicon Motion SM2258 / SM2259
Found in Crucial MX500, Crucial BX500, ADATA SU800 / SU900, Plextor S2C, Transcend SSD370S, WD Green G1, & many DRAM-less budget drives (the XT variants). Common failure modes: firmware-area corruption that causes the drive to enumerate with a wrong model string ("SATAFIRM S11" being the canonical SM2258 fault state), bad blocks accumulating in the system area, & controller hangs during boot. The SM2258XT & SM2259XT use Host Memory Buffer instead of dedicated DRAM, which makes them more sensitive to power-loss FTL corruption.
Phison PS3110 / PS3111 / PS3112 (S11 / S12)
Found in Kingston A400, Patriot Burst, GOODRAM CX400 / IRDM, Apacer AS340 / AS450, Lite-On MU3, OCZ Trion 100, Seagate BarraCuda Q1, & many rebrands. Common failure modes: the controller enters a "BSY" busy state on boot & never clears it, blocking host enumeration; the drive enumerates but reports the wrong capacity; or the drive disappears entirely after a power event. PC-3000 SSD has a Phison-specific utility that can communicate with these controllers in technological mode for FTL reconstruction.
Marvell 88SS1074 & SandForce legacy
The 88SS1074 powers SanDisk SSD Plus, SanDisk Ultra II, & WD Blue G1. It is one of the more reliable SATA controllers in the field; failures usually trace to NAND wear-out rather than controller logic faults. Older SandForce SF-2281 drives (Intel 520, OCZ Vertex 3, Kingston HyperX) are no longer in active production but still arrive at the lab regularly; their canonical firmware panic is the SandForce 200026BB ROM-mode signature at 32 KB or 0 MB capacity. The unrelated Intel 320 Series "8MB bug" (BAD_CTX presentation on the PC29AS21AA0 controller) is a separate failure mode on a different controller family.
Samsung SATA (MGX, MHX, MJX, MKX)
Samsung 840, 850 EVO, 860 EVO, & 870 EVO. Older generations (MGX / MHX) permit firmware-level technological mode access in PC-3000 SSD for FTL reconstruction. Samsung locked that path on the MKX (870 EVO) generation, so 870 EVO recovery relies on board-level stabilization plus normal-mode imaging rather than loader-based firmware rewrites. AES-256 hardware encryption is applied transparently on all Samsung SATA drives, so chip-off is not a viable path when the controller is dead.
Other SATA controllers we work on regularly include Maxio MAS0902 (ADATA SU630 / SU635 / SU650, Apacer AS340 / AS350, HIKVISION C100 / C260, Lexar NS100, Verbatim Vi550), Indilinx Barefoot (Crucial M225, OCZ Vertex 1), OCZ Barefoot 3 (OCZ Vector, OCZ Vertex 450, AMD Radeon R7), & Intel PC29AS21AA0 (Intel X25, Intel 310, Intel 710). The Sandisk SSD Plus / Ultra II case has its own dedicated SanDisk firmware failure page.
Crucial models are common enough to have their own page; see the Crucial SSD recovery page for MX500 / BX500 / M500-series specifics.
Why Software-Only Recovery Usually Fails on Modern SATA SSDs
Once the operating system has issued the SATA TRIM command (DATA SET MANAGEMENT with the Trim bit set) for a range of LBAs, the SSD controller marks those NAND pages as no longer holding valid user data. Garbage collection then physically erases the blocks on its own schedule. After that, reading those LBAs returns deterministic zeros (DZAT) on most drives. There is no software trick that retrieves data from a physically erased NAND block.
This is the single biggest difference between SSD recovery & spinning-disk recovery. On an HDD a deleted file is still magnetically present until the sector is overwritten; file-carving tools can recover it for months. On a SATA SSD with TRIM enabled the window is seconds to minutes. Once TRIM has fired & garbage collection has run, no tool & no lab can reverse the erase. The data is gone at the hardware layer.
For the underlying physics, see our dedicated TRIM & DZAT physics page, & for the practical decision tree on what is & is not recoverable see TRIM & garbage collection data loss. Recovery is realistic only when TRIM was disabled (some legacy systems & specific filesystems), the drive was pulled before the OS issued the TRIM commands, or the drive was already in a failed state that prevented garbage collection from running.
Recovery software like Disk Drill, EaseUS, PhotoRec, & R-Studio is genuinely useful when an SSD is physically healthy & the failure is logical: an accidentally formatted partition that has not been written over, a corrupted partition table, or a deleted file on a drive where TRIM did not fire. Those tools cannot help when the controller is dead, the firmware is corrupted, or TRIM has already erased the blocks. That is when the case escalates to lab-tier work.
Power-Isolation-First Intake for Deleted-Data SATA Cases
A SATA SSD that contains deleted data should be powered off the moment loss is noticed & should stay powered off until it reaches the lab bench. Every minute the drive sits idle on a host system, the controller's background garbage collector is erasing NAND pages that the host has marked for TRIM. Once those pages are erased, they are gone.
Background garbage collection runs on every modern SATA controller. Silicon Motion SM2258 & SM2259 schedule erase passes during host-idle windows; Phison PS3110 (S10), PS3111 (S11), & PS3112 (S12) coalesce TRIM ranges & process them during link-power-management low-power states; Marvell 88SS1074 runs an aggressive active background garbage collection routine that triggers rapidly during host-idle states; legacy SandForce SF-2281 used its "Intelligent Recycling" reclaim cycle to pre-erase blocks well in advance of host requests. The controller does this work autonomously. The host operating system does not need to issue any further command.
The implication for intake is straightforward. If a user deletes a file on a SATA SSD & then continues to browse the web, install software, or even let the machine sit at the desktop, the controller is using that idle time to permanently destroy the very data the user wants back. Plugging the drive into a Windows or macOS host through a USB-to-SATA adapter to "check what is there" is the worst common reaction: the OS issues fresh TRIM commands against any newly visible free space the moment it mounts the volume, & UASP-compliant adapters pass SCSI UNMAP & ATA TRIM commands through transparently.
The Rossmann protocol for any SATA SSD arriving with deleted-data scope is the same sequence every time. The drive ships powered off. We do not connect it to a host operating system. We do not allow Explorer or Finder to enumerate it. We do not run consumer recovery software against it before bench evaluation. The first power-up is on a PC-3000 SSD bench with link power management disabled, host TRIM suppressed at the bus level, & controller-family-specific options set before identify is issued. From there the case follows the normal classification path: simple copy, file system, board, firmware, or NAND swap. If the OS issued TRIM & the controller completed garbage collection before the drive reached us, no protocol changes that outcome; the data is physically gone. The protocol exists to preserve every case where some pages are still readable.
SATA SSD Recovery Does Not Need a Cleanroom
SATA SSDs have no platters, no read/write heads, no spindle motor, & no helium fill. The case opens to a PCB with a controller IC, a few NAND packages, sometimes a DRAM cache, & passive components. There is nothing inside that can be damaged by airborne particulates.
SATA SSD recovery is electronics repair plus PC-3000 SSD work. We use FLIR thermal cameras to localize shorts on the PCB, Hakko FM-2032 microsoldering irons (on FM-203 or FX-951 base stations) for component-level rework, Atten 862 hot air for chip removal, & Zhuo Mao precision BGA stations for controller reflow. None of this work requires ISO 14644-1 air-quality control. Any vendor adding a cleanroom surcharge to an SSD quote is either misinformed or padding the bill.
For the full breakdown of where the SSD cleanroom myth comes from & how to spot it in the wild, see the SSD cleanroom myth page.
The Modern SATA SSD Encryption Reality
Most SATA SSDs sold since roughly 2015 apply AES-256 hardware encryption to all writes by default, whether or not the user enabled BitLocker or set an ATA password. The encryption key lives on the controller silicon. If the controller dies, the NAND holds only ciphertext.
This is the encryption barrier that drives most modern SATA SSD recovery toward board-level repair rather than chip-off. When a Crucial MX500, Samsung 870 EVO, or Kingston A400 controller fails, the only recovery path that preserves the key relationship is to revive that exact controller IC: locate the failed component on the PCB (typically a PMIC channel, a voltage regulator, or a shorted decoupling capacitor) using FLIR thermal imaging, then replace the failed part with the original controller still in place. When the controller boots again, the AES engine has its key, & the NAND is readable over SATA.
Older unencrypted SATA SSDs (Indilinx Barefoot, OCZ Barefoot 3, early Marvell builds that pre-date transparent AES) can still be recovered through chip-off & FTL reconstruction; the NAND content is plaintext, so a separate read jig plus PC-3000 SSD's chip-off utility can rebuild the logical layout. Modern encrypted drives cannot be recovered this way. For chip-off scope & limits on legacy drives see our chip-off NAND page.
Why Chip-Off Fails on Modern SATA SSDs
On a modern SATA SSD, lifting the NAND packages off the PCB and reading them on a separate jig does not return your files. The data written to flash was encrypted by the controller's AES-256 engine before it ever reached a NAND page. The key material lives inside the controller silicon and is not exported to NAND, not stored in DRAM, and not derived from anything the user controls. Without that specific controller, the NAND content is ciphertext.
This is why component-level board repair on the original PCB is the only viable path when the SATA controller fails electrically. The work is not about replacing the controller IC; it is about reviving it. A failed PMIC channel, a shorted decoupling capacitor, an open voltage regulator, or a cracked solder joint near the controller are the typical faults. Localizing the bad component with FLIR thermal imaging and replacing it with the original controller still in place preserves the key relationship between controller and NAND. When the drive boots again, the AES engine has its key and the SATA interface returns plaintext.
Donor-controller swaps are a separate, controller-family-specific procedure. A donor controller from the same family does not carry the failed drive's key by default. On the supported families, PC-3000 SSD's loader can re-pair a donor controller with the original NAND by reading the encryption context out of the system area on the original PCB and writing it into the donor before identify is issued. This is firmware-level work, not a hot-swap; the controllers below differ in whether and how that pairing is possible.
- Phison PS3110 / PS3111 (S10 / S11)
- AES-256 applied transparently to all user-area writes. Encryption context is stored in the controller's system area on the NAND, keyed to the controller's unique ID. Donor swap requires reading the original system area with PC-3000 SSD's Phison utility in technological mode and writing the matching context onto a donor controller of the same exact firmware revision. Chip-off and read on a separate jig yields ciphertext only.
- Silicon Motion SM2258XT / SM2246EN / SM2259XT
- AES-256 enabled by default on the XT (DRAM-less) variants and on most SM2258 / SM2259 designs. The XT line stores the FTL in Host Memory Buffer, which makes donor swaps more sensitive to firmware revision matching. SMI's technological-mode loader on PC-3000 SSD can transplant the encryption context when the original controller is electrically dead but the system area is intact. Chip-off NAND read returns encrypted pages on all post-2015 SM-series drives.
- Marvell 88SS1074
- Powers SanDisk SSD Plus, SanDisk Ultra II, and WD Blue G1. AES-256 is applied unconditionally; the key is bound to the controller silicon. Marvell does not publish a donor-pairing path the way Phison and SMI do, so recovery on a dead 88SS1074 leans heavily on reviving the original controller through PMIC and passive-component repair. Chip-off is not a viable last resort on this controller.
- Samsung MGX / MJX / MKX
- All Samsung SATA generations apply AES-256 transparently. MGX and MJX (840, 850 EVO, 860 EVO) permit firmware-level technological mode access in PC-3000 SSD, which keeps donor pairing on the table when the original controller is dead. Samsung locked technological mode on the MKX generation (870 EVO), so 870 EVO recovery is constrained to board-level stabilization plus normal-mode imaging on the original controller. Chip-off returns ciphertext on every generation.
The practical implication for a drive arriving at the lab is that the recovery path is dictated by what is still alive on the original PCB. If the controller responds at all, even partially, normal-mode imaging through PC-3000 SSD is the first attempt. If the controller is electrically dead, board-level microsoldering on the original PCB, performed in-house in Austin with Hakko FM-2032 on FM-203 or FX-951 base stations, Atten 862 hot air, Zhuo Mao precision BGA stations, and FLIR thermal imaging for short localization, is the viable path. Donor-controller pairing on the supported families is firmware work that happens after the board is electrically stable, not before.
ROM-mode entry & loader injection on legacy SATA controllers
When a SATA SSD’s Service Area firmware fails ECC, the controller’s BootROM refuses to load the primary firmware & falls back to one of four panic presentations: ATA BSY hard-hang, factory-alias identification with placeholder capacity, total drop-off, or an OEM-specific shadow bootloader. Each controller family has its own way out of that panic state. This appendix documents the ones that arrive at the lab most often, & the boundary between what PC-3000 SSD can do over SATA & what is left only to board-level revival.
SandForce SF-2281: DuraWrite, RAISE & transparent AES
Rossmann does not currently offer in-lab recovery for SandForce SF-2281.
SandForce SF-2281 is the controller behind Intel 520, OCZ Vertex 3, Kingston HyperX, Corsair Force GT, & a long tail of legacy 2.5-inch SATA drives. The architecture stacks three irreducible layers between host writes & the NAND. First, DuraWrite compresses every host write inline to cut write amplification. Second, RAISE stripes parity across the NAND dies in a RAID 5-style layout to tolerate single-die failure. Third, an always-on transparent block cipher encrypts the compressed, parity-protected payload before it is written to NAND. The cipher was marketed as AES-256; Intel publicly disclosed in 2012 that a silicon-level flaw reduced effective strength to AES-128 on the SF-2281. Either way, the encryption is not optional.
The Media Encryption Key is generated by a hardware random number generator during the drive’s first power-up & fused into the controller die. There is no documented path to extract that key over JTAG, UART, or any vendor diagnostic channel once the silicon is electrically dead. The signature panic state is the BSY 200026BB fallback: the drive identifies asSandForce{200026BB}with a capacity of exactly 32 KB or 0 MB, depending on how far through the shadow bootloader the controller got before it stalled. Consumer recovery software cannot enumerate a logical surface against this signature; the drive presents no usable LBA range.
The SF-1200 / SF-2200 families are absent from ACELab’s PC-3000 SSD supported matrix for that reason. No vendor utility ships for them. Chip-off on an SF-2281 yields compressed, RAISE-striped, AES-128 ciphertext; without the original controller silicon to decrypt inline, the NAND content is mathematically opaque. The only recovery path is board-level revival of the original controller: locating a failed PMIC channel, shorted decoupling capacitor, open voltage regulator, or cracked solder joint with FLIR thermal imaging, & replacing the failed passive on the original PCB with the controller IC still in place. If the SF-2281 die itself has suffered electrical overstress or thermal death, the data is gone. For the broader legacy context see the SandForce & Marvell legacy page.
Marvell 88SS9187 / 88SS9189 BSY state machine
Marvell 88SS9187 / 88SS9189 controllers on Crucial M500, M550, MX100, MX200 & Intel 510 hard-hang in ATA BSY when the Service Area FTL pages degrade past ECC. The PHY links up at 6 Gbps; the controller never clears the Busy bit because firmware initialization never completes. These controller families ARE supported by PC-3000 SSD’s Marvell VanGogh Active Utility through the diagnostic channel, with the caveat ACELab publishes against the model list above: partial support except for BSY-state drives.
The Linux kernel surface is distinctive. After the libata stack drives the COMRESET / COMINIT / COMWAKE handshake successfully, the ATA status register stays locked with the BSY bit asserted. The dmesg sequence reads:
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1: link is slow to respond, please be patient (ready=0)
ata1: COMRESET failed (errno=-16)
ata1: hard resetting linkThe errno=-16 maps to EBUSY in Linux. On Windows the storahci driver records Event ID 129 (Reset to device \\Device\\RaidPortX) for the same condition. Because the command parser inside the controller never reaches its main loop, standard AHCI vendor-specific commands cannot deliver a loader payload; the parser is not running. Recovery on this family relies on PC-3000 SSD’s Marvell VanGogh Active Utility communicating through a diagnostic channel that bypasses the BSY-locked AHCI register block, which is why ACELab marks the listed Crucial & Intel models partial-supported with the BSY exclusion. The existing Marvell section above documents the chip-off & donor-pairing boundaries for the 88SS1074; the same encryption-binding constraints apply upward to the 88SS9187 & 88SS9189 generations.
Silicon Motion SM2258XT BOOT_SEL mask-ROM entry
Silicon Motion SATA controllers carry a small mask ROM in silicon whose sole job is to bring up the SATA PHY & load Stage 2 firmware from the NAND. When Stage 2 fails ECC, the SM2258XT & SM2259XT typically reboot in a loop or hang in ATA BSY. The recovery entry path is the BOOT_SEL test point: momentarily shorting it to ground during the COMRESET handshake forces the power-on reset logic to sample BOOT_SEL low, abort the NAND boot, & halt in the internal mask ROM. The short must be released within one to two seconds of ROM-mode identification, before the bench injects the LDR payload; a held short blocks the in-system programmer (ISP) transfer.
In this state the controller responds to ATA IDENTIFY DEVICE (opcode 0xEC) with a generic silicon descriptor such asSM2258AB-80-10000000or SM2259XT, paired with a diagnostic capacity of 1 GB (1024 MB) or 0 GB. There is no user LBA range exposed; the mask ROM only carries enough code to accept a loader. One specific correction is worth stating clearly: the SATAFIRM S11 string is NOT a Silicon Motion presentation. SATAFIRM S11 is a hardcoded factory alias inside the Phison PS3111-S11 mask ROM. Conflating the two leads to the wrong loader selection on the bench & wastes power-up cycles.
Once SM2258AB / SM2259XT is on the bench, the SMI Utility (segregated by OEM rebrand: Crucial-SiliconMotion, ADATA-SiliconMotion) selects a microcode loader matched to the silicon revision & NAND flash ID (Micron 3D TLC, Toshiba BiCS, etc.), injects it into the controller’s SRAM through vendor-specific commands, & from there suppresses background garbage collection & TRIM while the FTL is rebuilt. See the dedicated Silicon Motion controllers page for the per-firmware loader notes.
Phison PS3111 R29 & R/B* Safe-Mode entry
The R29 resistor pad on Phison-reference PCBs sits next to vias that connect to the NAND array’s R/B* (Ready / Busy) ONFI line. Shorting that via to ground while cycling the bench power supply forces the controller to read the NAND bus as permanently busy, abort the flash-read sequence, & drop into Phison Technological Mode (Safe Mode).
In ONFI, R/B* is an open-drain active-low signal asserted by a NAND die that is mid-program or mid-erase. The PS3111 BootROM polls this line during its early NAND read; if R/B* never deasserts, the BootROM concludes the flash array is unresponsive & halts in its mask ROM. The drive presents the factory alias SATAFIRM S11 (or SATABURN S11 during a thermal event) with a 0 byte, 2 MB, or 20 MB reported capacity. Windows Disk Management will prompt to initialize the disk; that prompt must be refused. The initialize attempt rewrites partition-table sectors against a drive whose Service Area parameters are corrupted, which compounds the problem.
There is a wider class of consumer-facing tools that surface in search results around SATAFIRM S11: Phison MPTool, PhisonToolBox, & assorted mass-production flashers. None of these are recovery tools. They rebuild the FTL by erasing the NAND, which causes permanent data loss on the drive’s user area. We do not recommend MPTool or PhisonToolBox to end users for any drive containing data the user wants back.
The correct path is PC-3000 SSD’s Phison Active Utility. With the R/B* via held to ground at power-up, the controller enters Technological Mode, the utility injects an SBF*-series loader (for example,SBFM 71.2 for drives running SBFK71E0 firmware) into controller SRAM, & the virtual translator is rebuilt against the NAND OOB tags. See the dedicated Phison controllers page for the full per-firmware loader matrix & the firmware panics & ROM mode page for the cross-vendor mask-ROM model.
PC-3000 Portable III ROM-mode & loader workflow at the SATA layer
Once a SATA controller is in ROM mode by any of the entry mechanisms above, the PC-3000 Portable III workflow over SATA reduces to four discrete steps. Each step depends on direct SATA HBA access; a generic USB-to-SATA adapter strips vendor-specific commands & breaks the loader path entirely.
- Identify. The bench sends ATA
IDENTIFY DEVICE(opcode0xEC). The response confirms which mask ROM is running: SATAFIRM S11 for Phison PS3111, SM2258AB or SM2259XT for Silicon Motion, & so on. The factory alias dictates which active utility the technician opens next. - Loader Select. Inside the active utility (Phison Active Utility, SMI Utility, Marvell VanGogh Active Utility, Samsung Active Utility on legacy S3C29 / S4LJ / S4LN), the technician selects a microcode loader matched to the silicon revision & the NAND flash ID. Phison loaders carry SBF* nomenclature; SMI loaders are keyed to firmware signatures stored in the mask ROM response.
- VSC microcode injection into controller SRAM. The ATA specification reserves opcodes
0xC0through0xFFfor vendor-specific commands. PC-3000 SSD carries the loader payload in this range, writing the active utility’s LDR image directly into the controller’s volatile SRAM. A USB-to-SATA bridge implements only the standard ATA opcode subset; VSCs are stripped at the bridge silicon, so the loader never reaches the controller. The PC-3000 SATA HBA must be used directly. - Virtual translator rebuild. Once executing from SRAM, the loader suspends background garbage collection & TRIM, granting the bench physical access to the NAND. The utility reads the OOB spare-area tags off every physical page, reverses the XOR scrambling polynomial the controller applied on write, & reconstructs the LBA-to-PBA map in workstation RAM. The recovered logical volume is imaged sector-by-sector to a healthy destination drive.
The NVMe equivalent of this workflow runs over a different transport. On PCIe-attached drives the PC-3000 Portable III acts as the PCIe Root Complex, the loader payload travels in Admin Queue 0 vendor-specific opcodes in the same 0xC0 through 0xFF range, & the controller’s hardware AES engine must be successfully re-initialized as part of loader bring-up because NVMe drives almost universally enforce hardware encryption (unlike the simple XOR scrambling on budget SATA Phison parts). For the NVMe-specific procedure see the NVMe SSD recovery page & the firmware panics & ROM mode cross-vendor depth page. The broader SSD data recovery hub indexes both transports.
How a SATA SSD Case Moves Through the Lab
- 01
Intake & free evaluation
The drive ships in or arrives at the Austin lab. We power it on a PC-3000 SSD bench with link power management disabled & host timeouts extended. If the controller enumerates, we read identify data, S.M.A.R.T. attributes, & system-area metadata. If it does not enumerate, we move to PCB diagnosis. No diagnostic fee.
- 02
Tier classification & firm quote
Based on what the bench reports, the case is classified as simple copy, file system, board, firmware, or NAND swap. We give you a firm quote in writing before any paid work begins. You decide whether to proceed.
- 03
Board repair (if applicable)
If a PCB component has failed, we localize the fault with FLIR thermal imaging, desolder the failed part with Atten 862 hot air or Zhuo Mao BGA rework, & solder the replacement with Hakko FM-2032 on an FM-203 or FX-951 base. The original controller IC stays in place to preserve the AES encryption key.
- 04
Firmware reconstruction (if applicable)
When the controller boots but the firmware is corrupted (wrong model string, wrong capacity, missing modules), PC-3000 SSD enters technological mode for the controller family & rebuilds the corrupted FTL, module table, or system area. This is the path that "SATAFIRM S11" Silicon Motion drives & BSY-state Phison drives typically follow.
- 05
Imaging & file delivery
Once the drive enumerates cleanly, imaging proceeds with error isolation. Marginal LBAs are revisited with extended per-command timeouts. The image is mounted on a separate workstation, the file system is parsed, & files are delivered on your choice of return media.
SATA SSD Data Recovery Pricing
Five tiers, set by what failed on the drive. Free evaluation determines which tier applies before any paid work begins.
Low complexity
Simple Copy
Your drive works, you just need the data moved off it
Functional drive; data transfer to new media
Rush available: +$100
$200
3-5 business days
Low complexity
File System Recovery
Your drive isn't showing up, but it's not physically damaged
File system corruption. Visible to recovery software but not to OS
Starting price; final depends on complexity
From $250
2-4 weeks
Medium complexity
Circuit Board Repair
Your drive won't power on or has shorted components
PCB issues: failed voltage regulators, dead PMICs, shorted capacitors
May require a donor drive (additional cost)
$450–$600
3-6 weeks
Medium complexity
Most Common
Firmware Recovery
Your drive is detected but shows the wrong name, wrong size, or no data
Firmware corruption: ROM, modules, or system files corrupted
Price depends on extent of bad areas in NAND
$600–$900
3-6 weeks
High complexity
PCB / NAND Swap
Your drive's circuit board is severely damaged and requires NAND chip transplant to a donor PCB
NAND swap onto donor PCB. Precision microsoldering and BGA rework required
50% deposit required; donor drive cost additional
50% deposit required
$1,200–$1,500
4-8 weeks
Hardware Repair vs. Software Locks
Our "no data, no fee" policy applies to hardware recovery. We do not bill for unsuccessful physical repairs. If we replace a hard drive read/write head assembly or repair a liquid-damaged logic board to a bootable state, the hardware repair is complete and standard rates apply. If data remains inaccessible due to user-configured software locks, a forgotten passcode, or a remote wipe command, the physical repair is still billable. We cannot bypass user encryption or activation locks.
No data, no fee. Free evaluation and firm quote before any paid work. Full guarantee details. NAND swap requires a 50% deposit because donor parts are consumed in the attempt.
- Rush fee
- +$100 rush fee to move to the front of the queue
- Donor drives
- A donor drive is a matching SSD used for its circuit board. Typical donor cost: $40–$100 for common models, $150–$300 for discontinued or rare controllers.
- Target drive
- The destination drive we copy recovered data onto. You can supply your own or we provide one at cost plus a small markup. All prices are plus applicable tax.
Data Recovery Standards & Verification
Our Austin lab operates on a transparency-first model. We use industry-standard recovery tools, including PC-3000 and DeepSpar, combined with strict environmental controls to make sure your hard drive is handled safely and properly. This approach allows us to serve clients nationwide with consistent technical standards.
Open-drive work is performed in a ULPA-filtered laminar-flow bench, validated to 0.02 µm particle count, verified using TSI P-Trak instrumentation.
Transparent History
Serving clients nationwide via mail-in service since 2008. Our lead engineer holds PC-3000 and HEX Akademia certifications for hard drive firmware repair and mechanical recovery.
Media Coverage
Our repair work has been covered by The Wall Street Journal and Business Insider, with CBC News reporting on our pricing transparency. Louis Rossmann has testified in Right to Repair hearings in multiple states and founded the Repair Preservation Group.
Aligned Incentives
Our "No Data, No Charge" policy means we assume the risk of the recovery attempt, not the client.
Technical Oversight
Louis Rossmann
Louis Rossmann's well trained staff review our lab protocols to ensure technical accuracy and honest service. Since 2008, his focus has been on clear technical communication and accurate diagnostics rather than sales-driven explanations.
We believe in proving standards rather than just stating them. We use TSI P-Trak instrumentation to verify that clean-air benchmarks are met before any drive is opened.
See our clean bench validation data and particle test videoFrequently Asked Questions
How much does SATA SSD data recovery cost?
Pricing depends on what failed. A working drive that just needs the data moved off starts at $200. File-system recovery starts From $250. Board-level work on a dead PCB runs $450–$600. Firmware reconstruction with PC-3000 SSD runs $600–$900. NAND transplant onto a donor PCB runs $1,200–$1,500; A donor drive is a matching SSD used for its circuit board. Typical donor cost: $40–$100 for common models, $150–$300 for discontinued or rare controllers. Free evaluation, no diagnostic fee, & no data means no recovery fee.
How long does SATA SSD recovery take?
Simple copy: 3-5 business days. File-system recovery: 2-4 weeks. Board repair: 3-6 weeks. Firmware recovery: 3-6 weeks. NAND swap: 4-8 weeks. +$100 rush fee to move to the front of the queue.
Why does recovery software fail on a modern SATA SSD?
Two reasons. First, when the controller is dead the drive does not enumerate over SATA, so software has nothing to talk to. No tool can scan a device that the OS cannot see. Second, when TRIM has run, the controller has already issued physical erase commands to the NAND blocks holding the deleted file. Those blocks now read back as deterministic zeros (DZAT). Software cannot reverse a hardware-level erase. Recovery software is useful when the drive is healthy & the file system is intact; it is the wrong tool when the controller, firmware, or NAND has failed.
What arrives in working condition versus needing board work?
If the drive enumerates over SATA & the host can see a model string, the case is usually file-system or firmware tier. If the drive does not power up, draws abnormal current, gets warm at the controller IC, or shows up with a wrong model string, the case is board-level: a failed PMIC, shorted decoupling capacitor, or open voltage regulator on the PCB. We diagnose this with a bench multimeter, FLIR thermal imaging for short-localization, & PC-3000 SSD for controller communication.
What happens if the SATA controller is dead?
Modern SATA SSDs apply AES-256 encryption transparently inside the controller. The encryption key lives on the controller silicon, not on the NAND. If the controller IC itself is dead (not just the surrounding board), the only path to your data is reviving the original controller through PMIC replacement or component-level repair so the encryption key relationship is preserved. Desoldering the NAND chips & reading them on a separate jig yields ciphertext on encrypted drives. Older unencrypted SATA SSDs (Indilinx Barefoot, OCZ Barefoot 3, early Marvell builds before transparent AES, older Intel PC29AS21AA0) can still be recovered through chip-off & FTL reconstruction; modern ones cannot.
Is a cleanroom required for SATA SSD recovery?
No. SATA SSDs have no platters, no read/write heads, & no spindle motor. There is nothing inside the case that can be contaminated by particulates. Recovery is an electronics-repair discipline: PCB diagnosis, microsoldering, & PC-3000 SSD work. Any lab that quotes a cleanroom surcharge for an SSD is either confused or upcharging. See our cleanroom myth page for the full breakdown.
Can deleted files be recovered from a SATA SSD?
Only if TRIM did not run on the affected blocks. On Windows 7+ & macOS 10.6.8+ with a healthy SSD, TRIM fires within seconds to minutes of file deletion & the controller's garbage collection then physically erases the NAND pages. Once that happens, the data is gone at the hardware layer & no lab can reverse it. Deleted-file recovery on SATA SSDs is realistic only when TRIM was disabled, the drive was pulled immediately, the file system did not support TRIM, or the drive was already in a failed state that prevented garbage collection from running.
Why do consumer recovery programs fail on SATA SSDs?
EaseUS Data Recovery Wizard, Recuva, DiskGenius, & Disk Drill all share the same architecture: they scan logical block addresses through the operating system's storage stack & carve files from whatever the drive returns. On a modern SATA SSD with TRIM enabled, the controller returns deterministic zeros for any LBA the FTL has marked as TRIM'd (Deterministic Read Zero After TRIM, DZAT). The software is not failing as software; it is correctly reading hardware that has physically erased the data. Running these tools on a SATA SSD with a dead controller is even less productive: the drive does not enumerate over SATA, so the host storage stack never presents a device for the software to scan. The cases where these tools work on SATA SSDs are narrow: TRIM was disabled, the drive was pulled before the OS issued TRIM, the file system did not support TRIM, the partition table is corrupted but the file data is intact, or the drive is healthy & the failure is purely logical.
Which SATA SSD controllers does the lab support?
PC-3000 SSD covers the dominant SATA controller families: Silicon Motion (SM2236, SM2246, SM2256, SM2258, SM2259 & their XT variants), Phison (PS3105, PS3108, PS3109, PS3110, PS3111, PS3112), Marvell (88SS9174, 88SS9187, 88SS9189, 88SS9190, 88SS1074), Samsung SATA (S3C29MAX01, S4LJ204X01, S4LN021X01, S4LN045X01, S4LN054X02), Maxio MAS0902, Indilinx Barefoot, OCZ Barefoot 3, & Intel PC29AS21AA0. Maxio MAS1102 is partially supported (ADATA SU650 240GB only).
Can software recover a SATA SSD in BSY state?
No. A drive locked in ATA BSY (the canonical Marvell 88SS9187 / 88SS9189 failure on Crucial M500, M550, MX100, MX200 & Intel 510 when the Service Area FTL fails ECC) never finishes ATA initialization. The controller never clears the Busy bit after COMRESET, so the host BIOS & operating system never enumerate a block device. EaseUS, Disk Drill, R-Studio, Recuva, & DiskGenius all sit on top of the OS storage stack; if the OS does not see a device, the scanner has nothing to scan. The Linux dmesg surface is `ata: link is slow to respond, please be patient (ready=0)` followed by `COMRESET failed (errno=-16)` (EBUSY) in a hard-reset loop. The only paths forward are bench-level loader injection through PC-3000 SSD's Marvell VanGogh Active Utility on the diagnostic channel, or board-level revival of the original controller when the silicon itself is electrically dead.
What does SATAFIRM S11 mean?
SATAFIRM S11 is a Phison PS3111-S11 factory alias hardcoded into the controller's mask ROM. It is presented to the host when the BootROM tries to load the primary firmware from the NAND Service Area, hits an ECC failure on the firmware pages, & aborts the flash-read sequence. The drive completes SATA link negotiation but identifies as SATAFIRM S11 (or SATABURN S11 during a thermal event) with a 0 byte, 2 MB, or 20 MB capacity. SATAFIRM S11 is NOT a Silicon Motion presentation; SMI controllers in ROM mode identify as SM2258AB or SM2259XT, not SATAFIRM. Do not let Windows Disk Management initialize the drive. Do not run Phison MPTool or PhisonToolBox; both rebuild the FTL by erasing the NAND, which causes permanent data loss. The recovery path is PC-3000 SSD Phison Active Utility with the R/B* via near the R29 pad held to ground while the bench power supply cycles, which forces the controller into Technological Mode for translator reconstruction.
Why does chip-off fail on encrypted SATA SSDs?
Modern SATA controllers apply AES-128 or AES-256 hardware encryption transparently to every host write before the data reaches a NAND page. The Media Encryption Key is bound to the controller silicon; on SandForce SF-2281 it is fused into the controller die during first power-up, on modern Samsung & modern Marvell it lives in a key store the controller manages internally. Desoldering the NAND packages & reading them on a separate jig yields ciphertext. The controller is gone, so there is no AES engine to decrypt the pages back into plaintext. Chip-off is still viable on legacy unencrypted SATA SSDs (Indilinx Barefoot, OCZ Barefoot 3, older Intel PC29AS21AA0, pre-2015 unencrypted Marvell builds); on those, PC-3000 SSD's chip-off utility reverses the XOR scrambling polynomial, reads the OOB tags from each physical page, & reconstructs the LBA-to-PBA map mathematically. On any post-2015 mainstream SATA SSD, board-level revival of the original controller is the only path that preserves the key relationship.
SATA SSD failed? Get a free evaluation.
Pricing $200–$1,500. No diagnostic fee. No data, no recovery fee. +$100 rush fee to move to the front of the queue.
