Flash or NVM programming
Take care when implementing or instantiating a flash or other non-volatile memory controller that is intended to be shared by both Secure and Non-secure code.
In particular, if it is necessary to permit Non-secure code or a Non-secure debugger to erase code blocks that are allocated to Non-secure code, an implementer must consider how they permit erasure while simultaneously preventing Non-secure code or debug from erasing or modifying Secure blocks.
Sometimes it might not be necessary to permit Non-secure flash updates. An implementer might choose to implement extra controls to enable or disable Non-secure programming.