diff --git a/lib/arm_ffa/arm_ffa.c b/lib/arm_ffa/arm_ffa.c
index cac3053..9656664 100644
--- a/lib/arm_ffa/arm_ffa.c
+++ b/lib/arm_ffa/arm_ffa.c
@@ -25,6 +25,7 @@
 #define LOCAL_TRACE 0
 
 #include <assert.h>
+#include <endian.h>
 #include <err.h>
 #include <interface/arm_ffa/arm_ffa.h>
 #include <inttypes.h>
@@ -32,6 +33,7 @@
 #include <kernel/vm.h>
 #include <lib/arm_ffa/arm_ffa.h>
 #include <lib/smc/smc.h>
+#include <lib/trusty/uuid.h>
 #include <lk/init.h>
 #include <lk/macros.h>
 #include <string.h>
@@ -54,6 +56,25 @@
     return ffa_init_state;
 }
 
+/**
+ * uuid_to_le64_pair() - convert uuid_t to (lo, hi)-pair per FFA spec.
+ *
+ * @uuid_lo_hi: Must be an array large enough to store a pair of 64-bit values.
+ *      These output elements are little-endian encoded. Upon function return,
+ *      uuid_lo_hi[0] contains what the FFA spec labels "Lo" - bytes [0-7], and
+ *      uuid_lo_hi[1] contains what the FFA spec labels "Hi" - bytes [8-15].
+ */
+static inline void uuid_to_le64_pair(uuid_t uuid_obj,
+                                     uint64_t uuid_lo_hi[static 2]) {
+    uuid_lo_hi[0] = (((uint64_t)htole16(uuid_obj.time_hi_and_version) << 48) |
+                     ((uint64_t)htole16(uuid_obj.time_mid) << 32) |
+                     ((uint64_t)htole32(uuid_obj.time_low)));
+
+    for (int i = 0; i < 8; i++) {
+        uuid_lo_hi[1] |= ((uint64_t)uuid_obj.clock_seq_and_node[i]) << (i * 8);
+    }
+}
+
 static status_t arm_ffa_call_id_get(uint16_t* id) {
     struct smc_ret8 smc_ret;
 
