Skip to content

Auto-download-reboot

(CEN-less uploading)

This feature allows to upload code using UART, without needing to ground the CEN wire or power-cycle the device.

It is enabled by default (using the LT_AUTO_DOWNLOAD_REBOOT option). It works by listening to incoming UART data, and checking if it matches a command that the flashing program would send. If it does, a chip reboot is performed and the uploading process starts.

Note

ADR will only work if there's already a recent build of LibreTiny flashed to the device (and if the device doesn't bootloop or freeze immediately).

Beken 72xx

The code listens on UART1 for a link-check command (01 E0 FC 01 00). The baudrate configured on the serial port has to be 115200 - it is configured automatically upon booting, but ADR won't work anymore if you change the baudrate manually. Because BK72xx doesn't have a dedicated "persistent" download mode, a normal reboot is performed and the chip waits a few hundred milliseconds for another link-check command.

Realtek AmebaZ

This only works when using ltchiptool for flashing. Upon starting UART communication, the tool sends 55 AA 22 E0 D6 FC (0x55AA followed by the realtek-ambz family ID). After detecting that pattern, the chip proceeds to reboot into UART download mode (using lt_reboot_download_mode())

Realtek AmebaZ2

The code listens on UART2 for a ping\n command, that is sent by ltchiptool (and possibly by the vendor flasher, too). The device is then rebooted to download mode.