There are currently two working USB modes for any s1mp3 (still working) device. Each of these two modes allows using the peripheral as an USB Client Device. We know that the driver for this binding is contained in the 1st-stage bootloader code located in the BROM, or perhaps the TROM which resides inside the ATJ2085 chip, too.
Normal USB mode
In this mode the device acts like a default USB Mass Storage Client Device, also called USB Disk. See USB Mass Storage Device Class. The Bulk-Only Transport model gets used.
ADFU Recovery Mode
The s1mp3 switches to the ADFU (Actions Device Firmware Update) mode when the 1st-stage bootloader code encounters any error or the firmware wishes to enter firmware upgrade mode. The only possible, regular operation in this mode is to flash a new FULL firmware (a dumped/extracted partial firmware file will not work).
Hard ADFU mode is entered during bootup when loading BREC is unsuccessful. The ADFU server code for this mode is in the BROM.
- 05: Upload
- 10: Execute
Soft ADFU mode is entered by choosing Firmware Upgrade option on player or sending SCSI commands to switch the player to upgrade mode. The code for this mode is located on the NAND flash along with the firmware, and executes as an ACTOS application (ADFUS.BIN). Soft ADFU does not switch the device to ADFU mode, instead it uses custom commands sent using the USB mass storage protocol.