summaryrefslogtreecommitdiff
path: root/ports/cortex_a57
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-09-15 16:24:09 -0400
committerGitHub <[email protected]>2026-09-15 16:24:09 -0400
commit5d235a534c8969cc5ed50bfd492806b5b6993a3b (patch)
treef5c4ccdb6ec68773a8983bf3cf6f20c831657770 /ports/cortex_a57
parentcd6a2d90347945f2736a6afe25dcf745ffc31a6c (diff)
Fixed the garbage _tx_initialize_unused_memory in the GNU Cortex-A ports (#726)
Fixes #435 `LDR x1, =__top_of_ram` already loads the top of RAM, so the `LDR x1, [x1]` that followed read whatever sat at that address and left `_tx_initialize_unused_memory` holding garbage. Dropped that instruction from the 13 non-SMP GNU Cortex-A ports, the ARMv8-A source they are generated from, and the two Cortex-A35 module examples. The SMP GNU ports already had the correct form, and the Arm Compiler ports are unaffected -- their symbol really does need the dereference. `scripts/check_ports.sh` passes and the `gnu` CI job build-verifies the AArch64 ports. Not run on hardware. Assisted-by: Copilot (Opus 5) <[email protected]>
Diffstat (limited to 'ports/cortex_a57')
-rw-r--r--ports/cortex_a57/gnu/src/tx_initialize_low_level.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/ports/cortex_a57/gnu/src/tx_initialize_low_level.S b/ports/cortex_a57/gnu/src/tx_initialize_low_level.S
index 3025f12b..07e4ea11 100644
--- a/ports/cortex_a57/gnu/src/tx_initialize_low_level.S
+++ b/ports/cortex_a57/gnu/src/tx_initialize_low_level.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Copilot (Opus 5).
/**************************************************************************/
/**************************************************************************/
@@ -83,7 +84,6 @@ _tx_initialize_low_level:
LDR x0, =_tx_initialize_unused_memory // Pickup address of unused memory ptr
LDR x1, =__top_of_ram // Pickup unused memory address
- LDR x1, [x1] //
STR x1, [x0] // Store unused memory address
/* Done, return to caller. */