colibri_imx6: fix video stdout in default environment
[oweals/u-boot.git] / include / tee.h
index b86dbec257b40929dad541d9dce4aa4d1ccc73d0..8207d0c02afb304465ff2d1f8fef54b9932fd92d 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef __TEE_H
 #define __TEE_H
 
+#include <linux/bitops.h>
 #define TEE_UUID_LEN           16
 
 #define TEE_GEN_CAP_GP          BIT(0) /* GlobalPlatform compliant TEE */
@@ -34,6 +35,7 @@
  * struct tee_version_data::gen_caps
  */
 #define TEE_SUCCESS                    0x00000000
+#define TEE_ERROR_STORAGE_NOT_AVAILABLE        0xf0100003
 #define TEE_ERROR_GENERIC              0xffff0000
 #define TEE_ERROR_BAD_PARAMETERS       0xffff0006
 #define TEE_ERROR_ITEM_NOT_FOUND       0xffff0008
 #define TEE_ERROR_COMMUNICATION                0xffff000e
 #define TEE_ERROR_SECURITY             0xffff000f
 #define TEE_ERROR_OUT_OF_MEMORY                0xffff000c
+#define TEE_ERROR_OVERFLOW              0xffff300f
 #define TEE_ERROR_TARGET_DEAD          0xffff3024
+#define TEE_ERROR_STORAGE_NO_SPACE      0xffff3041
 
 #define TEE_ORIGIN_COMMS               0x00000002
 #define TEE_ORIGIN_TEE                 0x00000003
 #define TEE_ORIGIN_TRUSTED_APP         0x00000004
 
 struct udevice;
+
+/**
+ * struct tee_optee_ta_uuid - OP-TEE Trusted Application (TA) UUID format
+ *
+ * Used to identify an OP-TEE TA and define suitable to initialize structs
+ * of this format is distributed with the interface of the TA. The
+ * individual fields of this struct doesn't have any special meaning in
+ * OP-TEE. See RFC4122 for details on the format.
+ */
+struct tee_optee_ta_uuid {
+       u32 time_low;
+       u16 time_mid;
+       u16 time_hi_and_version;
+       u8 clock_seq_and_node[8];
+};
+
 /**
  * struct tee_shm - memory shared with the TEE
  * @dev:       The TEE device
@@ -333,4 +353,26 @@ int tee_close_session(struct udevice *dev, u32 session);
 int tee_invoke_func(struct udevice *dev, struct tee_invoke_arg *arg,
                    uint num_param, struct tee_param *param);
 
+/**
+ * tee_optee_ta_uuid_from_octets() - Converts to struct tee_optee_ta_uuid
+ * @d: Destination struct
+ * @s: Source UUID octets
+ *
+ * Conversion to a struct tee_optee_ta_uuid represantion from binary octet
+ * representation.
+ */
+void tee_optee_ta_uuid_from_octets(struct tee_optee_ta_uuid *d,
+                                  const u8 s[TEE_UUID_LEN]);
+
+/**
+ * tee_optee_ta_uuid_to_octets() - Converts from struct tee_optee_ta_uuid
+ * @d: Destination UUID octets
+ * @s: Source struct
+ *
+ * Conversion from a struct tee_optee_ta_uuid represantion to binary octet
+ * representation.
+ */
+void tee_optee_ta_uuid_to_octets(u8 d[TEE_UUID_LEN],
+                                const struct tee_optee_ta_uuid *s);
+
 #endif /* __TEE_H */