summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiejunZhou <[email protected]>2023-06-26 09:21:06 +0800
committerGitHub <[email protected]>2023-06-26 09:21:06 +0800
commit8ff9910ddc089e7af91e4089b26f225aba5d7eb7 (patch)
tree5106838e06f53fefd2bc79c0de07e1c304d0673f
parent08380caa7792f917d2e24cfae22df8796487ac5b (diff)
Added memory barrier before thread scheduling for ARMv8-A ThreadX SMP. (#280)
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S4
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a35_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a35_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a35_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a35_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a53_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a53_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a53_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a53_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a55_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a55_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a55_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a55_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a57_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a57_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a57_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a57_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a65_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a65_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a65_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a65_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a72_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a72_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a72_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a72_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a73_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a73_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a73_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a73_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a75_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a75_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a75_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a75_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a76_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a76_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a76_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a76_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a77_smp/ac6/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a77_smp/ac6/src/tx_thread_system_return.S4
-rw-r--r--ports_smp/cortex_a77_smp/gnu/src/tx_thread_context_restore.S4
-rw-r--r--ports_smp/cortex_a77_smp/gnu/src/tx_thread_system_return.S4
50 files changed, 150 insertions, 50 deletions
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_context_restore.S b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_system_return.S b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //
diff --git a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_context_restore.S b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_context_restore.S
index 8ab57b5e..19f80685 100644
--- a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_context_restore.S
+++ b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_context_restore.S
@@ -70,7 +70,8 @@
/* FIFO queueing, */
/* resulting in version 6.1.11 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -294,6 +295,7 @@ __tx_thread_dont_save_ts:
/* Set bit indicating this thread is ready for execution. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x2, #1 // Build ready flag
STR w2, [x0, #260] // Set thread's ready flag
DMB ISH // Ensure that accesses to shared resource have completed
diff --git a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_system_return.S b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_system_return.S
index 0142f0e6..9628b32c 100644
--- a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_system_return.S
+++ b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_system_return.S
@@ -67,7 +67,8 @@
/* added ARMv8.2-A support, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
+/* #include tx_user.h, added */
+/* memory barrier, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -173,6 +174,7 @@ __tx_thread_dont_save_ts:
/* Set ready bit in thread control block. */
+ DMB ISH // Ensure that accesses to shared resource have completed
MOV x3, #1 // Build ready value
STR w3, [x6, #260] // Make the thread ready
DMB ISH //