a little about firmware rtl92XX
As you see we a have two files. UTNVME - userspace code. UTGDFW - bootloader (aka GoldenFirmware).
All files have a same structure:
Header
Param
Main code
Here is example
github.com/lolyinseo/RTL92XX
. Two files: UTNVME_A_v1.29.12.011122.bin and ImHex project(
github.com/WerWolv/ImHex/releases
).
Download both and open project with ImHex for more info
In flash.
x0 - x3FFF empty space
x4000 - userspace code header (from UTNVME)
x4800 - you config
Code:
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
00004800 01 02 F4 9B E0 E1 02 02 D4 09 00 D5 00 80 03 DA ô›àá Ô Õ € Ú
00004810 0B 04 10 92 06 10 03 52 00 65 00 61 00 6C 00 74 ’ R e a l t
00004820 00 65 00 6B 00 05 18 03 52 00 54 00 4C 00 39 00 e k R T L 9
00004830 32 00 31 00 30 00 41 00 2D 00 56 00 41 00 07 20 2 1 0 A - V A
00004840 03 46 00 57 00 31 00 2E 00 32 00 39 00 2E 00 31 F W 1 . 2 9 . 1
00004850 00 32 00 2E 00 30 00 31 00 31 00 31 00 32 00 08 2 . 0 1 1 1 2
00004860 00 09 01 0A 00 00 07 00 0B 00 00 00 00 0F FA 12 ú
00004870 70 13 00 15 01 21 01 23 05 25 01 00 00 00 00 00 p ! # %
compare width
Code:
U2PHY : 02 f4 9b e0 e1
U3PHY : 02 d4 09 00 d5 00 80
VID : 0x0bda
PID : 0x9210
MANUFACTURE : "Realtek"
PRODUCT : "RTL9210A-VA"
SERIAL : "FW1.29.12.01112"
SCSI_PRODUCT : "n/a"
SCSI_VENDOR : "n/a"
DISK_HOTPLUG : 0x00
LED : 0x01
PINMUX1 : 0x00070000
PINMUX2 : 0x00000000
U2_MAXPWR : 0xfa
U3_MAXPWR : 0x70
ASPMDIS : 0x00
PCIE_REFCLK : n/a
DISK_IPS_THRES : 0x01
SWR_1_2V : n/a
EN_UPS : n/a
PD : n/a
CUSTOMIZED_LED : n/a
SUSPEND_LED_OFF : n/a
FORCE_USB_SPEED : n/a
FORCE_PCIE_SPEED : n/a
EN_U1U2 : n/a
FORCE_USB_QUIRK : n/a
FORCE_PCIE_QUIRK : n/a
FAN : n/a
DIS_SHOW_EMPTY_DISK : 0x01
FORCE_SATA_NORMAL_DMA : n/a
UART_DBG_PIN : 0x05
FINGER_PRINT_EN : n/a
RM_INTERNAL_RD : 0x01
HS_AUTO_SWITCH : n/a
UART_BAUD_RATE : n/a
CUSTOMIZED_DISK_IDENTIFY : n/a
HW_LED_CFG : n/a
CDROM_CFG : n/a
SUPPORT_HID : n/a
LATE_INIT_DISK : n/a
SCSI_WP_PIN : n/a
SD_MMC_TYPE : n/a
FORCE_PORT_TYPE : n/a
BCDDEVICE : n/a
SUSPEND_DISK_OFF : n/a
SCSI_WB_PIN : n/a
CUSTOMIZED_FEATURE : n/a
01 - param id (U2PHY)
02 F4 9B E0 E1 - param value
02 - param id (U3PHY)
02 D4 09 00 D5 00 80 - param value
etc ..
xc700 - bootloader header
x13000 - bootloader main code
x20000 - userspace main code
no CRC for whole flash, only for maincode block, bootloader block. So you can build your own dump for flashing the chip if you dont have a backup.
If you have additional information, especially utilities for Linux, please share