diff mbox series

[v2,1/2] tee: define session login identifiers

Message ID 20210519142613.7668-1-etienne.carriere@linaro.org
State Superseded
Headers show
Series [v2,1/2] tee: define session login identifiers | expand

Commit Message

Etienne Carriere May 19, 2021, 2:26 p.m. UTC
Define identifiers for clnt_login field in struct tee_open_session_arg
based in GlobalPlatform Device TEE IDs and on the REE_KERNEL identifier
extension from OP-TEE OS.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>

---
Changes since v1:
- Rename macros to TEE_LOGIN_* and use same inline description as made
  in Linux kernel source tree.
---
 include/tee.h | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

-- 
2.17.1

Comments

Jens Wiklander May 20, 2021, 2:49 p.m. UTC | #1
On Wed, May 19, 2021 at 4:27 PM Etienne Carriere
<etienne.carriere@linaro.org> wrote:
>

> Define identifiers for clnt_login field in struct tee_open_session_arg

> based in GlobalPlatform Device TEE IDs and on the REE_KERNEL identifier

> extension from OP-TEE OS.

>

> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>

> ---

> Changes since v1:

> - Rename macros to TEE_LOGIN_* and use same inline description as made

>   in Linux kernel source tree.

> ---

>  include/tee.h | 23 +++++++++++++++++++++--

>  1 file changed, 21 insertions(+), 2 deletions(-)

>

> diff --git a/include/tee.h b/include/tee.h

> index 99367b258e..d56530653c 100644

> --- a/include/tee.h

> +++ b/include/tee.h

> @@ -31,6 +31,25 @@

>  #define TEE_PARAM_ATTR_MASK                    (TEE_PARAM_ATTR_TYPE_MASK | \

>                                                  TEE_PARAM_ATTR_META)

>

> +/*

> + * Global Platform login identifiers for tee_open_session_arg::clnt_login

> + */

> +#define TEE_LOGIN_PUBLIC                  0x00000000

> +#define TEE_LOGIN_USER                    0x00000001

> +#define TEE_LOGIN_GROUP                   0x00000002

> +#define TEE_LOGIN_APPLICATION             0x00000004

> +#define TEE_LOGIN_APPLICATION_USER        0x00000005

> +#define TEE_LOGIN_APPLICATION_GROUP       0x00000006

> +/*

> + * Disallow user-space to use GP implementation specific login

> + * method range (0x80000000 - 0xBFFFFFFF). This range is rather

> + * being reserved for REE kernel clients or TEE implementation.

> + */

> +#define TEE_LOGIN_REE_KERNEL_MIN          0x80000000

> +#define TEE_LOGIN_REE_KERNEL_MAX          0xBFFFFFFF

> +/* Private login method for REE kernel clients */

> +#define TEE_LOGIN_REE_KERNEL              0x80000000

> +


I might be a bit odd to talk about user-space in U-Boot, but I suppose
it's still good to know how this is supposed to work later in the
kernel too.

What do others think?

Cheers,
Jens
Etienne Carriere May 21, 2021, 1:17 p.m. UTC | #2
On Thu, 20 May 2021 at 16:50, Jens Wiklander <jens.wiklander@linaro.org> wrote:
>

> On Wed, May 19, 2021 at 4:27 PM Etienne Carriere

> <etienne.carriere@linaro.org> wrote:

> >

> > Define identifiers for clnt_login field in struct tee_open_session_arg

> > based in GlobalPlatform Device TEE IDs and on the REE_KERNEL identifier

> > extension from OP-TEE OS.

> >

> > Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>

> > ---

> > Changes since v1:

> > - Rename macros to TEE_LOGIN_* and use same inline description as made

> >   in Linux kernel source tree.

> > ---

> >  include/tee.h | 23 +++++++++++++++++++++--

> >  1 file changed, 21 insertions(+), 2 deletions(-)

> >

> > diff --git a/include/tee.h b/include/tee.h

> > index 99367b258e..d56530653c 100644

