From a7961fe1909a5a15730f4fdf7cd5528f660ca756 Mon Sep 17 00:00:00 2001 From: Mehmet Eren Balasar Date: Tue, 6 Jan 2026 19:07:48 +0300 Subject: [PATCH] Fix VFP build failure in Cortex-A tx_thread_schedule.S When TX_ENABLE_VFP_SUPPORT is defined, the build fails due to missing IRQ_MASK and FIQ_MASK symbols in the restore logic. This adds the local definitions (0x80 and 0x40) to tx_thread_schedule.S to match tx_thread_interrupt_restore.S, enabling successful compilation on GNU and AC6 Cortex-A ports. --- ports/cortex_a12/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a12/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a15/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a15/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a17/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a17/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a5/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a5/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a7/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a7/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a8/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a8/gnu/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a9/ac6/src/tx_thread_schedule.S | 8 ++++++++ ports/cortex_a9/gnu/src/tx_thread_schedule.S | 8 ++++++++ 14 files changed, 112 insertions(+) diff --git a/ports/cortex_a12/ac6/src/tx_thread_schedule.S b/ports/cortex_a12/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a12/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a12/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a12/gnu/src/tx_thread_schedule.S b/ports/cortex_a12/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a12/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a12/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a15/ac6/src/tx_thread_schedule.S b/ports/cortex_a15/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a15/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a15/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a15/gnu/src/tx_thread_schedule.S b/ports/cortex_a15/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a15/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a15/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a17/ac6/src/tx_thread_schedule.S b/ports/cortex_a17/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a17/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a17/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a17/gnu/src/tx_thread_schedule.S b/ports/cortex_a17/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a17/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a17/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a5/ac6/src/tx_thread_schedule.S b/ports/cortex_a5/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a5/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a5/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a5/gnu/src/tx_thread_schedule.S b/ports/cortex_a5/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a5/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a5/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a7/ac6/src/tx_thread_schedule.S b/ports/cortex_a7/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a7/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a7/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a7/gnu/src/tx_thread_schedule.S b/ports/cortex_a7/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a7/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a7/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a8/ac6/src/tx_thread_schedule.S b/ports/cortex_a8/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a8/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a8/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a8/gnu/src/tx_thread_schedule.S b/ports/cortex_a8/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a8/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a8/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a9/ac6/src/tx_thread_schedule.S b/ports/cortex_a9/ac6/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a9/ac6/src/tx_thread_schedule.S +++ b/ports/cortex_a9/ac6/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */ diff --git a/ports/cortex_a9/gnu/src/tx_thread_schedule.S b/ports/cortex_a9/gnu/src/tx_thread_schedule.S index 07dd6f7f2..541270152 100644 --- a/ports/cortex_a9/gnu/src/tx_thread_schedule.S +++ b/ports/cortex_a9/gnu/src/tx_thread_schedule.S @@ -39,6 +39,14 @@ #define IRQ_MODE 0x12 // IRQ mode #define SVC_MODE 0x13 // SVC mode +#ifdef TX_ENABLE_VFP_SUPPORT +IRQ_MASK = 0x080 +#endif + +#ifdef TX_ENABLE_FIQ_SUPPORT +FIQ_MASK = 0x040 +#endif + /**************************************************************************/ /* */ /* FUNCTION RELEASE */