Repository navigation
Conversation
Port for the RP2350 (Arm secure) built on pico-sdk, started by the bootrom from an IMAGE_DEF in the first sector of flash: - mass storage DFU with 256 byte UF2 payloads in family 0xe48bff59; writes are limited to the application area and a sector is only erased when needed - bootloader in the first 32 KB, application linked at 0x10008000 - double tap of reset through POWMAN's DOUBLE_TAP flag: RAM and the POWMAN scratch registers do not survive a RUN pin reset - self-update that invalidates the IMAGE_DEF first and rewrites it last, so an interrupted update leaves the bootrom's USB bootloader as recovery - WS2812 indicator on PIO, serial number from the bootrom chip info - blinky and update-tinyuf2 applications pico-sdk's own TinyUSB support is switched off because its glue redefines the family_support.cmake functions, and pico_override_flash_size() is not used because the PICO_FLASH_SIZE_BYTES it defines makes every application write hard_assert in flash_range_erase/program. family_add_app() also forwards LD_FLASH_BOOT_SIZE and the pico-sdk variables to the applications. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- tools/get_deps.py: pin pico-sdk 2.3.1 for the rp2350 family - build.yml and check_build.py: build intechstudio_grid_rp2350 with the ARM jobs - test_build.py: rp2350 also compiles apps/blinky - README.md and supported_boards.md: list the RP2350 port. The generated supported_boards.md also gains the two Espressif Intech boards that were missing from it on master. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Same hardware and USB IDs as intechstudio_grid_rp2350, with its own product string, board ID and volume label (WRIDRP2350) to tell the two bootloaders apart, like intech_grid and intech_wrid on the SAMD51. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Hardware-in-the-loop (HIL) Test Reportci.json (ci.lan)PR head Every roster board: the HIL runner or a roster changed (8 boards). HIL report unavailable: the run ended without a summary (run incomplete). Not covered on this rig:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an RP2350 port (Arm secure) built on pico-sdk, with one board:
intechstudio_grid_rp2350(16 WS2812 on GPIO6, 32 KB bootloader region).0xe48bff59. Writes are limited to the application area (0x10008000and up); a 4 KB sector is only erased when a block does not fit in blank flash.board_reboot_to_bootloader().update-tinyuf2.uf2): invalidates the IMAGE_DEF first and rewrites it last, so an interrupted update leaves the bootrom's USB bootloader as recovery.blinkyandupdate-tinyuf2applications.tools/get_deps.py(pico-sdk 2.3.1, pinned),build.yml,check_build.py,test_build.py,README.mdandsupported_boards.md; port documentation is inports/rp2350/README.md.Two commits: the port itself, then its registration.
Verified on hardware (Grid RP2350 board)
INFO_UF2.TXT; the updater erased itself)Verified by building
build_util.ymldoes: pinned SDK fetched byget_deps.py, noPICO_SDK_PATH,MinSizeRel, Arm GNU 13.3samd51intech_gridstill builds with the editedfamily_support.cmakemaster(missing agentrc/HIL modules in my environment), none new.supported_boards.md, codespell, YAML and whitespace hooks pass.Things to know
ports/family_support.cmakeis touched (it forwardsLD_FLASH_BOOT_SIZEand the SDK variables to applications), so CI builds every port for this change.supported_boards.mdis generated; it also gains two Espressif Intech boards that were already missing onmaster.family.cmake(its glue redefinesfamily_support.cmakefunctions); CMake prints a warning about that.PICO_NO_PICOTOOLis set so CI does not build picotool.Not done
board_flash_protect_bootloader()is a stub, pending the flash chip's block-protect bits.BOARD_FLASH_SIZEis an assumed 2 MB (marked TODO inboard.cmake); the USB VID0x2e8ais Raspberry Pi's, so check the allocation before shipping.🤖 Generated with Claude Code