Having this simple func:
```
__ramfunc void erase_all() {
printk("Erasing all... ");
uint key = irq_lock();
nrfy_rramc_erase_all_set(NRF_RRAMC);
while (!nrfy_rramc_erase_all_check(NRF_RRAMC));
irq_unlock(key);
printk("done\n");
}
```
It perfectly works with these regs:
```
App: running at "nrf54l15/cpuapp", v1.0.0-testkey+0, Zephyr build: v4.1.0-2837-g4680590fda0d, confirmed
UICR.APPROTECT0: 0xffffffff, UICR.APPROTECT1: 0xffffffff
UICR.SECUREPROTECT0: 0xffffffff, UICR.SECUREPROTECT1: 0xffffffff
UICR.AUXAPPROTECT0: 0xffffffff, UICR.AUXAPPROTECT1: 0xffffffff
UICR.ERASEPROTECT0: 0xffffffff, UICR.ERASEPROTECT1: 0xffffffff
BOOTCONF: 0xffffffff
CTRLAP.ERASEPROTECT.LOCK|DISABLE: 0x0|0x0
TAMPC: DBGEN: 0x0|0x11, NIDEN: 0x0|0x11, SPIDEN: 0x0|0x11, SPNIDEN: 0x0|0x11, AP.DBGEN 0x0|0x11
TAMPC: STATUS: 0x0, AP.DBGEN: 0x0, ERASEPROTECT: 0x0|0x10
SW3 pressed at 959991
Erasing all... done
```
But just hangs when APPROTECT only is enabled:
```
App: running at "nrf54l15/cpuapp", v1.0.0-testkey+0, Zephyr build: v4.1.0-2837-g4680590fda0d, confirmed
UICR.APPROTECT0: 0x50fa50fa, UICR.APPROTECT1: 0x50fa50fa
UICR.SECUREPROTECT0: 0xffffffff, UICR.SECUREPROTECT1: 0xffffffff
UICR.AUXAPPROTECT0: 0xffffffff, UICR.AUXAPPROTECT1: 0xffffffff
UICR.ERASEPROTECT0: 0xffffffff, UICR.ERASEPROTECT1: 0xffffffff
BOOTCONF: 0xffffffff
CTRLAP.ERASEPROTECT.LOCK|DISABLE: 0x0|0x0
TAMPC: DBGEN: 0x0|0x12, NIDEN: 0x0|0x12, SPIDEN: 0x0|0x11, SPNIDEN: 0x0|0x11, AP.DBGEN 0x0|0x11
TAMPC: STATUS: 0x0, AP.DBGEN: 0x0, ERASEPROTECT: 0x0|0x10
SW3 pressed at 1788502
Erasing all...
```
The sad thing is that nrfy_rramc_erase_all_set() do nothing when APPROTECT enabled - no erase performed at all. The fw can be started again after reset. What can be the problem ?
HW is nrf54l15dk, PCA10156 v0.9.1