summaryrefslogtreecommitdiff
path: root/ports_module/cortex_a7/gnu
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-03-06 19:27:49 +0100
committerGitHub <[email protected]>2026-03-06 19:27:49 +0100
commit3726d7906b4808bfec7855fc088e073199df9120 (patch)
tree8789bfd03d1d49e1967e80d04aa4ff606fda43eb /ports_module/cortex_a7/gnu
parent4b6e8100d932a3a67b34c6eb17f84f3bffb9e2ae (diff)
parentc3259a216026372e3833dd8996a68f77e8595fbd (diff)
Merge pull request #510 from eclipse-threadx/devv6.5.0.202601_rel
Merge changes ahead of the v6.5.0.202601 release
Diffstat (limited to 'ports_module/cortex_a7/gnu')
-rw-r--r--ports_module/cortex_a7/gnu/example_build/build_threadx_module_sample.bat2
-rw-r--r--ports_module/cortex_a7/gnu/example_build/gcc_setup.S15
-rw-r--r--ports_module/cortex_a7/gnu/example_build/module_code.c2
-rw-r--r--ports_module/cortex_a7/gnu/example_build/reset.S7
-rw-r--r--ports_module/cortex_a7/gnu/example_build/sample_threadx.ld14
-rw-r--r--ports_module/cortex_a7/gnu/example_build/sample_threadx_module.c40
-rw-r--r--ports_module/cortex_a7/gnu/example_build/sample_threadx_module.ld4
-rw-r--r--ports_module/cortex_a7/gnu/example_build/sample_threadx_module_manager.c36
-rw-r--r--ports_module/cortex_a7/gnu/example_build/tx_initialize_low_level.s19
-rw-r--r--ports_module/cortex_a7/gnu/example_build/txm_module_preamble.s4
-rw-r--r--ports_module/cortex_a7/gnu/inc/tx_port.h26
-rw-r--r--ports_module/cortex_a7/gnu/inc/txm_module_port.h64
-rw-r--r--ports_module/cortex_a7/gnu/module_lib/src/txm_module_thread_shell_entry.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_restore.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_save.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_restore.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_save.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_end.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_start.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_control.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_disable.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_restore.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_end.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_start.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_schedule.s17
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_stack_build.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_system_return.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_thread_vectored_context_save.s22
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/tx_timer_interrupt.s19
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_alignment_adjust.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_external_memory_enable.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_handler.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_notify.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_initialize.c163
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_register_setup.c13
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_thread_stack_build.s17
-rw-r--r--ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_user_mode_entry.s17
37 files changed, 274 insertions, 554 deletions
diff --git a/ports_module/cortex_a7/gnu/example_build/build_threadx_module_sample.bat b/ports_module/cortex_a7/gnu/example_build/build_threadx_module_sample.bat
index 8e6f8286..f0214cfc 100644
--- a/ports_module/cortex_a7/gnu/example_build/build_threadx_module_sample.bat
+++ b/ports_module/cortex_a7/gnu/example_build/build_threadx_module_sample.bat
@@ -3,4 +3,4 @@ arm-none-eabi-gcc -c -g -O0 -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -m
arm-none-eabi-gcc -c -g -O0 -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -marm -mthumb-interwork -DTX_ENABLE_VFP_SUPPORT -fpic -fno-plt -mno-pic-data-is-text-relative -msingle-pic-base -I../inc -I../../../../common/inc -I../../../../common_modules/inc -I../../../../common_modules/module_manager/inc sample_threadx_module.c
rem arm-none-eabi-gcc -g --elf --ro 0 --first txm_module_preamble.o(Init) --entry=_txm_module_thread_shell_entry --ropi --rwpi --remove --map --symbols --list sample_threadx_module.map txm_module_preamble.o sample_threadx_module.o txm.a
rem arm-none-eabi-gcc -g -mcpu=cortex-a7 -T sample_threadx_module.ld -mfloat-abi=hard -mfpu=neon-vfpv4 -marm -mthumb-interwork --specs=nosys.specs -e _txm_module_thread_shell_entry -o sample_threadx_module.out -Wl,-Map=sample_threadx_module.map gcc_setup.o txm_module_preamble.o sample_threadx_module.o txm.a
-arm-none-eabi-ld -A cortex-a7 -T sample_threadx_module.ld txm_module_preamble.o gcc_setup.o sample_threadx_module.o -e _txm_module_thread_shell_entry txm.a -o sample_threadx_module.axf -M > sample_threadx_module.map \ No newline at end of file
+arm-none-eabi-ld -A cortex-a7 -T sample_threadx_module.ld txm_module_preamble.o gcc_setup.o sample_threadx_module.o -e _txm_module_thread_shell_entry txm.a -o sample_threadx_module.axf -M > sample_threadx_module.map \ No newline at end of file
diff --git a/ports_module/cortex_a7/gnu/example_build/gcc_setup.S b/ports_module/cortex_a7/gnu/example_build/gcc_setup.S
index 22a41727..d0eaeb79 100644
--- a/ports_module/cortex_a7/gnu/example_build/gcc_setup.S
+++ b/ports_module/cortex_a7/gnu/example_build/gcc_setup.S
@@ -22,7 +22,7 @@ _gcc_setup:
mov r5,r0
/* Copy GOT table. */
-
+
ldr r0, =__got_load_start__
sub r0,r0,r3
add r0,r0,r5
@@ -50,13 +50,13 @@ flash_area:
address_built:
str r6, [r1] // Store in new GOT table
add r0, r0, #4 // Move to next entry
- add r1, r1, #4 //
+ add r1, r1, #4 //
b new_got_setup // Continue at the top of the loop
got_setup_done:
/* Copy initialised sections into RAM if required. */
-
+
ldr r0, =__data_load_start__
sub r0,r0,r3
add r0,r0,r5
@@ -67,9 +67,9 @@ got_setup_done:
sub r2,r2,r4
add r2,r2,r9
bl crt0_memory_copy
-
+
/* Zero bss. */
-
+
ldr r0, =__bss_start__
sub r0,r0,r4
add r0,r0,r9
@@ -93,10 +93,10 @@ got_setup_done:
str r2, [r0]
add r0, r0, #4
str r1, [r0]
-
+
LDMIA sp!, {r3, r4, r5, r6, r7, lr} // Store other preserved registers
bx lr // Return to caller
-
+
.align 4
/* Startup helper functions. */
@@ -130,4 +130,3 @@ memory_set_done:
/* Setup attibutes of heap section so it doesn't take up room in the elf file */
.section .heap, "wa", %nobits
- \ No newline at end of file
diff --git a/ports_module/cortex_a7/gnu/example_build/module_code.c b/ports_module/cortex_a7/gnu/example_build/module_code.c
index 562ecea2..d380dfa9 100644
--- a/ports_module/cortex_a7/gnu/example_build/module_code.c
+++ b/ports_module/cortex_a7/gnu/example_build/module_code.c
@@ -4,7 +4,7 @@
/* */
/************************************************************************************************/
-/*
+/*
Input ELF file: .\sample_threadx_module.axf
Output C Array file: .\module_code.c
*/
diff --git a/ports_module/cortex_a7/gnu/example_build/reset.S b/ports_module/cortex_a7/gnu/example_build/reset.S
index 3ce9efb7..f2e0522b 100644
--- a/ports_module/cortex_a7/gnu/example_build/reset.S
+++ b/ports_module/cortex_a7/gnu/example_build/reset.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_module/cortex_a7/gnu/example_build/sample_threadx.ld b/ports_module/cortex_a7/gnu/example_build/sample_threadx.ld
index 3dea4e1c..e940b2b8 100644
--- a/ports_module/cortex_a7/gnu/example_build/sample_threadx.ld
+++ b/ports_module/cortex_a7/gnu/example_build/sample_threadx.ld
@@ -7,7 +7,7 @@ OUTPUT_ARCH(arm)
SECTIONS
{
. = 0x00000000;
-
+
.vectors : {reset.o(.text) }
/* Read-only sections, merged into text segment: */
@@ -94,8 +94,8 @@ SECTIONS
*(.gnu.linkonce.t*)
*(.glue_7t) *(.glue_7)
} =0
- .init :
- {
+ .init :
+ {
KEEP (*(.init))
} =0
_etext = .;
@@ -120,7 +120,7 @@ SECTIONS
.data1 : { *(.data1) }
.eh_frame : { KEEP (*(.eh_frame)) }
.gcc_except_table : { *(.gcc_except_table) }
- .ctors :
+ .ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
@@ -153,9 +153,9 @@ SECTIONS
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
- .sdata :
+ .sdata :
{
- *(.sdata)
+ *(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
}
@@ -191,7 +191,7 @@ SECTIONS
_stack_bottom = ABSOLUTE(.) ;
- /* Allocate room for stack. This must be big enough for the IRQ, FIQ, and
+ /* Allocate room for stack. This must be big enough for the IRQ, FIQ, and
SYS stack if nested interrupts are enabled. */
. = ALIGN(8) ;
. += 4096 ;
diff --git a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.c b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.c
index fce2a3fa..f9ed56eb 100644
--- a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.c
+++ b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.c
@@ -1,5 +1,5 @@
-/* This is a small demo of the high-performance ThreadX kernel running as a module. It includes
- examples of eight threads of different priorities, using a message queue, semaphore, mutex,
+/* This is a small demo of the high-performance ThreadX kernel running as a module. It includes
+ examples of eight threads of different priorities, using a message queue, semaphore, mutex,
event flags group, byte pool, and block pool. */
/* Specify that this is a module! */
@@ -20,7 +20,7 @@
#define DEMO_QUEUE_SIZE 100
-/* Define the pool space in the bss section of the module. ULONG is used to
+/* Define the pool space in the bss section of the module. ULONG is used to
get the word alignment. */
ULONG demo_module_pool_space[DEMO_BYTE_POOL_SIZE / 4];
@@ -101,7 +101,7 @@ void demo_module_start(ULONG id)
CHAR *pointer;
/* Allocate all the objects. In MMU mode, modules cannot allocate control blocks within
- their own memory area so they cannot corrupt the resident portion of ThreadX by overwriting
+ their own memory area so they cannot corrupt the resident portion of ThreadX by overwriting
the control block(s). */
txm_module_object_allocate((void *) &thread_0, sizeof(TX_THREAD));
txm_module_object_allocate((void *) &thread_1, sizeof(TX_THREAD));
@@ -117,7 +117,7 @@ CHAR *pointer;
txm_module_object_allocate((void *) &event_flags_0, sizeof(TX_EVENT_FLAGS_GROUP));
txm_module_object_allocate((void *) &byte_pool_0, sizeof(TX_BYTE_POOL));
txm_module_object_allocate((void *) &block_pool_0, sizeof(TX_BLOCK_POOL));
-
+
/* Create a byte memory pool from which to allocate the thread stacks. */
tx_byte_pool_create(byte_pool_0, "module byte pool 0", demo_module_pool_space, DEMO_BYTE_POOL_SIZE);
@@ -129,25 +129,25 @@ CHAR *pointer;
/* Create the main thread. */
tx_thread_create(thread_0, "module thread 0", thread_0_entry, 0,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 1. */
tx_byte_allocate(byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 1 and 2. These threads pass information through a ThreadX
+ /* Create threads 1 and 2. These threads pass information through a ThreadX
message queue. It is also interesting to note that these threads have a time
slice. */
tx_thread_create(thread_1, "module thread 1", thread_1_entry, 1,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 2. */
tx_byte_allocate(byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
tx_thread_create(thread_2, "module thread 2", thread_2_entry, 2,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 3. */
@@ -156,14 +156,14 @@ CHAR *pointer;
/* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
An interesting thing here is that both threads share the same instruction area. */
tx_thread_create(thread_3, "module thread 3", thread_3_and_4_entry, 3,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 4. */
tx_byte_allocate(byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
tx_thread_create(thread_4, "module thread 4", thread_3_and_4_entry, 4,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 5. */
@@ -172,7 +172,7 @@ CHAR *pointer;
/* Create thread 5. This thread simply pends on an event flag which will be set
by thread_0. */
tx_thread_create(thread_5, "module thread 5", thread_5_entry, 5,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 6. */
@@ -180,14 +180,14 @@ CHAR *pointer;
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
tx_thread_create(thread_6, "module thread 6", thread_6_and_7_entry, 6,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 7. */
tx_byte_allocate(byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
tx_thread_create(thread_7, "module thread 7", thread_6_and_7_entry, 7,
- pointer, DEMO_STACK_SIZE,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the message queue. */
@@ -237,7 +237,7 @@ UINT status;
*(ULONG *) 0x90000000 = 0xdeadbeef;
*(ULONG *) 0x90000FFC = 0xfeed0add;
*(ULONG *) 0x90001000 = 0xfedcba01;
-
+
/* This thread simply sits in while-forever-sleep loop. */
while(1)
{
@@ -247,7 +247,7 @@ UINT status;
/* Sleep for 10 ticks. */
tx_thread_sleep(10);
-
+
/* Set event flag 0 to wakeup thread 5. */
status = tx_event_flags_set(event_flags_0, 0x1, TX_OR);
@@ -300,11 +300,11 @@ UINT status;
/* Retrieve a message from the queue. */
status = tx_queue_receive(queue_0, &received_message, TX_WAIT_FOREVER);
- /* Check completion status and make sure the message is what we
+ /* Check completion status and make sure the message is what we
expected. */
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
break;
-
+
/* Otherwise, all is okay. Increment the received message count. */
thread_2_messages_received++;
}
@@ -363,7 +363,7 @@ ULONG actual_flags;
thread_5_counter++;
/* Wait for event flag 0. */
- status = tx_event_flags_get(event_flags_0, 0x1, TX_OR_CLEAR,
+ status = tx_event_flags_get(event_flags_0, 0x1, TX_OR_CLEAR,
&actual_flags, TX_WAIT_FOREVER);
/* Check status. */
@@ -416,7 +416,7 @@ UINT status;
if (status != TX_SUCCESS)
break;
- /* Release the mutex again. This will actually
+ /* Release the mutex again. This will actually
release ownership since it was obtained twice. */
status = tx_mutex_put(mutex_0);
diff --git a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.ld b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.ld
index 30c66655..5fa4c680 100644
--- a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.ld
+++ b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module.ld
@@ -125,7 +125,7 @@ SECTIONS
KEEP (*(.got*))
. = ALIGN(4);
_egot = .;
- }
+ }
__got_end__ = __got_load_start__ + SIZEOF(.got);
__rodata_load_start__ = ALIGN(__got_end__ , 4);
@@ -135,7 +135,7 @@ SECTIONS
*(.rodata .rodata.* .gnu.linkonce.r.*)
}
__rodata_end__ = __rodata_start__ + SIZEOF(.rodata);
-
+
__code_size__ = SIZEOF(.data) + __rodata_end__ - __FLASH_segment_start__;
__fast_load_start__ = ALIGN(__rodata_end__ , 4);
diff --git a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module_manager.c b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module_manager.c
index 8b17e34a..ac3bbeb5 100644
--- a/ports_module/cortex_a7/gnu/example_build/sample_threadx_module_manager.c
+++ b/ports_module/cortex_a7/gnu/example_build/sample_threadx_module_manager.c
@@ -1,4 +1,4 @@
-/* Small demonstration of the ThreadX module manager. This demonstration assumes the program
+/* Small demonstration of the ThreadX module manager. This demonstration assumes the program
manager is loaded at 0 and that RAM addresses 0x200000 through 0x400000 are available for
use. */
@@ -45,7 +45,7 @@ VOID module_fault_handler(TX_THREAD *thread, TXM_MODULE_INSTANCE *module)
int main()
{
-
+
/* Enter the ThreadX kernel. */
tx_kernel_enter();
}
@@ -57,8 +57,8 @@ void tx_application_define(void *first_unused_memory)
{
/* Create the module manager thread. */
- tx_thread_create(&module_manager, "Module Manager Thread", module_manager_entry, 0,
- first_unused_memory, DEMO_STACK_SIZE,
+ tx_thread_create(&module_manager, "Module Manager Thread", module_manager_entry, 0,
+ first_unused_memory, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
}
@@ -71,46 +71,46 @@ void module_manager_entry(ULONG thread_input)
/* Initialize the module manager. */
txm_module_manager_initialize((VOID *) module_data_area, MODULE_DATA_SIZE);
-
+
/* Create a pool for module objects. */
txm_module_manager_object_pool_create(object_memory, sizeof(object_memory));
-
+
/* Register a fault handler. */
txm_module_manager_memory_fault_notify(module_fault_handler);
-
+
/* Initialize MMU. */
txm_module_manager_mm_initialize();
-
+
/* Load the module that is already there, in this example it is placed there by the multiple image download. */
txm_module_manager_in_place_load(&my_module1, "my module1", (VOID *) module_code);
-
+
/* Load a second instance of the module. */
//txm_module_manager_in_place_load(&my_module2, "my module2", (VOID *) module_code);
-
+
/* Enable shared memory regions for one module. */
//txm_module_manager_external_memory_enable(&my_module2, (void*)0x90000000, 0x010000, 0x3F);
-
+
/* Start the modules. */
txm_module_manager_start(&my_module1);
//txm_module_manager_start(&my_module2);
-
+
/* Sleep for a while and let the modules run.... */
tx_thread_sleep(50);
-
+
/* Thread 0 in module1 should be terminated due to violating the MMU. */
-
+
/* Stop the modules. */
txm_module_manager_stop(&my_module1);
txm_module_manager_stop(&my_module2);
-
+
/* Unload the modules. */
txm_module_manager_unload(&my_module1);
txm_module_manager_unload(&my_module2);
-
+
/* Reload the modules. */
txm_module_manager_in_place_load(&my_module2, "my module2", (VOID *) module_code);
txm_module_manager_in_place_load(&my_module1, "my module1", (VOID *) module_code);
-
+
/* Give both modules shared memory. */
txm_module_manager_external_memory_enable(&my_module2, (void*)0x90000000, 0x010000, 0x3F);
txm_module_manager_external_memory_enable(&my_module1, (void*)0x90000000, 0x010000, 0x3F);
@@ -118,7 +118,7 @@ void module_manager_entry(ULONG thread_input)
/* Start the module again. */
txm_module_manager_start(&my_module2);
txm_module_manager_start(&my_module1);
-
+
/* Now just spin... */
while(1)
{
diff --git a/ports_module/cortex_a7/gnu/example_build/tx_initialize_low_level.s b/ports_module/cortex_a7/gnu/example_build/tx_initialize_low_level.s
index 6d1ceeff..0c267ac6 100644
--- a/ports_module/cortex_a7/gnu/example_build/tx_initialize_low_level.s
+++ b/ports_module/cortex_a7/gnu/example_build/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -87,18 +88,6 @@ THUMB_MASK = 0x20 // THUMB mode bit
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/example_build/txm_module_preamble.s b/ports_module/cortex_a7/gnu/example_build/txm_module_preamble.s
index 7678628b..90c0c338 100644
--- a/ports_module/cortex_a7/gnu/example_build/txm_module_preamble.s
+++ b/ports_module/cortex_a7/gnu/example_build/txm_module_preamble.s
@@ -1,4 +1,4 @@
- .section .txm_module_preamble
+ .section .txm_module_preamble, "ax"
.align 4
/* Define common external references. */
@@ -28,7 +28,7 @@ __txm_module_preamble:
// 1 -> User mode execution
.dc.l _txm_module_thread_shell_entry // Module Shell Entry Point
.dc.l demo_module_start // Module Start Thread Entry Point
- .dc.l 0 // Module Stop Thread Entry Point
+ .dc.l 0 // Module Stop Thread Entry Point
.dc.l 1 // Module Start/Stop Thread Priority
.dc.l 2046 // Module Start/Stop Thread Stack Size
.dc.l _txm_module_callback_request_thread_entry // Module Callback Thread Entry
diff --git a/ports_module/cortex_a7/gnu/inc/tx_port.h b/ports_module/cortex_a7/gnu/inc/tx_port.h
index 55400b6f..41040fa9 100644
--- a/ports_module/cortex_a7/gnu/inc/tx_port.h
+++ b/ports_module/cortex_a7/gnu/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -42,23 +43,6 @@
/* own special types that can be mapped to actual data types by this */
/* file to guarantee consistency in the interface and functionality. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-02-2021 Bhupendra Naphade Modified comment(s),updated */
-/* macro definition, */
-/* resulting in version 6.1.6 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Updated comments, removed */
-/* unneeded temp variable, */
-/* resulting in version 6.1.12 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -337,7 +321,7 @@ void tx_thread_vfp_disable(void);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX ARMv7-A Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARMv7-A Version 6.5.0.202601 *";
#else
extern CHAR _tx_version_id[];
#endif
diff --git a/ports_module/cortex_a7/gnu/inc/txm_module_port.h b/ports_module/cortex_a7/gnu/inc/txm_module_port.h
index a0a435b1..9cd5a280 100644
--- a/ports_module/cortex_a7/gnu/inc/txm_module_port.h
+++ b/ports_module/cortex_a7/gnu/inc/txm_module_port.h
@@ -1,55 +1,47 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
-/**************************************************************************/
-/**************************************************************************/
-/** */
-/** ThreadX Component */
-/** */
-/** Module Interface (API) */
-/** */
-/**************************************************************************/
-/**************************************************************************/
+/**************************************************************************/
+/**************************************************************************/
+/** */
+/** ThreadX Component */
+/** */
+/** Module Interface (API) */
+/** */
+/**************************************************************************/
+/**************************************************************************/
-/**************************************************************************/
-/* */
-/* APPLICATION INTERFACE DEFINITION RELEASE */
-/* */
-/* txm_module_port.h Cortex-A7/MMU/GNU */
+/**************************************************************************/
+/* */
+/* APPLICATION INTERFACE DEFINITION RELEASE */
+/* */
+/* txm_module_port.h Cortex-A7/MMU/GNU */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Scott Larson, Microsoft Corporation */
/* */
-/* DESCRIPTION */
-/* */
-/* This file defines the basic module constants, interface structures, */
-/* and function prototypes. */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
+/* DESCRIPTION */
/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
+/* This file defines the basic module constants, interface structures, */
+/* and function prototypes. */
/* */
/**************************************************************************/
#ifndef TXM_MODULE_PORT_H
#define TXM_MODULE_PORT_H
-/* It is assumed that the base ThreadX tx_port.h file has been modified to add the
+/* It is assumed that the base ThreadX tx_port.h file has been modified to add the
following extensions to the ThreadX thread control block (this code should replace
the corresponding macro define in tx_port.h):
@@ -89,10 +81,10 @@ The following extensions must also be defined in tx_port.h:
#endif
/* Defined, this option enables the MMU hardware and requires memory protected
- module objects to be allocated from the module manager object pool.
- If this is undefined, module objects can be created in the module's data area
- or in the module manager object pool. If this is not defined (MMU hardware
- is disabled), a module requiring memory protection will not run (the load
+ module objects to be allocated from the module manager object pool.
+ If this is undefined, module objects can be created in the module's data area
+ or in the module manager object pool. If this is not defined (MMU hardware
+ is disabled), a module requiring memory protection will not run (the load
functions will return a TXM_MODULE_INVALID_PROPERTIES error).
Default setting for this value is defined. */
#define TXM_MODULE_MEMORY_PROTECTION_ENABLED
@@ -299,7 +291,7 @@ typedef struct TXM_MODULE_MANAGER_MEMORY_FAULT_INFO_STRUCT
TXM_MODULE_MANAGER_MEMORY_FAULT_INFO _txm_module_manager_memory_fault_info;
/* Define the macro to check the stack available in dispatch. */
-#define TXM_MODULE_MANAGER_CHECK_STACK_AVAILABLE
+#define TXM_MODULE_MANAGER_CHECK_STACK_AVAILABLE
/* Define the macro to check the code alignment. */
@@ -409,7 +401,7 @@ UINT _txm_module_manager_inside_data_check(ULONG pointer);
#define TXM_MODULE_MANAGER_VERSION_ID \
CHAR _txm_module_manager_version_id[] = \
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX Module Cortex-A7/MMU/GNU Version 6.4.2 *";
+ "Copyright (c) 2024 Microsoft Corporation. * ThreadX Module Cortex-A7/MMU/GNU Version 6.5.0.202601 *";
#endif
diff --git a/ports_module/cortex_a7/gnu/module_lib/src/txm_module_thread_shell_entry.c b/ports_module/cortex_a7/gnu/module_lib/src/txm_module_thread_shell_entry.c
index 5e22ff15..73a38340 100644
--- a/ports_module/cortex_a7/gnu/module_lib/src/txm_module_thread_shell_entry.c
+++ b/ports_module/cortex_a7/gnu/module_lib/src/txm_module_thread_shell_entry.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -81,12 +82,6 @@ ULONG (*_txm_module_kernel_call_dispatcher)(ULONG kern
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_ENTRY_INFO *thread_info)
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_restore.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_restore.s
index 8b55c21d..62b36534 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_restore.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,21 +72,6 @@ SVC_MODE = 0x13 // SVC mode
/* CALLED BY */
/* */
/* ISRs Interrupt Service Routines */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_save.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_save.s
index d29d464f..e124db7a 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_save.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -69,21 +70,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_restore.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_restore.s
index 8876a873..a6f5cbeb 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_restore.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -74,21 +75,6 @@ IRQ_MODE_BITS = 0x12 // IRQ mode bits
/* CALLED BY */
/* */
/* FIQ ISR Interrupt Service Routines */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_save.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_save.s
index b6ac3bbf..2ce315f9 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_save.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,21 +68,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_end.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_end.s
index e2dbba7d..9938b4e6 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_end.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_end.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -75,18 +76,6 @@ FIQ_MODE_BITS = 0x11 // FIQ mode bits
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_start.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_start.s
index 68cdb6ba..2be8b631 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_start.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_fiq_nesting_start.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -68,18 +69,6 @@ SYS_MODE_BITS = 0x1F // System mode bits
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_control.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_control.s
index 4d5c7442..15e244f1 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_control.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_control.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -64,18 +65,6 @@ FIQ_MASK = 0x040
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_disable.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_disable.s
index 1fa006d8..7b6d8647 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_disable.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_disable.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,18 +58,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_restore.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_restore.s
index 725e4810..ba5fe5b6 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_restore.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_interrupt_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -64,18 +65,6 @@ FIQ_MASK = 0x040
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_end.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_end.s
index 90573977..dfd8b554 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_end.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_end.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -75,18 +76,6 @@ IRQ_MODE_BITS = 0x12 // IRQ mode bits
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_start.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_start.s
index 02be1d75..c87978e7 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_start.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_irq_nesting_start.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -68,18 +69,6 @@ SYS_MODE_BITS = 0x1F // System mode bits
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_schedule.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_schedule.s
index 9faf80eb..54e2c768 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_schedule.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -86,16 +87,6 @@ FIQ_MASK = 0x040
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* _tx_thread_context_restore Restore thread's context */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_stack_build.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_stack_build.s
index d4dd01c7..f4f0717b 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_stack_build.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -73,18 +74,6 @@ CPSR_MASK = 0xBF // Mask initial CPSR, T, IRQ int
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_system_return.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_system_return.s
index d2792904..fd8de227 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_system_return.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_system_return.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,21 +67,6 @@ SYS_MODE = 0x1F // SYS mode
/* CALLED BY */
/* */
/* ThreadX components */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_vectored_context_save.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_vectored_context_save.s
index 27465bdf..ce0202d4 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_vectored_context_save.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_thread_vectored_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,21 +67,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/tx_timer_interrupt.s b/ports_module/cortex_a7/gnu/module_manager/src/tx_timer_interrupt.s
index 8d70c67a..8c9b5186 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/tx_timer_interrupt.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/tx_timer_interrupt.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -73,18 +74,6 @@
/* CALLED BY */
/* */
/* interrupt vector */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_alignment_adjust.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_alignment_adjust.c
index c7178301..4641dcc8 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_alignment_adjust.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_alignment_adjust.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -60,12 +61,6 @@
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
VOID _txm_module_manager_alignment_adjust(TXM_MODULE_PREAMBLE *module_preamble, ULONG *code_size, ULONG *code_alignment, ULONG *data_size, ULONG *data_alignment)
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_external_memory_enable.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_external_memory_enable.c
index fa79dc8a..bbb9013c 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_external_memory_enable.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_external_memory_enable.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -64,12 +65,6 @@ extern ULONG _txm_ttbr1_page_table[TXM_MAXIMUM_MODULES][TXM_MASTER_PAGE_TABLE_EN
/* */
/* _txm_module_manager_external_memory_enable */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
ULONG _txm_level2_page_get(TXM_MODULE_INSTANCE *module_instance, ULONG *page_addr)
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_handler.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_handler.c
index 68bd8e44..303b17ce 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_handler.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_handler.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,12 +72,6 @@ TXM_MODULE_MANAGER_FAULT_INFO
/* */
/* Fault handler */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
VOID _txm_module_manager_memory_fault_handler(VOID)
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_notify.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_notify.c
index 7b6ea622..df6ca21e 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_notify.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_memory_fault_notify.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,12 +67,6 @@ extern VOID (*_txm_module_manager_fault_notify)(TX_THREAD *, TXM_MODULE_INSTA
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
UINT _txm_module_manager_memory_fault_notify(VOID (*notify_function)(TX_THREAD *, TXM_MODULE_INSTANCE *))
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_initialize.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_initialize.c
index dcda0e1c..da8d0904 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_initialize.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_initialize.c
@@ -1,23 +1,24 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
-/**************************************************************************/
-/**************************************************************************/
-/** */
-/** ThreadX Component */
-/** */
-/** Module Manager */
-/** */
-/**************************************************************************/
-/**************************************************************************/
+/**************************************************************************/
+/**************************************************************************/
+/** */
+/** ThreadX Component */
+/** */
+/** Module Manager */
+/** */
+/**************************************************************************/
+/**************************************************************************/
#define TX_SOURCE_CODE
@@ -51,48 +52,42 @@ TXM_MODULE_INSTANCE *_txm_asid_table[TXM_ASID_TABLE_LENGTH];
__attribute__ ((aligned (16384))) ULONG _txm_ttbr1_page_table[TXM_MAXIMUM_MODULES][TXM_MASTER_PAGE_TABLE_ENTRIES];
/* Module start and end level 2 page tables, 2^10 (1kB) alignment.
- * First set of 4 tables are the master level 2 tables, the rest are for each module.
+ * First set of 4 tables are the master level 2 tables, the rest are for each module.
* Each module needs two L2 tables for code and two L2 tables for data. */
__attribute__ ((aligned (1024))) ULONG _txm_level2_module_page_table[TXM_MAXIMUM_MODULES * 4][TXM_LEVEL_2_PAGE_TABLE_ENTRIES];
/* Module external memory level 2 page tables, 2^10 (1kB) alignment. */
__attribute__ ((aligned (1024))) ULONG _txm_level2_external_page_pool[TXM_LEVEL2_EXTERNAL_POOL_PAGES][TXM_LEVEL_2_PAGE_TABLE_ENTRIES];
-/**************************************************************************/
-/* */
-/* FUNCTION RELEASE */
-/* */
-/* _txm_module_manager_mm_initialize Cortex-A7/MMU/GNU */
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* _txm_module_manager_mm_initialize Cortex-A7/MMU/GNU */
/* 6.2.1 */
/* AUTHOR */
/* */
/* Scott Larson, Microsoft Corporation */
/* */
-/* DESCRIPTION */
-/* */
-/* This function performs the initial set up of the the A7 MMU. */
-/* */
-/* INPUT */
-/* */
-/* None */
-/* */
-/* OUTPUT */
-/* */
-/* Completion Status */
-/* */
-/* CALLS */
-/* */
-/* None */
-/* */
-/* CALLED BY */
-/* */
-/* Application code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
+/* DESCRIPTION */
+/* */
+/* This function performs the initial set up of the the A7 MMU. */
+/* */
+/* INPUT */
+/* */
+/* None */
+/* */
+/* OUTPUT */
/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
+/* Completion Status */
+/* */
+/* CALLS */
+/* */
+/* None */
+/* */
+/* CALLED BY */
+/* */
+/* Application code */
/* */
/**************************************************************************/
UINT _txm_module_manager_mm_initialize(VOID)
@@ -103,53 +98,53 @@ UINT _txm_module_manager_mm_initialize(VOID)
ULONG cp15reg;
UINT user_mode_index;
UINT counter_limit;
-
+
/* Clear ASID table. */
for (i = 0; i < TXM_ASID_TABLE_LENGTH; i++)
{
_txm_asid_table[i] = 0;
}
_txm_asid_table[0] = (TXM_MODULE_INSTANCE *)TXM_ASID_RESERVED;
-
-
+
+
/********************************************************************************/
/* This is an example showing how to set up the cache attributes. */
/********************************************************************************/
/*******************************************************************************
-* PAGE TABLE generation
-* Generate the page tables
-* Build a flat translation table for the whole address space.
-* ie: Create 4096 1MB sections from 0x000xxxxx to 0xFFFxxxxx
+* PAGE TABLE generation
+* Generate the page tables
+* Build a flat translation table for the whole address space.
+* ie: Create 4096 1MB sections from 0x000xxxxx to 0xFFFxxxxx
* 31 20|19 18|17|16| 15|14 12|11 10|9|8 5|4 |3 2|1 0|
* |base address | 0 0|nG| S|AP2|TEX |AP |P|Domain|XN|CB |1 0|
*
-* Bits[31:20] - Top 12 bits of VA is pointer into table
+* Bits[31:20] - Top 12 bits of VA is pointer into table
* nG[17]=0 - Non global, enables matching against ASID in the TLB when set.
* S[16]=0 - Indicates normal memory is shared when set.
-* AP2[15]=0
+* AP2[15]=0
* TEX[14:12]=000
-* AP[11:10]=11 - Configure for full read/write access in all modes
+* AP[11:10]=11 - Configure for full read/write access in all modes
* IMPP[9]=0 - Ignored
* Domain[5:8]=1111 - Set all pages to use domain 15
* XN[4]=0 - Execute never disabled
-* CB[3:2]= 00 - Set attributes to Strongly-ordered memory.
-* (except for the descriptor where code segment is based,
-* see below)
-* Bits[1:0]=10 - Indicate entry is a 1MB section
+* CB[3:2]= 00 - Set attributes to Strongly-ordered memory.
+* (except for the descriptor where code segment is based,
+* see below)
+* Bits[1:0]=10 - Indicate entry is a 1MB section
*******************************************************************************/
/* ---- Parameter setting to level1 descriptor (bits 19:0) ---- */
-/* setting for Strongly-ordered memory
+/* setting for Strongly-ordered memory
B-00000000000000000000010111100010 */
#define TTB_PARA_STRGLY 0x05E2
-/* setting for Outer and inner not cache normal memory
+/* setting for Outer and inner not cache normal memory
B-00000000000000000001010111100010 */
#define TTB_PARA_NORMAL_NOT_CACHE 0x15E2
-/* setting for Outer and inner write back, write allocate normal memory
- (Cacheable)
+/* setting for Outer and inner write back, write allocate normal memory
+ (Cacheable)
B-00000000000000000001010111101110 */
#define TTB_PARA_NORMAL_CACHE 0x15EE //0x15EE
@@ -167,98 +162,98 @@ UINT _txm_module_manager_mm_initialize(VOID)
#define M_SIZE_RAM_M 10 /* [Area10] Internal RAM (mirror) */
#define M_SIZE_IO_2 2550 /* [Area11] I/O area 2 */
/* Should add to: 4096 */
-
+
counter_limit = M_SIZE_NOR;
for (i = 0; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_CACHE;
}
-
+
counter_limit += M_SIZE_SDRAM;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_CACHE;
}
-
+
counter_limit += M_SIZE_CS45;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_STRGLY;
}
-
+
counter_limit += M_SIZE_SPI;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_CACHE;
}
-
+
counter_limit += M_SIZE_RAM;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_CACHE;
}
-
+
counter_limit += M_SIZE_IO_1;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_STRGLY;
}
-
+
counter_limit += M_SIZE_NOR_M;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_NOT_CACHE;
}
-
+
counter_limit += M_SIZE_SDRAM_M;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_NOT_CACHE;
}
-
+
counter_limit += M_SIZE_CS45_M;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_STRGLY;
}
-
+
counter_limit += M_SIZE_SPI_M;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_NOT_CACHE;
}
-
+
counter_limit += M_SIZE_RAM_M;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_NORMAL_NOT_CACHE;
}
-
+
counter_limit += M_SIZE_IO_2;
for (; i < counter_limit; i++)
{
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = (i << TXM_MMU_LEVEL1_PAGE_SHIFT) | TTB_PARA_STRGLY;
}
-
+
/********************************************************************************/
/* This is the end of the example showing how to set up the cache attributes. */
/********************************************************************************/
-
-
+
+
/* Clear ASID. */
cp15reg = 0;
__asm volatile ("mcr p15, 0, %0, c13, c0, 1" : : "r"(cp15reg) : );
__asm("isb");
-
+
/* Put the page table address in TTBR. */
cp15reg = (int)(VOID*)_txm_ttbr1_page_table;
cp15reg |= TTBR0_ATTRIBUTES;
__asm volatile ("mcr p15, 0, %0, c2, c0, 0" : : "r"(cp15reg) : );
-
+
/* Set the domain to client mode. */
cp15reg = DACR_CLIENT_MODE;
__asm volatile ("mcr p15, 0, %0, c3, c0, 0" : : "r"(cp15reg) : );
-
+
/* Level 2 small page attributes: normal memory, cache & buffer enabled, priviledged access. */
#define TTB_LEVEL2_NORMAL_CACHE 0x05E
@@ -268,7 +263,7 @@ UINT _txm_module_manager_mm_initialize(VOID)
/* Attributes for user mode table entry in level 2 table. */
#define TTB_LEVEL2_USER_MODE_ENTRY 0x06E
-
+
/* Set up Level 2 table for user to kernel mode entry trampoline. */
/* Find which table entry _txm_module_manager_user_mode_entry is in. */
user_mode_index = (ULONG)_txm_module_manager_user_mode_entry >> TXM_MMU_LEVEL1_PAGE_SHIFT;
@@ -277,21 +272,21 @@ UINT _txm_module_manager_mm_initialize(VOID)
{
_txm_level2_module_page_table[TXM_MASTER_PAGE_TABLE_INDEX][i] = ((ULONG)_txm_module_manager_user_mode_entry & TXM_MMU_LEVEL1_MASK) | (i << TXM_MMU_LEVEL2_PAGE_SHIFT) | TTB_LEVEL2_NORMAL_CACHE;
}
-
+
/* Enter Level 2 table in to master table. */
_txm_ttbr1_page_table[TXM_MASTER_PAGE_TABLE_INDEX][user_mode_index] = ((ULONG)_txm_level2_module_page_table & TXM_MMU_LEVEL1_SECOND_MASK) | TXM_MMU_LEVEL1_SECOND_ATTRIBUTES;
-
+
/* Find level 2 entry that holds _txm_module_manager_user_mode_entry. */
user_mode_index = ((ULONG)_txm_module_manager_user_mode_entry & ~TXM_MMU_LEVEL1_MASK) >> TXM_MMU_LEVEL2_PAGE_SHIFT;
-
+
/* Set attribute bits for the user mode entry page. */
_txm_level2_module_page_table[TXM_MASTER_PAGE_TABLE_INDEX][user_mode_index] = (_txm_level2_module_page_table[TXM_MASTER_PAGE_TABLE_INDEX][user_mode_index] & TTB_LEVEL2_AP_CLEAR_MASK) | TTB_LEVEL2_USER_MODE_ENTRY;
-
+
/* Enable the MMU. */
__asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r"(cp15reg) : : );
cp15reg |= 0x1;
__asm volatile ("mcr p15, 0, %0, c1, c0, 0" : : "r"(cp15reg) : );
-
+
return(TX_SUCCESS);
#else
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_register_setup.c b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_register_setup.c
index 9a049056..60202970 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_register_setup.c
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_mm_register_setup.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,12 +62,6 @@ extern ULONG _txm_ttbr1_page_table[TXM_MAXIMUM_MODULES][TXM_MASTER_PAGE_TABLE_EN
/* */
/* TXM_MODULE_MANAGER_DATA_POINTER_CHECK */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* */
/**************************************************************************/
UINT _txm_module_manager_inside_data_check(ULONG pointer)
{
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_thread_stack_build.s b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
index d62f5cf8..e701846a 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,16 +68,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_user_mode_entry.s b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_user_mode_entry.s
index e84bb7f2..b9c59109 100644
--- a/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_user_mode_entry.s
+++ b/ports_module/cortex_a7/gnu/module_manager/src/txm_module_manager_user_mode_entry.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,16 +58,6 @@
/* CALLED BY */
/* */
/* Modules in user mode */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 03-08-2023 Scott Larson Initial Version 6.2.1 */
-/* 10-31-2023 Yajun Xia Updated comments, */
-/* Added thumb mode support, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.text
.align 12