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