blflash
BL602 serial flasher
blflash flashes firmware to Bouffalo Lab BL602 (and compatible BL604) RISC-V
WiFi SoCs over UART. It talks to the mask ROM boot protocol, uploads the
eflash loader, and writes the image to flash. It is written in Rust.
Forked from https://github.com/spacemeowx2/blflash
Includes a port of the RF calibration patch tool from https://github.com/xouillet/bl_rfbin
Inspired by https://github.com/esp-rs/espflash, https://github.com/bouffalolab/BLOpenFlasher
ISP documentation: https://github.com/bouffalolab/bl_docs/tree/main/BL602_ISP
Build
You need a current Rust toolchain. Install or update it with rustup update,
then build with:
cargo build
Usage
Put the chip into download mode: tie GPIO 8 high, then reset the chip. Flash a firmware image with:
./target/debug/blflash flash sdk_app_helloworld.bin --port /dev/ttyUSB0
On Linux, your user needs access to the serial port. On Arch-based systems
add yourself to the uucp group; on Debian/Ubuntu use the dialout group.
TODO
- Flash protocol
- Generate Partition bin
- Generate boot info with compiled bin
- Generate dtb bin
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.