diff --git a/docs/perf/psci-performance-n1sdp.rst b/docs/perf/psci-performance-n1sdp.rst
index e8faae4..196cdb1 100644
--- a/docs/perf/psci-performance-n1sdp.rst
+++ b/docs/perf/psci-performance-n1sdp.rst
@@ -6,8 +6,8 @@
 
 The following source trees were used:
 
-- `TF-A v2.12-rc0`_
-- `TFTF v2.12-rc0`_
+- `TF-A v2.13-rc0`_
+- `TFTF v2.13-rc0`_
 
 Please see the Runtime Instrumentation :ref:`Testing Methodology
 <Runtime Instrumentation Methodology>` page for more details. The tests were ran
@@ -21,6 +21,20 @@
 ``CPU_SUSPEND`` to deepest power level
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in parallel (v2.13)
+
+    +---------+------+----------------+-----------------+----------------+
+    | Cluster | Core |   Powerdown    |      Wakeup     |  Cache Flush   |
+    +---------+------+----------------+-----------------+----------------+
+    |    0    |  0   |      3.32      | 13.42 (-45.40%) | 0.28 (-69.57%) |
+    +---------+------+----------------+-----------------+----------------+
+    |    0    |  0   | 4.02 (-35.78%) | 18.14 (-52.88%) |      0.28      |
+    +---------+------+----------------+-----------------+----------------+
+    |    1    |  0   | 2.7 (-27.42%)  | 17.38 (-49.36%) |      0.26      |
+    +---------+------+----------------+-----------------+----------------+
+    |    1    |  0   |      2.96      | 10.86 (-73.64%) |      0.26      |
+    +---------+------+----------------+-----------------+----------------+
+
 .. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in parallel (v2.12)
 
     +---------+------+----------------+--------+----------------+
@@ -35,19 +49,19 @@
     |    1    |  0   |      3.28      | 42.36  |      0.3       |
     +---------+------+----------------+--------+----------------+
 
-.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in parallel (v2.11)
+.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in serial (v2.13)
 
-    +---------+------+----------------+--------+----------------+
-    | Cluster | Core |   Powerdown    | Wakeup |  Cache Flush   |
-    +---------+------+----------------+--------+----------------+
-    |    0    |  0   | 3.0 (+41.51%)  | 23.14  | 1.2 (+185.71%) |
-    +---------+------+----------------+--------+----------------+
-    |    0    |  0   |      4.6       | 35.86  |      0.3       |
-    +---------+------+----------------+--------+----------------+
-    |    1    |  0   | 3.68 (+33.33%) | 33.36  |      0.3       |
-    +---------+------+----------------+--------+----------------+
-    |    1    |  0   | 3.7 (+40.15%)  |  38.1  |      0.28      |
-    +---------+------+----------------+--------+----------------+
+    +---------+------+-----------+-----------------+----------------+
+    | Cluster | Core | Powerdown |      Wakeup     |  Cache Flush   |
+    +---------+------+-----------+-----------------+----------------+
+    |    0    |  0   |    1.62   | 10.14 (-58.10%) |      0.3       |
+    +---------+------+-----------+-----------------+----------------+
+    |    0    |  0   |    1.86   | 10.62 (-56.44%) | 0.28 (-26.32%) |
+    +---------+------+-----------+-----------------+----------------+
+    |    1    |  0   |    1.8    | 10.16 (-57.84%) |      0.32      |
+    +---------+------+-----------+-----------------+----------------+
+    |    1    |  0   |    2.16   |  10.6 (-56.84%) | 0.5 (+56.25%)  |
+    +---------+------+-----------+-----------------+----------------+
 
 .. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in serial (v2.12)
 
@@ -63,23 +77,23 @@
     |    1    |  0   |    2.24   | 23.84  |     0.36    |
     +---------+------+-----------+--------+-------------+
 
