🛠 Console série UART2 à 1,5 Mbaud : debugger U-Boot et récupérer une carte briquée

Radxa ZERO 3W · avance · IMG-rz3w-avance-8-rz3w-uart-debug-uboot-recovery.svg — Radxa ZERO 3W avec adaptateur USB-TTL 3,3 V câblé sur les broches 8 (TX) / 10 (RX) et GND, terminal picocom à 1500000 affichant le boot U-Boot ; en médaillon, le bouton MaskROM et le branchement USB-C 1 vers un PC pour le mode Rockusb.

Objectives

When the board fails to boot (failed overlay, interrupted update, corrupted eMMC), the serial console is your lifeline. On the ZERO 3W, it resides on UART2_M0, pins 8 (TX) / 10 (RX) of the 40-pin connector, at 1500000 baud 8N1 — and it is also the default U-Boot console. This tutorial covers USB-TTL wiring, observing the boot chain, interrupting U-Boot, the documented pitfall of enabling UART2 as an application UART (a stray input can prevent booting!) with its official workaround, and final recovery via MaskROM + Rockusb.

Hardware

1) Listen to the boot

sudo picocom -b 1500000 /dev/ttyUSB0     # ou : sudo minicom -D /dev/ttyUSB0 -b 1500000

Connect the power supply: you should see BootROM then U-Boot (default console on UART2_M0 at 1.5 Mbaud), the kernel, then the login. A screen full of weird characters = wrong baud rate (the #1 reflex is 115200 inherited from other boards — here it is 1,500,000).

2) Interrupt U-Boot

Press a key during the countdown: you land in the U-Boot console (=>). Safe diagnostic commands: version, mmc info, mmc list, printenv. Avoid any write operations (mmc write, mw) unless you know exactly what you are doing.

3) The documented pitfall: UART2 as an application UART

Radxa warns (hardware-interface page): enabling UART2_M0 as a normal serial port via rsetup overlays exposes the input pin to signals that can be interpreted by the U-Boot console — stray inputs can interrupt the boot and the device may fail to start. The official workaround involves U-Boot configuration:

sudo nano /etc/default/u-boot    # retirer la console série de la ligne de boot U-Boot
sudo u-boot-update               # regenre extlinux/uEnv avec la nouvelle config
sudo reboot

4) Last resort: MaskROM + Rockusb

# Carte eteinte : maintenir le bouton MaskROM, brancher USB-C 1 vers le PC, relacher
lsusb | grep -i 2207                 # le RK3566 est en mode Rockusb (vendor 2207)
sudo rkdeveloptool ld                # detection BootROM/eMMC
sudo rkdeveloptool wl 0 system.img    # reecrit l'image complete sur l'eMMC
sudo rkdeveloptool rd                 # redemarre

Expected Verification

The complete chain BootROM -> U-Boot -> kernel -> login scrolls on the serial screen. After the UART2 workaround, the boot is never interrupted again by a stray wire on pin 10. After Rockusb recovery, the board reboots onto a fresh image.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials