Reasons for NRF_MODEM_FAULT_USAGE

Hi,

in a nrf9160 based product with latest MFW 1.3.5 and nrf_modem 2.4.0 we see from time a modem fault with "NRF_MODEM_FAULT_USAGE".

Can someone from the modem team please explain what are the actual reasons that can trigger this specific modem fault?

Thank you!

Parents Reply Children
  • Hi,

    no we don't use a sample from the NCS. I'm asking about a callback directly from the modem firmware so it should be fairly independent. The is the "modem fault" handler but the possible faults are not very well described:

    /** Undefined fault (e.g. undefined interrupt) */
    #define NRF_MODEM_FAULT_UNDEFINED 0x001
    /** HW WD reset detected */
    #define NRF_MODEM_FAULT_HW_WD_RESET 0x002
    /** Hard fault */
    #define NRF_MODEM_FAULT_HARDFAULT 0x003
    /** Memory management fault */
    #define NRF_MODEM_FAULT_MEM_MANAGE 0x004
    /** Bus fault */
    #define NRF_MODEM_FAULT_BUS 0x005
    /** Usage fault */
    #define NRF_MODEM_FAULT_USAGE 0x006
    /** Modem has been reset due to secure ctrl */
    #define NRF_MODEM_FAULT_SECURE_RESET 0x007
    /** Error handler has crashed */
    #define NRF_MODEM_FAULT_PANIC_DOUBLE 0x008
    /** Modem startup has failed four times in row */
    #define NRF_MODEM_FAULT_PANIC_RESET_LOOP 0x009
    /** Assert */
    #define NRF_MODEM_FAULT_ASSERT 0x010
    /** Unconditional SW reset */
    #define NRF_MODEM_FAULT_PANIC 0x011
    /** Flash erase fault */
    #define NRF_MODEM_FAULT_FLASH_ERASE 0x012
    /** Flash write fault */
    #define NRF_MODEM_FAULT_FLASH_WRITE 0x013
    /** Undervoltage fault */
    #define NRF_MODEM_FAULT_POFWARN 0x014
    /** Overtemperature fault */
    #define NRF_MODEM_FAULT_THWARN 0x015

  • It might be that modem has crashed due to some reason.

    Please provide modem-trace and I will forwrad to the modem team to look into it.

  • Hello,
    As the problem occurred with a device in the field, unfortunately no trace is available. Incidentally, the question should also indicate that this is a question about the documentation, which should be able to be answered without a specific trace. Thank you for your effort in forwarding the question to the modem team for clarification. It is about the circumstances under which the MFW assumes a usage fault and what this can generate (for example).

  • Hi,

    I have sent the query to the modem team, and below is the response received:

    "There is no way to give any explanation about the crash with this amount of info.

    ARM M4 can crash with usage fault with these reasons:

    Divide by zero error has occurred.
    Unaligned access error has occurred.
    No coprocessor access error has occurred.
    No integrity check error has occurred.
    Instruction executed with invalid EPSR.T or EPSR.IT field.
    Undefined Instruction Usage fault has occurred.

    But without traces and memory dump it’s impossible to say which of these has caused the crash and why."

    If you can provide more information like the memory dumps or the modem traces, then the team would be able to look and answer more.

    Regards, Naeem

Related