> > --- a/include/tee.h

> > +++ b/include/tee.h

> > @@ -31,6 +31,25 @@

> >  #define TEE_PARAM_ATTR_MASK                    (TEE_PARAM_ATTR_TYPE_MASK | \

> >                                                  TEE_PARAM_ATTR_META)

> >

> > +/*

> > + * Global Platform login identifiers for tee_open_session_arg::clnt_login

> > + */

> > +#define TEE_LOGIN_PUBLIC                  0x00000000

> > +#define TEE_LOGIN_USER                    0x00000001

> > +#define TEE_LOGIN_GROUP                   0x00000002

> > +#define TEE_LOGIN_APPLICATION             0x00000004

> > +#define TEE_LOGIN_APPLICATION_USER        0x00000005

> > +#define TEE_LOGIN_APPLICATION_GROUP       0x00000006

> > +/*

> > + * Disallow user-space to use GP implementation specific login

> > + * method range (0x80000000 - 0xBFFFFFFF). This range is rather

> > + * being reserved for REE kernel clients or TEE implementation.

> > + */

> > +#define TEE_LOGIN_REE_KERNEL_MIN          0x80000000

> > +#define TEE_LOGIN_REE_KERNEL_MAX          0xBFFFFFFF

> > +/* Private login method for REE kernel clients */

> > +#define TEE_LOGIN_REE_KERNEL              0x80000000

> > +

>

> I might be a bit odd to talk about user-space in U-Boot, but I suppose

> it's still good to know how this is supposed to work later in the

> kernel too.


Okay, i'll rephrase.
/*
 * Reserve use of GP implementation specific login method range
 * (0x80000000 - 0xBFFFFFFF). This range is rather being used
 * for REE kernel clients or TEE implementation.
 */

cheers,
etienne


>

> What do others think?

>

> Cheers,

> Jens
diff mbox series

Patch

diff --git a/include/tee.h b/include/tee.h
index 99367b258e..d56530653c 100644
--- a/include/tee.h
+++ b/include/tee.h
@@ -31,6 +31,25 @@ 
 #define TEE_PARAM_ATTR_MASK			(TEE_PARAM_ATTR_TYPE_MASK | \
 						 TEE_PARAM_ATTR_META)
 
+/*
+ * Global Platform login identifiers for tee_open_session_arg::clnt_login
+ */
+#define TEE_LOGIN_PUBLIC                  0x00000000
+#define TEE_LOGIN_USER                    0x00000001
+#define TEE_LOGIN_GROUP                   0x00000002
+#define TEE_LOGIN_APPLICATION             0x00000004
+#define TEE_LOGIN_APPLICATION_USER        0x00000005
+#define TEE_LOGIN_APPLICATION_GROUP       0x00000006
+/*
+ * Disallow user-space to use GP implementation specific login
+ * method range (0x80000000 - 0xBFFFFFFF). This range is rather
+ * being reserved for REE kernel clients or TEE implementation.
+ */
+#define TEE_LOGIN_REE_KERNEL_MIN          0x80000000
+#define TEE_LOGIN_REE_KERNEL_MAX          0xBFFFFFFF
+/* Private login method for REE kernel clients */
+#define TEE_LOGIN_REE_KERNEL              0x80000000
+
 /*
  * Some Global Platform error codes which has a meaning if the
  * TEE_GEN_CAP_GP bit is returned by the driver in
@@ -135,8 +154,8 @@  struct tee_param {
 /**
  * struct tee_open_session_arg - extra arguments for tee_open_session()
  * @uuid:	[in] UUID of the Trusted Application
- * @clnt_uuid:	[in] Normally zeroes
- * @clnt_login:	[in] Normally 0
+ * @clnt_uuid:	[in] UUID of client, zeroes for PUBLIC/REE_KERNEL
+ * @clnt_login:	[in] Class of client TEE_LOGIN_*
  * @session:	[out] Session id
  * @ret:	[out] return value
  * @ret_origin:	[out] origin of the return value