RTL9210 Firmware and Tools

Bensuperpc February 20, 2025 #Features #RTL9210 #Firmware #Dump

RTL9210

Firmware and tools for RTL9210 and RTL9210B USB to NVMe/SATA bridge controller. They are provided by station-drivers, Realtek, etc.

All procedures described in this Git repository are at your own risk. In case of software issues, you can find some solutions in the Unbrick section.

Files and Folders

Firmware

The table below lists all known firmware versions available in this git repository's firmware folder.

Firmware ver.Build dateRTL9201-ARTL9210-BLinks
1.20.12?Download
1.23.52020.09.03Not found yet
1.23.92020.10.05Download
1.23.15?Download
1.25.7?Download
1.25.14?Download
1.25.18?Download
1.27.24?Download
1.27.25?Download
1.28.17?Download
1.29.8?Download
1.29.12?Download
1.29.12.011122?Download
1.29.391?Download
1.30.17?Download
1.30.21.070622?Download
1.30.24.030822?Download
1.30.28.081022?Download
1.31.17.102022?Download
1.31.17.102022 (2)?Download
1.32.16.010923?Download
1.32.45.041323?Download
1.32.49.140423?Download
1.32.49.140423 (Lcd)?Download
1.32.68.06262328.06.23Download
1.32.87.08292329.08.23Download
1.32.901.120722?Download
1.33.7.19102319.10.2023Download
1.33.44.01182418-01-2024Download
1.33.98.09032403-09-24Download

Supported Devices

There are dozens of devices with the RTL9210B, I have gathered in this git repository some firmware configs found on the www.station-drivers.com forums.

You can check in the configure folder or use values from the dump folder to create your own configuration.

BrandModelControllerconfig filedumpNotes
InateckFE2025RTL9210Bconfigdump
SabrentEC-SNVERTL9210Bconfig
MokinMOUD0501RTL9210B
UgreenCM559RTL9210Bconfigdump
SmallRigSD-01RTL9210Bdump
MKUOSD-01RTL9210(B ?)
OricoM2PJM-C3RTL9210(B ?)dump
UnionsimeMD202RTL9210Bconfigdump
UniAccessories?RTL9210Bconfigdump

How to Flash the Firmware

Warning: Flashing the firmware can brick or permanently damage your device. Do it at your own risk. The author of this Git repository is not responsible for any damage to your device. If you brick your device, you can try to unbrick it with the Unbrick section.

Info: The firmware update tool is only available for Windows and does not work well on Linux with Wine or in a virtual machine.

  1. Download the correct and latest firmware and tools from the firmware folder.
  2. Extract the archive.
  3. Connect the device to the computer.
  4. Launch the firmware update tool (such as UTHSB_MPtool) provided in the firmware archive.
  5. Dump your device configuration with the firmware update tool and save it.
  6. Disconnect the enclosure from the computer.
  7. Remove the NVMe/SATA drive.
  8. Reconnect the device to the computer.
  9. Copy the configuration file (.cfg) of your device from the configure folder to the configure folder where the firmware update tool is located.
  10. Change the SERIAL in the configuration file to match your dump file if it is defined. (Optional but recommended)
  11. Comment out the DISK_IPS_THRES with a ; in the configuration file. (Optional but recommended)
  12. Launch the firmware update tool (such as UTHSB_MPtool) provided in the firmware archive.
  13. Select the configuration file (.cfg) of your device.
  14. Click on the flash/update device button and wait until the process is finished.

Configuration

This section describes how to configure (in cfg files) the firmware for your device, all configurations are in the configure folder or use values from the dump folder to create your own configuration.

Each configuration are unique to the device, your enclosure may not work properly if you have not the right configuration.

