summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSandrine Bailleux <sandrine.bailleux@arm.com>2023-02-08 11:48:14 +0100
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2023-02-08 11:48:14 +0100
commitc2ce57f51925dc2b2b730c9b9c732c89694a0deb (patch)
treedaac8903c6410e2bf8d3ab913aaeb64eb5259cd3 /lib
parent6264643a0711faef346cbbb6e3d928a198aeaf31 (diff)
parent8374508b00909cdffbe6233cf8fddcb49924faed (diff)
downloadarm-trusted-firmware-c2ce57f51925dc2b2b730c9b9c732c89694a0deb.tar.gz
Merge "feat(psa): interface with RSS for NV counters" into integration
Diffstat (limited to 'lib')
-rw-r--r--lib/psa/rss_platform.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/psa/rss_platform.c b/lib/psa/rss_platform.c
new file mode 100644
index 000000000..359f89499
--- /dev/null
+++ b/lib/psa/rss_platform.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2023, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <stdint.h>
+
+#include <psa/client.h>
+#include <psa_manifest/sid.h>
+#include <rss_platform_api.h>
+
+psa_status_t
+rss_platform_nv_counter_increment(uint32_t counter_id)
+{
+ struct psa_invec in_vec[1];
+
+ in_vec[0].base = &counter_id;
+ in_vec[0].len = sizeof(counter_id);
+
+ return psa_call(RSS_PLATFORM_SERVICE_HANDLE,
+ RSS_PLATFORM_API_ID_NV_INCREMENT,
+ in_vec, 1, NULL, 0);
+}
+
+psa_status_t
+rss_platform_nv_counter_read(uint32_t counter_id,
+ uint32_t size, uint8_t *val)
+{
+ struct psa_invec in_vec[1];
+ struct psa_outvec out_vec[1];
+
+ in_vec[0].base = &counter_id;
+ in_vec[0].len = sizeof(counter_id);
+
+ out_vec[0].base = val;
+ out_vec[0].len = size;
+
+ return psa_call(RSS_PLATFORM_SERVICE_HANDLE,
+ RSS_PLATFORM_API_ID_NV_READ,
+ in_vec, 1, out_vec, 1);
+}