It looks like the advertised way to write to the OTP registers is to insert a special statement into the /boot/config.txt file (such as program_usb_boot_mode=1), and then reboot the Pi. Apparently, something during the boot process sees this magic line in config.txt and performs some other magic to actually write to a bit in one of the OTP registers.
Surely there is an easier way to program an OTP register?
Admittedly, you don't want it to be "too easy" to program the OTP registers, because such programming is irreversible. But surely there is an API (perhaps in the bowels of the VC interface?) that would allow me to program an OTP register by writing a C program and executing it? I searched through all the source at https://github.com/raspberrypi/userland but I can't find anything that writes to OTP registers. (Of course reading the OTP registers is easy).
Any advice on how to program an OTP register without resorting to the contortions of modifying config.txt, rebooting, and restoring config.txt?
Thanks!
-
- Posts: 13
- Joined: Tue Jul 11, 2017 5:24 pm
- DougieLawson
- Posts: 40547
- Joined: Sun Jun 16, 2013 11:19 pm
- Location: A small cave in deepest darkest Basingstoke, UK
- Contact: Website Twitter
Re: Writing to OTP registers without rebooting
You can't do it any other way.
The OTP bits that can be set are set by special code in the firmware. That code only runs at boot time and only reads its commands from /boot/config.txt
On a 3B+ the USB boot bit is set in the factory.
The OTP bits that can be set are set by special code in the firmware. That code only runs at boot time and only reads its commands from /boot/config.txt
On a 3B+ the USB boot bit is set in the factory.
Any language using left-hand whitespace for syntax is ridiculous
Any DMs sent on Twitter will be answered next month.
Fake doctors - are all on my foes list.
Any requirement to use a crystal ball or mind reading will result in me ignoring your question.
Any DMs sent on Twitter will be answered next month.
Fake doctors - are all on my foes list.
Any requirement to use a crystal ball or mind reading will result in me ignoring your question.
Re: Writing to OTP registers without rebooting
There's also this readme that describes how to write(?) some OTP values. No idea if that's helpful and I didn't try any of the mentioned commands. Proceed with care.
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted