Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8051

General • Programming another RP2354's flash

$
0
0
So I have a situation where there's a 'system controller' RP2354 on a motherboard, and a bunch of cards that can be plugged into that motherboard, probably with something like a PCIe x8 edge-connector interface. I want the system-controller to be able to easily update the flash on the plugged-in cards. There's a shared bus interface between the cards and system-controller, and extra control signals available if necessary.

It occurred to me that the UF2 file format is pretty easy to parse - basically tagged blocks of data and addresses to write them at. The addresses are within the memory-map of the RP2354 address-space (so the first byte starts at 0x1000_0000) but that's ok, when writing, just subtract 0x10000000 from the target address sent to the flash.

When programming a card, the system-controller can hold the RP2354 on the card in reset and access the on-board flash using the QSPI bus (probably in single-bit mode, but still). At least one of the cards will have a QSPI PSRAM sitting on that bus, so I'm thinking I'd use an analogue mux to prevent long signal traces back to the system controller board. It probably has value to do that for all the cards, thinking about it, since the on-board flash is just bonded to those pins.

This way, the "update the firmware" process is the usual friendly hold-down-bootsel-on-reset and copy the UF2 to the "flash drive" that appears. The UF2 can contain multiple images, one per card, and they don't even need to be all RP2354 images. If I want to put in an STM32 / XMOS for some hardware reason, the same update process will work, just flash the part.

Anything I'm missing here ?

Statistics: Posted by ThrudTheBarbarian — Mon Dec 08, 2025 11:10 am



Viewing all articles
Browse latest Browse all 8051

Trending Articles