-.. table:: ``CPU_SUSPEND`` latencies (µs) to deepest power level in serial (v2.11)
-
-    +---------+------+-----------+--------+-------------+
-    | Cluster | Core | Powerdown | Wakeup | Cache Flush |
-    +---------+------+-----------+--------+-------------+
-    |    0    |  0   |    1.7    | 22.46  |     0.3     |
-    +---------+------+-----------+--------+-------------+
-    |    0    |  0   |    2.28   |  22.5  |     0.3     |
-    +---------+------+-----------+--------+-------------+
-    |    1    |  0   |    2.14   |  21.5  |     0.32    |
-    +---------+------+-----------+--------+-------------+
-    |    1    |  0   |    2.24   | 22.66  |     0.3     |
-    +---------+------+-----------+--------+-------------+
-
 ``CPU_SUSPEND`` to power level 0
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in parallel (v2.13)
+
+    +---------+------+----------------+-----------------+---------------+
+    | Cluster | Core |   Powerdown    |      Wakeup     |  Cache Flush  |
+    +---------+------+----------------+-----------------+---------------+
+    |    0    |  0   | 0.8 (-57.45%)  | 11.98 (-61.75%) |      0.26     |
+    +---------+------+----------------+-----------------+---------------+
+    |    0    |  0   | 1.54 (-30.63%) | 16.44 (-53.74%) |      0.26     |
+    +---------+------+----------------+-----------------+---------------+
+    |    1    |  0   | 1.62 (-30.77%) |  16.1 (-53.92%) |      0.3      |
+    +---------+------+----------------+-----------------+---------------+
+    |    1    |  0   |      1.8       | 10.54 (-55.30%) | 0.2 (-33.33%) |
+    +---------+------+----------------+-----------------+---------------+
+
 .. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in parallel (v2.12)
 
     +---------+------+-----------+--------+----------------+
@@ -94,19 +108,19 @@
     |    1    |  0   |    2.08   | 23.38  |      0.28      |
     +---------+------+-----------+--------+----------------+
 
-.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in parallel (v2.11)
+.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in serial (v2.13)
 
-    +---------+------+----------------+--------+-------------+
-    | Cluster | Core |   Powerdown    | Wakeup | Cache Flush |
-    +---------+------+----------------+--------+-------------+
-    |    0    |  0   | 0.94 (-37.33%) | 30.36  |     0.3     |
-    +---------+------+----------------+--------+-------------+
-    |    0    |  0   |      2.12      | 33.12  |     0.28    |
-    +---------+------+----------------+--------+-------------+
-    |    1    |  0   |      2.08      | 32.56  |     0.3     |
-    +---------+------+----------------+--------+-------------+
-    |    1    |  0   |      2.14      | 21.92  |     0.28    |
-    +---------+------+----------------+--------+-------------+
+    +---------+------+----------------+-----------------+----------------+
+    | Cluster | Core |   Powerdown    |      Wakeup     |  Cache Flush   |
+    +---------+------+----------------+-----------------+----------------+
+    |    0    |  0   |      1.44      |  9.9 (-58.05%)  |      0.3       |
+    +---------+------+----------------+-----------------+----------------+
+    |    0    |  0   | 1.74 (-25.64%) |  10.4 (-56.23%) | 0.28 (-33.33%) |
+    +---------+------+----------------+-----------------+----------------+
+    |    1    |  0   |      1.8       | 10.04 (-57.71%) |      0.34      |
+    +---------+------+----------------+-----------------+----------------+
+    |    1    |  0   |      1.96      | 10.46 (-56.23%) |      0.44      |
+    +---------+------+----------------+-----------------+----------------+
 
 .. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in serial (v2.12)
 
@@ -122,26 +136,26 @@
     |    1    |  0   |    2.16   | 23.92  |      0.34      |
     +---------+------+-----------+--------+----------------+
 
-.. table:: ``CPU_SUSPEND`` latencies (µs) to power level 0 in serial (v2.11)
-
-    +---------+------+-----------+--------+-------------+
-    | Cluster | Core | Powerdown | Wakeup | Cache Flush |
-    +---------+------+-----------+--------+-------------+
-    |    0    |  0   |    1.64   | 21.88  |     0.34    |
-    +---------+------+-----------+--------+-------------+
-    |    0    |  0   |    2.42   | 21.76  |     0.34    |
-    +---------+------+-----------+--------+-------------+
-    |    1    |  0   |    2.02   | 21.14  |     0.32    |
-    +---------+------+-----------+--------+-------------+
-    |    1    |  0   |    2.18   |  22.3  |     0.34    |
-    +---------+------+-----------+--------+-------------+
-
 ``CPU_OFF`` on all non-lead CPUs
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 ``CPU_OFF`` on all non-lead CPUs in sequence then, ``CPU_SUSPEND`` on the lead
 core to the deepest power level.
 
