Setting up the device

Configure the device to a state where it can communicate with the modem.

  1. Write 0x2 to the SPU.PERIPHID[42].PERM (0x500038A8) register to configure IPC to be in non-secure mode .
  2. 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
  3. Write 0x7 to all RAM regions n<0:31> 0x50003700+(n*4) SPU.RAMREGION[n].PERM to configure RAM as non-secure.
  4. Write the following values to allocate memory in RAM.
    Address Value
    0x20000000 0x80010000
    0x20000004 0x2100000C
    0x20000008 0x0003FC00
  5. Power up or reset the modem by doing the following:
    1. Write 0 to POWER.LTEMODEM.STARTN (0x50005610).
    2. Write 1 to POWER.LTEMODEM.FORCEOFF (0x50005614).
    3. Write 1 to POWER.LTEMODEM.STARTN (0x50005610).
    4. Write 0 to POWER.LTEMODEM.FORCEOFF (0x50005614).
    5. 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.