I am making use of the efuse driver code to create a driver for the sama5 secure fuse peripheral. There are not many drivers I can use as examplars but there is code that follows this for the esp32 family of processors.
Those drivers protect fuse writes by encapsulating the entire write procedure (including validity checking, and code that works out which actual efuses need to be written to etc) as a critical section. That seems unnecessary to me? I’m thinking that only the actual stage of blowing the fuses needs to be protected - and that a mutex is more appropriate and that the read of an efuse should be similarly protected, in case a write is being done at the time a read is requested? Or is there a reason I don’t “get” meaning a critical section wrapper is more appropriate?