+.. table:: ``CPU_OFF`` latencies (µs) on all non-lead CPUs (v2.13)
+
+    +---------+------+-----------+-----------------+---------------+
+    | Cluster | Core | Powerdown |      Wakeup     |  Cache Flush  |
+    +---------+------+-----------+-----------------+---------------+
+    |    0    |  0   |    1.64   | 10.24 (-57.72%) |      0.3      |
+    +---------+------+-----------+-----------------+---------------+
+    |    0    |  0   |   13.92   |  17.7 (-43.74%) |      0.3      |
+    +---------+------+-----------+-----------------+---------------+
+    |    1    |  0   |   13.54   | 16.74 (-44.90%) | 0.3 (-37.50%) |
+    +---------+------+-----------+-----------------+---------------+
+    |    1    |  0   |   14.12   | 18.28 (-41.93%) | 0.3 (-44.44%) |
+    +---------+------+-----------+-----------------+---------------+
+
 .. table:: ``CPU_OFF`` latencies (µs) on all non-lead CPUs (v2.12)
 
     +---------+------+-----------+--------+----------------+
@@ -156,22 +170,21 @@
     |    1    |  0   |   14.18   | 31.82  |      0.68      |
     +---------+------+-----------+--------+----------------+
 
-.. table:: ``CPU_OFF`` latencies (µs) on all non-lead CPUs (v2.11)
-
-    +---------+------+-----------+--------+----------------+
-    | Cluster | Core | Powerdown | Wakeup |  Cache Flush   |
-    +---------+------+-----------+--------+----------------+
-    |    0    |  0   |    1.96   | 22.44  |      0.38      |
-    +---------+------+-----------+--------+----------------+
-    |    0    |  0   |   13.76   | 30.34  |      0.26      |
-    +---------+------+-----------+--------+----------------+
-    |    1    |  0   |   13.46   | 28.28  |      0.24      |
-    +---------+------+-----------+--------+----------------+
-    |    1    |  0   |   13.84   | 30.06  | 0.28 (-60.00%) |
-    +---------+------+-----------+--------+----------------+
-
 ``CPU_VERSION`` in parallel
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. table:: ``CPU_VERSION`` latency (µs) in parallel on all cores (v2.13)
+
+    +----------+------+-------------------+
+    | Cluster  | Core |      Latency      |
+    +----------+------+-------------------+
+    |    0     |  0   |        0.12       |
+    +----------+------+-------------------+
+    |    0     |  0   |   0.2 (-28.57%)   |
+    +----------+------+-------------------+
+    |    1     |  0   |        0.2        |
+    +----------+------+-------------------+
+    |    1     |  0   |   0.24 (-25.00%)  |
+    +----------+------+-------------------+
 
 .. table:: ``CPU_VERSION`` latency (µs) in parallel on all cores (v2.12)
 
@@ -187,25 +200,11 @@
     |    1     |  0   |        0.26       |
     +----------+------+-------------------+
 
-.. table:: ``CPU_VERSION`` latency (µs) in parallel on all cores (v2.11)
-
-    +-------------+--------+--------------+
-    |   Cluster   |  Core  |   Latency    |
-    +-------------+--------+--------------+
-    |      0      |   0    |     0.12     |
-    +-------------+--------+--------------+
-    |      0      |   0    |     0.24     |
-    +-------------+--------+--------------+
-    |      1      |   0    |     0.2      |
-    +-------------+--------+--------------+
-    |      1      |   0    |     0.26     |
-    +-------------+--------+--------------+
-
 --------------
 
 *Copyright (c) 2023-2025, Arm Limited. All rights reserved.*
 
-.. _TF-A v2.12-rc0: https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/refs/tags/v2.12-rc0
-.. _TFTF v2.12-rc0: https://review.trustedfirmware.org/plugins/gitiles/TF-A/tf-a-tests/+/refs/tags/v2.12-rc0
+.. _TF-A v2.13-rc0: https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/refs/tags/v2.13-rc0
+.. _TFTF v2.13-rc0: https://review.trustedfirmware.org/plugins/gitiles/TF-A/tf-a-tests/+/refs/tags/v2.13-rc0
 .. _user guide: https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/n1sdp/user-guide.rst
 .. _N1SDP: https://developer.arm.com/documentation/101489/latest
