RCORE RK3588 Tech Note: Entering MaskRom (USB Bootloader) Mode

i figured out how to access MaskRom mode on RCORE RK3588 with a Classic MNT Reform motherboard:

  1. Make sure XSW DIP switch (on the Reform motherboard) is OFF. Bridge the left pin of XSW to GND, for example with tweezers briding it to the bottom left leg of the CPURST button.
  2. While bridging, power on the reform/MB.
  3. RK3588 is now in MaskRom mode.
  4. To USB A connector J17 on Reform MB (directly next to HDMI port), connect a USB A-A cable or USB A-C cable.
  5. Connect the other end to your host computer via a hub that has power control for each port, with power turned off (might not be necessary to watch out for that, but i would recommend it, to not connect 5V from the host and 5V from the Reform Motherboard)

lsusb yields:

Bus 001 Device 054: ID 2207:350b Fuzhou Rockchip Electronics Company

Clone and build xrock: GitHub - xboot/xrock: The low level tools for rockchip SOC with maskrom and loader mode support.

And you also need the binaries from rkbin: GitHub - rockchip-linux/rkbin: Firmware and Tool Binarys

sudo ./xrock maskrom rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.18.bin rkbin/bin/rk35/rk3588_usbplug_v1.11.bin --rc4-off
sudo ./xrock version
RK3588(3588): 0x33353838 0x00040000 0x8424000e 0x23062000
$ sudo ./xrock capability

Capability: 3f 07 00 00 00 00 00 00
    Direct LBA: enabled
    Vendor Storage: enabled
    First 4M Access: enabled
    Read LBA: enabled
    New Vendor Storage: enabled
    Read Com Log: enabled
    Read IDB Config: disabled
    Read Secure Mode: disabled
    New IDB: enabled
    Switch Storage: enabled
    LBA Parity: enabled
    Read OTP Chip: disabled
    Switch USB3: disabled

$ sudo ./xrock flash
Flash info:
    Manufacturer: Samsung (0)
    Capacity: 238560MB
    Sector size: 512
    Sector count: 488570880
    Block size: 512KB
    Page size: 2KB
    ECC bits: 0
    Access time: 40
    Flash CS: <0>
    Flash ID: 45 4d 4d 43 20

On regular (1.5MBaud) serial I get:

Boot1 Release Time: Oct 17 2023 17:09:54, version: 1.11

The same principle should work on Pocket Reform with a shim connecting the outermost pin pairs on the SYSCTL USB header, but pin 139 of the main CPU connector isn’t connected to anything on the Pocket Reform MB V1, so you’d have to solder some magnet wire there (advanced). I’m improving this now on Pocket Reform MB V2.

4 Likes