Variable nameValue exampleDescription
U2PHY02 f4 9b e0 e1USB 2.0 Physical Layer settings
U3PHY02 d4 09 00 d5 00 80USB 3.0 Physical Layer settings
VID0x0bdaVendor ID
PID0x9210Product ID
MANUFACTURE"Unionsine"Manufacturer name
PRODUCT"MD202"Product name
SERIAL"012345679545"Serial number, 12 characters and unique per device
SCSI_PRODUCT"Unionsine MD202 "SCSI Product name
SCSI_VENDOR"n/a"SCSI Vendor name
CFEXPRESS0x0Enable CFExpress card reader (Always 0x0)
USB_SELF_PWR0x0If the device is self-powered ?
LED0x1Set to 0x1 if the device has a LED
DISK_HOTPLUG0x0Anable device supports hot-plugging (Very often 0x0)
PINMUX10x0Pin multiplexing settings (first set)
PINMUX20x0Pin multiplexing settings (second set)
U2_MAXPWR0xfaUSB 2.0 mode maximum power
U3_MAXPWR0x70USB 3.0 mode maximum power
ASPMDIS0x0Enable or disable active power management
PCIE_REFCLK0x0PCIe reference clock
PCIE_PWRCUT_THRES0x5Suspends the PCIe power after 5 minutes of idle time (1 unit = 1 minute),, it recommended to comment this line
DISK_IPS_THRES0x1Responsible for powering down the PCI bus after a timeout to conserve energy
SWR_1_2V0x0?
EN_U1U20x1Set to 0x1 to enable USB 3.0 Link Power Management
EN_UPS0x1Enable USB Power Saving ?
PD0x1Power Down
CUSTOMIZED_LED02 01 07To customize the LED behavior
SUSPEND_LED_OFF0x1?
FORCE_USB_SPEED0x0?
FORCE_PCIE_SPEED0x0?
FORCE_USB_QUIRK0x0?
FORCE_PCIE_QUIRK0x0?
FAN0x0Set to 0x1 if the device has a fan
DIS_SHOW_EMPTY_DISK0x1Set to 0x1 to show the enclosure when no NVMe/SATA drive is connected
FORCE_SATA_NORMAL_DMA0x0Force SATA to use normal DMA
RM_INTERNAL_RD0x0?
HS_AUTO_SWITCH0x0?
UART_DBG_PIN0x0UART Debug pin
UART_BAUD_RATE0x0UART Baud rate
FINGER_PRINT_EN0x0Enable fingerprint authentication
CUSTOMIZED_DISK_IDENTIFY0x0?
HW_LED_CFG0x0?
CDROM_CFG0x0?
SUPPORT_HID0x0?
LATE_INIT_DISK0x0?
SCSI_WP_PIN0x0Write Protect SCSI pin ?
SD_MMC_TYPE0x0?
FORCE_PORT_TYPE0x0?
BCDDEVICE0x0?
SUSPEND_DISK_OFF0x7?
SCSI_WB_PIN0x0?
CUSTOMIZED_FEATURE0x0?
PERIPH_API0x0?
RAID_CFG0x0?

Create your own configuration

To create your own configuration, you can use the dump folder to get the values of your device.

  1. Find the dump file of your device in the dump folder or on the internet.
  2. Create a new file in the configure folder with the name of your device and the extension .cfg.
  3. Copy the content of the dump file into the new file.
  4. Remove the first 3 lines of the dump file. These lines start with a line of *, contain the device name on the second line, and have another line of * on the third line.
  5. Remove variables with a value of n/a. (Optional)
  6. Replace : with = for variable definitions.
  7. Comment DISK_IPS_THRES by changing it to ;DISK_IPS_THRES = 0x1 if you want. (Optional)
  8. Launch the firmware update tool (such as UTHSB_MPtool), select the new configuration file, and flash it.

Unbrick

When you have bricked your device, you can try to unbrick it with the following steps:

  1. Disconnect the device from the computer and remove the NVMe/SATA drive.
  2. Disassemble the enclosure and locate the flash chip, which is usually an 8-pin 2x3 mm chip. The chip might be labeled P25Q40SH, FM25Q04A, PUYA P25D40H, or FM25Q04A.
  3. Find the datasheet for the flash chip, and locate the CS# and VCC pin or CS# and Hardware Reset pin. Generally, VCC is pin 8 and CS# is pin 1.
  4. Short the CS# and VCC pin, or better, use an SPI programmer like the CH341A. If using an SPI programmer, you can skip the next steps and directly flash the firmware.
  5. Launch the Realtek firmware update tool (such as UTHSB_MPtool).
  6. Connect the enclosure to the computer and keep the pins shorted. Keep the pins shorted for 10-15 seconds or until the device is recognized by the computer or the Realtek firmware update tool.
  7. Launch the Realtek firmware update tool (such as UTHSB_MPtool).
  8. Click on the flash/update device button and wait until the process is finished.

image

Firmware changelog

1.23.9.100520 2020.10.05

1.23.5.09320 2020.09.03

1.27.25.072921 2021.07.29

1.29.8.122921 ?

1.29.12.011122 ?

1.30.17.070622 ?

1.30.21.070622 ?

1.31.17.102022 ?

1.32.16.010923 ?

1.32.45.041323 ?

1.32.49.140423 ?

1.32.68.062623 28.06.23

1.32.87.082923 29.08.23

1.32.901.120722 ?

1.33.7.191023 19-10-2023

1.33.44.011824 18-01-2024

1.33.98.090324 03-09-24

Contribute

Don't hesitate to contribute to this git repository by creating a pull request or by contacting me by email: bensuperpc [at] gmail.com

Sources