ATA Streaming Command Set and ROYL Firmware Behavior on WD Purple
Most of the WD Purple sections above explain what the firmware does at the platter and head level. This section covers the host-side command path, the Service Area module layout that PC-3000 operates on, the PCB matching axes that sit one level below the family-code check, and the wear patterns that 24/7 duty cycle leaves on a Purple by the time it reaches the recovery bench. None of this is duplicate procedural content; it sits between the donor-matching framework above and the shipping logistics below.
ATA-8 ACS Streaming Commands During DVR Writes
A WD Purple in an NVR or DVR is driven through the ATA-8 ACS Streaming Feature Set rather than the standard read and write opcodes used by desktop hosts. The host issues CONFIGURE STREAM (opcode 0x51) at session setup to allocate the drive's internal time budget for error recovery, then WRITE STREAM DMA EXT (opcode 0x3A) for ring-buffer flushes and READ STREAM EXT (opcode 0x2B) for playback. Each streaming command carries a Command Completion Time Limit, which tells the drive that delivery deadline outranks sector integrity. Standard desktop drives running READ DMA EXT (0x25) and WRITE DMA EXT (0x35) have no such deadline; the drive is free to spend several seconds on a marginal sector. The streaming command path is what allows a Purple to ingest dozens of concurrent camera streams without dropping multiplexed video frames.
The recovery-time consequence of this command path is that the drive arrives with a firmware state machine that has been tuned for the opposite of what an imager wants. When a degraded Purple is connected to a standard SATA port issuing READ DMA EXT, the firmware reverts to the deep ECC retry loop it had been suppressing under streaming operation. The drive locks the SATA bus in a busy state and drops offline as soon as the host hits a weak track. On the bench, the DeepSpar Disk Imager and PC-3000 Data Extractor are configured with aggressive short timeouts in the 100 to 300 millisecond range to approximate the original CCTL behavior, with worn sectors queued for a second pass instead of stalling the link.
AllFrame Behavior During Motion-Event Write Spikes
AllFrame is WD's branding for the firmware-level implementation of the streaming command set extensions, tuned for sustained sequential writes from camera ring buffers. On a typical NVR workload, the ingest rate is steady while ambient frame deltas are low, then spikes when motion detection raises the bitrate on the affected channel. During the spike the drive sees a burst of sequential writes from the channel ring buffer hitting the cache, with the firmware required to keep the cache from filling. Under AllFrame, deep ECC retry passes are truncated against the CCTL budget so the head moves on rather than spending the time budget on a marginal sector. The background sector relocation path that a desktop drive runs during idle windows is suppressed, because surveillance firmware does not assume an idle window will arrive.
The downstream effect on diagnostics is that SMART attribute 5 (Reallocated Sectors Count) and SMART attribute 197 (Current Pending Sector Count) stay artificially clean against the real physical degradation of the platter. A Purple that reads as healthy on a host SMART query can already be carrying weak tracks the firmware refused to retry against during motion-event ingest. SMART status on a WD Purple is a lagging indicator, not a leading one, and the bench treats it as such. Imaging strategy starts from a per-head bitmap and ATA timeout posture, not from the SMART table.
ROYL Service Area Module Map and PC-3000 Access
Modern WD Purple drives run the ROYL firmware architecture on Marvell controllers. The firmware loader sits in the U12 SPI ROM on the PCB; the working firmware modules sit magnetically on the platters in the negative-cylinder Service Area. On a Service Area corruption case the resident firmware cannot complete its boot handoff, and the drive returns a generic ROM-model identifier or holds the SATA bus in a permanent busy state. Recovery access goes through the PC-3000 WD Marvell utility, which interrupts the boot sequence over the diagnostic UART and pushes a utility-family loader into the controller's SRAM. From that loader the bench reads and rewrites Service Area modules over the SATA PHY using vendor-specific commands.
- Module 01 (Directory): the offset and length map for every other module in the Service Area. Module 01 is read first because the rest of the access plan is keyed off the directory.
- Module 02 (Configuration flags): operational flags including background relocation and self-test behavior. The bench patches Module 02 in RAM during imaging so the drive does not attempt background reallocation against the weak sectors being imaged.
- Module 0A (Head map): the physical head configuration. A degraded head is logically disabled here so the drive can initialize past head identification and the surviving surfaces can be imaged.
- Module 32 (G-list): the grown defect list. On CMR Purple drives an overfilled Module 32 produces the slow-responding bug, where read throughput collapses into kilobytes per second as the firmware loops on the defect parse. The recovery workflow clears Module 32 and disables background relocation for the imaging window.
- Module 33 (P-list): the factory primary defect list, read-only at the bench and used as a sanity check against the head map.
- Module 47 (Adaptive parameters): the head-stack calibration table. Micro-jog offsets, preamplifier gain, and thermal fly-height control voltages live here. The Module 47 contents are what the U12 ROM transfer is protecting on a PCB swap; a donor Module 47 will not drive the patient heads correctly.
- Module 190 (T2 Translator): the indirect logical-to-physical translator on the DM-SMR Purple variants. The dedicated Module 190 rebuild workflow for SMR translator corruption is documented in the earlier section on this page.
- Modules 102 through 109 (ROM shadows): magnetic backups of the U12 ROM image. If the original PCB is destroyed by overvoltage and the SPI flash is unreadable, the ROM shadow modules are read off the platters and reassembled into a valid image for the donor PCB.
The high-capacity Purple Pro family (12TB and above) uses the HGST Command Code Based firmware architecture inherited from the Hitachi platform, not the standard ROYL module structure. The Service Area access protocol, NVRAM handling, and PC-3000 entry sequence on those drives match the Ultrastar enterprise branch and are covered in the Helium Purple Pro sections earlier on this page rather than here.
PCB Matching Beyond the Family Code
The donor-matching section above lists the head-stack axes that determine whether a donor body will read against the patient adaptives. The PCB itself has a separate set of matching axes, used when the failure is electrical rather than mechanical. A WD PCB carries a silkscreened identifier in the form 2060-xxxxxx-yyy REV with a trailing revision code. The six-digit number following 2060- is the board generation, and it determines the main controller IC, the motor combo IC, and the SPI ROM footprint. The three-digit code following it varies with sub-revision; the REV letter or P-code is generally cross-compatible inside the same six-digit base.
- 2060- six-digit base: a board with a different six-digit base will carry a different Marvell controller or a different motor combo IC and is not a valid donor regardless of which Purple model the marketplace listing claims it fits.
- Motor driver IC family: a board generation may ship with more than one motor combo IC across its production run. The patient and donor must carry the same combo IC family because the firmware drives the VCM and spindle through that specific part's register map.
- U12 SPI flash footprint: the SPI ROM package and density must accept the patient's adaptive blob during the U12 transfer. Newer board revisions on the same generation occasionally swap the SPI part, which breaks the direct transfer without an intermediate read and reflash.
- Diode and TVS protection footprint: a board that was destroyed by overvoltage may have damaged TVS diodes still in place. The donor is checked for equivalent protection components before the U12 ROM is moved, so the rebuilt drive is not handed back to the same power rail that killed the original.
The U12 ROM itself is desoldered from the patient board using the Atten 862 hot-air rework station with a low-profile nozzle, read out on an external SPI programmer, then reflowed onto the matched donor PCB. The transfer is verified by checking the adaptive table contents against the read-back image before the rebuilt PCB is mounted on the patient body. The general donor and PCB matching framework is on how donor drives are matched.
24/7 Duty-Cycle Wear at Recovery Time
A WD Purple deployed in a security closet or a tightly packed NVR rack spends years at an elevated steady-state temperature with a write-heavy duty cycle. The wear pattern at recovery time is different from a desktop WD Blue or Black drive at the same age, and the bench plans the imaging strategy around it. The phrasing below is conditional, not anecdotal; it describes what the bench treats as a working hypothesis when a Purple arrives with the listed symptoms, not specific recoveries.
- Fluid dynamic bearing lubricant migration: the spindle motor uses a fluid dynamic bearing with an oil film pumped into a herringbone groove and contained by a capillary seal. Sustained operation above the bearing's designed thermal window accelerates oil migration past the seal. A Purple that arrives with non-repeatable run-out, spindle wobble during the spin-up phase, or audible bearing noise is treated as a candidate for an imaging-only window before the bearing degrades further, with no expectation that the original spindle will survive long enough for a multi-pass image.
- Preamp thermal aging: the head preamplifier IC on the flex cable sees continuous current at elevated temperature for the full deployment lifetime. Drives that arrive after long surveillance runs sometimes present with a head channel whose read amplitude has drifted outside the patient ROM's adaptive window. The bench reads channel margin per head before committing to an imaging order, and a marginal head is bypassed in the first pass rather than allowed to stall the extraction of pristine bands served by the other heads.
- Voice coil bearing and ramp wear: the VCM pivot bearing and the ramp-load parking surface accumulate wear from the continuous seek pattern of NVR ingest, which never lets the actuator rest in a stable parked state for long. A Purple with retract clicks at power-on, ramp residue visible under the stereo microscope, or audible roughness during seek is treated as a mechanical-tier case even when the firmware will still respond.
- Micro-jog drift: the per-head micro-jog offsets stored in Module 47 are factory-calibrated for the original mechanical tolerances. After years of thermal cycling and continuous head usage, the read element can shift inside its adaptive window. The drive may still pass identification but return uncorrectable errors on tracks it previously read cleanly. The bench treats this pattern as a candidate for a per-head re-read with relaxed channel parameters before any mechanical work is authorized, since the heads themselves are not yet failed.
Firmware-tier work on the standard WD Purple family is priced at $600–$900 ($600 CMR, $900 SMR), with mechanical-tier work at $1,200–$1,500. Helium-sealed Purple Pro drives that require opening the sealed chamber for head work are priced from the helium head-swap tier at $3,000–$4,500. Donor drives are matching drives used for parts. Typical donor cost: $50–$150 for common drives, $200–$400 for rare or high-capacity models. We source the cheapest compatible donor available.