Hello!
As part of our risk mitigation, we are interested to know whether during the boot up procedure, we can temporarily boot into a mode where the SoftDevice is fully disabled, with the customer application fully in control of the chip?
Within this state, we mean-
- Application owns all interrupts (I assume we can configure the interrupt priorities?)
- SoftDevice not started (so no events or interrupts generated)
To clarify, the boot sequence would look like so-
- Boot up
- Application initialises with highest priority interrupts. BLE unavailable.
- Application performs system integrity tests
- If all OK, hands over interrupts to SoftDevice (i.e. interrupts as normally configured on nRF platform)
- Initialise SoftDevice (if such an API call exists)
- Business as usual after this point until the next reset. BLE available.
Some specific questions-
- Is it possible to configure the SoftDevice interrupt priorities by application, or its hardcoded?
- Does the above (1-5) sequence make sense? Do you think its feasible?
- Can a hypothetically faulty SoftDevice prevent reaching step 3 above?
- Is not starting the SoftDevice a problem? Will it result in increased power consumption or any other unexpected issues?
- Are there any reference examples that demonstrate operation with SoftDevice disabled (no BLE is necessary)?
Whilst I am posting this for nRF52840, this question is also relevant for nRF5340. And I ask this primarily for the nRF Connect SDK (where I understand SoftDevice controller is extracted, and SoftDevice as a whole no longer exists).
I know this image is from nRF5 SDK (I could not find one for nRF Connect SDK), but we mean the application would temporarily be assigned the interrupt priority 0 & 1-