Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions portable/GCC/ARM_CA53_64_BIT_SRE/portASM.S
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,13 @@ FreeRTOS_IRQ_Handler:
/* Maintain the interrupt nesting information across the function call. */
STP X1, X5, [SP, #-0x10]!

/* Read value from the interrupt acknowledge register, which is stored in W0
for future parameter and interrupt clearing use. */
MRS X0, S3_0_C12_C12_0 /* read ICC_IAR1_EL1 and store ICCIAR in X0 as parameter */

/* Maintain the ICCIAR value across the function call. */
STP X0, X1, [SP, #-0x10]!

/* Call the C handler. */
BL vApplicationIRQHandler

Expand All @@ -311,6 +318,12 @@ FreeRTOS_IRQ_Handler:
DSB SY
ISB SY

/* Restore the ICCIAR value. */
LDP X0, X1, [SP], #0x10

/* End IRQ processing by writing ICCIAR to the EOI register. */
MSR S3_0_C12_C12_1, X0 /* ICC_EOIR1_EL1 */

/* Restore the critical nesting count. */
LDP X1, X5, [SP], #0x10
STR X1, [X5]
Expand Down