SDAA104 September 2025 F29H850TU , F29H859TU-Q1
Answer – Yes, this is recommended that users' setup NMI ISR during device initialization so that when high priority error occurs (for example Group0 error events) which trigger NMI to respective CPU can then gracefully clear the Error flags in EAM and ESM as per guidance in F29x TRM and ESM multicore F29 SDK example. Failure to clear ESM raw status flag causes NMIWD timeout to trigger XRSn (Device reset). User can check NMIWD bit in RESC (Reset Cause) register to confirm the same.
Answer - If there was no user/application NMI ISR setup then CPU goes to default NMI handler in BootROM where CPU clears and saves the error status and flags in M0 RAM address for debug. Refer to BootROM TRM chapter for more information.
Answer – The ESM NMIWD timeout occurs and causes High priority watchdog interrupt output from respective CPU. ESM CPU1 High priority watchdog interrupt output is connected to cause XRSn while ESM CPU2/CPU3 causes respective CPURSn as shown in ESM Subsystem Integration View diagram.
Answer – When ESM Group0 error event is active passed on through EAM module and is not configured to generate NMI, CPU goes in fault state. CPU EAM module high priority errors when active should be configured to always trigger NMI to respective CPU.
Answer – No, error type register (which is referred to as EAM error flags in this document) and ESM RAW status register (RAW_j) (which is referred to as ESM error flags) are only reset by PORESETn. These flags retain the value even after XRSn and CPURSn since application needs this error flag information for debug in case of reset triggered by ESM as response to error event occurrence not handled by application software.
Answer – After clearing the ESM RAW status register (RAW_j) flags make sure the EOI Register is also written to with appropriate key for corresponding error ESM interrupt output. This step of writing EOI is basically user acknowledging the ESM interrupt output which de-asserts the ESM output. If EOI register is not written to then ESM interrupt output remains asserted even if ESM error event flag is cleared.
Is it possible to generate NMI to CPU1 only and not to CPU3 and vice-versa based on a specific error event occurence ?
Answer – Yes, ESM is highly configurable and since there are separate ESM tiles dedicated for each CPU it is possible to setup configuration during initialization to generate NMI or any other error response to either CPU from its respective ESM CPU tile and disable error response or configure different error response for particular error event from another ESM CPU tile.