summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-06-22 08:27:10 -0400
committerGitHub <[email protected]>2026-06-22 08:27:10 -0400
commit2dfe5acfb0927c5b32d4810dbdbc18aeae5860a1 (patch)
tree5441dadb2149b45b0df14f2b06a6dc834f7e375f
parent32a68cc69ae87ece4d71f2426ca5725bcd3e3c64 (diff)
Fixed ARMv8 SMP time sources (#555)
Follow up on the issue-541 execution profiling work. PR #553 fixed SMP execution profile total-time aggregation, and PR #554 fixed Armv7/R SMP timestamp hooks that used decrementing private timers. This change addresses the remaining related gap in ARMv8-A SMP ports: their timestamp hooks returned zero, which left execution profiling and trace timestamps without a progressing time source. Replace those stubs with the architectural generic physical counter, CNTPCT_EL0, across the ARMv8-A SMP GNU, AC6, IAR, and GHS variants. The local ARMv8 AArch64 system timer example already uses CNTPCT_EL0 for physical count reads, so this keeps the SMP timestamp hook aligned with the existing port examples while preserving the 32-bit ULONG return contract. Co-authored-by: Codex <[email protected]>
-rw-r--r--ports_smp/cortex_a34_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a34_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a35_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a35_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a53_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a53_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a55_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a55_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a57_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a57_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a5x_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a5x_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a5x_smp/green/src/tx_thread_smp_time_get.a644
-rw-r--r--ports_smp/cortex_a5x_smp/iar/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a65_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a65_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a72_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a72_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a73_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a73_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a75_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a75_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a76_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a76_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a77_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a77_smp/gnu/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a78_smp/ac6/src/tx_thread_smp_time_get.S3
-rw-r--r--ports_smp/cortex_a78_smp/gnu/src/tx_thread_smp_time_get.S3
32 files changed, 65 insertions, 32 deletions
diff --git a/ports_smp/cortex_a34_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a34_smp/ac6/src/tx_thread_smp_time_get.S
index f3045738..a5451ff7 100644
--- a/ports_smp/cortex_a34_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a34_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a34_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a34_smp/gnu/src/tx_thread_smp_time_get.S
index f3045738..a5451ff7 100644
--- a/ports_smp/cortex_a34_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a34_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a35_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a35_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a35_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a35_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a53_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a53_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a53_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a53_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a55_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a55_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a55_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a55_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a57_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a57_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a57_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a57_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a5x_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a5x_smp/ac6/src/tx_thread_smp_time_get.S
index efa6d62c..1c8ea3ae 100644
--- a/ports_smp/cortex_a5x_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a5x_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a5x_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a5x_smp/gnu/src/tx_thread_smp_time_get.S
index 4a98140a..e0605deb 100644
--- a/ports_smp/cortex_a5x_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a5x_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a5x_smp/green/src/tx_thread_smp_time_get.a64 b/ports_smp/cortex_a5x_smp/green/src/tx_thread_smp_time_get.a64
index 45d286b0..b3501d5a 100644
--- a/ports_smp/cortex_a5x_smp/green/src/tx_thread_smp_time_get.a64
+++ b/ports_smp/cortex_a5x_smp/green/src/tx_thread_smp_time_get.a64
@@ -1,5 +1,6 @@
/***************************************************************************
* 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
@@ -8,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -76,7 +78,7 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // Add time source - application specific
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a5x_smp/iar/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a5x_smp/iar/src/tx_thread_smp_time_get.S
index 43834196..4808149f 100644
--- a/ports_smp/cortex_a5x_smp/iar/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a5x_smp/iar/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -70,7 +71,7 @@
/**************************************************************************/
PUBLIC _tx_thread_smp_time_get
_tx_thread_smp_time_get:
- MOV x0, #0 // Add logic to get timer value here for diagnostics
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
END
diff --git a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a65_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a65_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a65_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a65_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a65ae_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a65ae_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a72_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a72_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a72_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a72_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a73_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a73_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a73_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a73_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a75_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a75_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a75_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a75_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a76_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a76_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a76_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a76_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a76ae_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a76ae_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a77_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a77_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_smp_time_get.S
index 335824fb..81286412 100644
--- a/ports_smp/cortex_a77_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a77_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -60,5 +61,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a78_smp/ac6/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a78_smp/ac6/src/tx_thread_smp_time_get.S
index f3045738..a5451ff7 100644
--- a/ports_smp/cortex_a78_smp/ac6/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a78_smp/ac6/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET
diff --git a/ports_smp/cortex_a78_smp/gnu/src/tx_thread_smp_time_get.S b/ports_smp/cortex_a78_smp/gnu/src/tx_thread_smp_time_get.S
index f3045738..a5451ff7 100644
--- a/ports_smp/cortex_a78_smp/gnu/src/tx_thread_smp_time_get.S
+++ b/ports_smp/cortex_a78_smp/gnu/src/tx_thread_smp_time_get.S
@@ -9,6 +9,7 @@
* SPDX-License-Identifier: MIT
**************************************************************************/
+// Some portions generated by Codex (GPT-5).
/**************************************************************************/
/**************************************************************************/
@@ -58,5 +59,5 @@
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
_tx_thread_smp_time_get:
- MOV x0, #0 // FIXME: Get timer
+ MRS x0, CNTPCT_EL0 // Read generic timer physical count
RET