Add UART BOOTSEL reboot command to the regular firmware
The bridge sends 0xAA 0xFE 0x08 0x01 'BOOTSEL' ck; the firmware verifies checksum and magic and calls reset_usb_boot(). Exposed as controller-uart-bridge --reboot-bootsel PORT and build.py --uart-port PORT, which waits for the ROM loader before running picotool.
This commit is contained in:
parent
b6a017eb06
commit
6e0676d9df
8 changed files with 161 additions and 1 deletions
19
README.md
19
README.md
|
|
@ -2649,6 +2649,25 @@ The firmware acknowledges the endpoint-zero request, waits 50 ms, and then
|
|||
calls the Pico ROM `reset_usb_boot()` entry point. Physical BOOTSEL remains the
|
||||
fallback if the firmware or USB management path is unavailable.
|
||||
|
||||
The regular UART firmware has the same shortcut over its serial link. The
|
||||
host sends the command frame `0xAA 0xFE 0x08 0x01 "BOOTSEL" checksum`; the
|
||||
firmware verifies the checksum and magic, flushes UART TX, and calls
|
||||
`reset_usb_boot()`. Line noise or a misframed report cannot trigger it. The
|
||||
Pico can stay plugged into the Switch or a PC; only the UART adapter needs to
|
||||
be connected to the host:
|
||||
|
||||
```sh
|
||||
# One-off reboot, then flash the published image
|
||||
uv run controller-uart-bridge --reboot-bootsel /dev/ttyUSB0
|
||||
picotool load -v -x firmware/switch-pico.uf2
|
||||
|
||||
# Build, publish, reboot the running Pico and flash in one step
|
||||
uv run python build.py --uart-port /dev/ttyUSB0
|
||||
```
|
||||
|
||||
Firmware from before this command ignores the frame; hold BOOTSEL while
|
||||
replugging once to install a build that has it.
|
||||
|
||||
Flash alternatives: bootsel + drag-drop or `picotool load`.
|
||||
Flags:
|
||||
- `SWITCH_PICO_LOG`: enable/disable UART logging on the Pico.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue