Clearing the SNVS_Button_IRQhandler interrupt

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Clearing the SNVS_Button_IRQhandler interrupt

Jump to solution
784 Views
fd9750
Contributor II

Hi,

I am trying to use the IMX8QM scfw's SNVS_Button_IRQHandler to process an incoming IRQ signal.

Generally it works but in order to clear the IRQ before leaving the ISR I have to use the SNVS_ClearButtonIRQ(); function which takes about +/- 570 µs to execute. 

That is a fairly long time so i am trying to clear the interrupt/IRQ in a different/shorter way. However, whichever method I have tried it has consistently failed as whenever the ISR ends the SCU instantly jumps back into the ISR.
 
From disassembling the scfw_tcm.elf file I know that the SNVS_Button_IRQHandler function interacts with the SECO using the SECO_WriteSNVS function. Is that abolutely necessary to clear the IRQ flag?
 
Any help/suggestion most appreciated.
0 Kudos
Reply
1 Solution
750 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

To handle this interrupt it needs to interact with the SNVS, which is accessible only to the SECO due to the HW design (done for security).

The SCFW has to send SECO several messages to program: AHAB_WRITE_SNVS_PARAM_REQ messages with AHAB_SNVS_ID_BTN_CONFIG, AHAB_SNVS_ID_BTN_MASK, and AHAB_SNVS_ID_BTN_TIME. This is abstracted in the SCFW using the SNVS driver.

So, it is mandatory to clear the IRQ flag.

Best regards.

View solution in original post

0 Kudos
Reply
2 Replies
731 Views
fd9750
Contributor II

Hi,

This confirms exactly what I have found during all of the various tests I did in the mean time and also corresponds to the block diagram in the IMX8QM reference manual. The SNVS component is only accessible to the SECO and must be accessed exclusively by the SECO. Attempting to access the component via any other core, including the SCU, immediately halts all execution on all cores.

Thanks for the confirmation.

751 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

To handle this interrupt it needs to interact with the SNVS, which is accessible only to the SECO due to the HW design (done for security).

The SCFW has to send SECO several messages to program: AHAB_WRITE_SNVS_PARAM_REQ messages with AHAB_SNVS_ID_BTN_CONFIG, AHAB_SNVS_ID_BTN_MASK, and AHAB_SNVS_ID_BTN_TIME. This is abstracted in the SCFW using the SNVS driver.

So, it is mandatory to clear the IRQ flag.

Best regards.

0 Kudos
Reply