By the book:
https://github.com/raspberrypi/pico-boo ... varm_otp.cThe second one would be 'burning a basic firmware to set the otp'.
Actually this can be loaded directly in RAM by SWD, then calling the above BOOTROM function, maybe safer.
It might be scripted in OpenOCD to 'directly access the registers using the SBPI bridge', to the Synopsys NVM OTP IP, but good luck with that.On a blank device, the OTP contents is all zeroes, except for some basic device information pre-programmed during
manufacturing test. Each bit can be irreversibly programmed from zero to one. To program the OTP contents:
• Directly access the registers using the SBPI bridge
• Call the bootrom otp_access API (Section 5.4.8.21)
• Use the PICOBOOT interface of the USB bootloader (Section 5.6)
https://github.com/raspberrypi/pico-boo ... varm_otp.c
Code:
// ----------------------------------------------------------------------------// Programming configuration constants// Note these values are dumped from Synopsys testbench waveforms as the docs// are utterly inscrutable.Actually this can be loaded directly in RAM by SWD, then calling the above BOOTROM function, maybe safer.
Statistics: Posted by gmx — Mon Feb 09, 2026 10:00 pm