Configure the device to a state where it can communicate with the modem.
-
Write 0x2 to the SPU.PERIPHID[42].PERM (0x500038A8) register to configure IPC to be in non-secure mode .
-
Write the following values to configure IPC HW for Device Firmware Update (DFU).
Register |
Address |
Value |
IPC.SEND_CNF[1] |
0x4002A514 |
0x00000002 |
IPC.SEND_CNF[3] |
0x4002A51C |
0x00000008
|
IPC.GPMEM[0] |
0x4002A610 |
0x21000000 |
IPC.GPMEM[1] |
0x4002A614 |
0x00000000 |
IPC.RECEIVE_CNF[0] |
0x4002A590 |
0x00000001 |
IPC.RECEIVE_CNF[2] |
0x4002A598 |
0x00000004 |
IPC.RECEIVE_CNF[4] |
0x4002A5A0 |
0x00000010 |
-
Write 0x7 to all RAM regions n<0:31> 0x50003700+(n*4) SPU.RAMREGION[n].PERM to configure RAM as non-secure.
-
Write the following values to allocate memory in RAM.
Address |
Value |
0x20000000 |
0x80010000 |
0x20000004 |
0x2100000C |
0x20000008 |
0x0003FC00 |
-
Power up or reset the modem by doing the following:
-
Write 0 to POWER.LTEMODEM.STARTN (0x50005610).
-
Write 1 to POWER.LTEMODEM.FORCEOFF (0x50005614).
-
Write 1 to POWER.LTEMODEM.STARTN (0x50005610).
-
Write 0 to POWER.LTEMODEM.FORCEOFF (0x50005614).
-
Write 0 to POWER.LTEMODEM.STARTN (0x50005610).
Note: Depending on the setup, you may need to adjust UICR.HFXOSRC and UICR.HFXOCNT for the modem to
function correctly. If you are using a Nordic
Development Kit (DK), we recommend
setting the values to UICR.HFXOSRC = 0xE UICR.HFXOCNT = 0x20.