[PATCH 2/2] drivers: rng: optee_rng: register to CONFIG_OPTEE_SERVICE_DISCOVERY

Patrick DELAUNAY patrick.delaunay at foss.st.com
Thu Jun 2 14:19:55 CEST 2022


Hi Etienne,

On 6/1/22 10:27, Etienne Carriere wrote:
> Changes optee_rng driver to register itself has a OP-TEE service so
> that a device is bound for the driver when OP-TEE enumerates the
> PTA RNG service.
>
> Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
> Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
> ---
>   drivers/rng/Kconfig     |  1 +
>   drivers/rng/optee_rng.c | 12 +++++++++++-
>   2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/rng/Kconfig b/drivers/rng/Kconfig
> index c10f7d345b..14e95a6213 100644
> --- a/drivers/rng/Kconfig
> +++ b/drivers/rng/Kconfig
> @@ -34,6 +34,7 @@ config RNG_MSM
>   config RNG_OPTEE
>   	bool "OP-TEE based Random Number Generator support"
>   	depends on DM_RNG && OPTEE
> +	default y if OPTEE_SERVICE_DISCOVERY
>   	help
>   	  This driver provides support for the OP-TEE based Random Number
>   	  Generator on ARM SoCs where hardware entropy sources are not
> diff --git a/drivers/rng/optee_rng.c b/drivers/rng/optee_rng.c
> index aa8ce864d3..90d9434395 100644
> --- a/drivers/rng/optee_rng.c
> +++ b/drivers/rng/optee_rng.c
> @@ -11,6 +11,9 @@
>   #include <dm/device.h>
>   #include <dm/device_compat.h>
>   #include <linux/sizes.h>
> +#include <tee/optee_service.h>
> +
> +#define DRIVER_NAME	"optee-rng"
>   
>   #define TEE_ERROR_HEALTH_TEST_FAIL	0x00000001
>   
> @@ -35,6 +38,13 @@
>   #define TA_HWRNG_UUID { 0xab7a617c, 0xb8e7, 0x4d8f, \
>   			{ 0x83, 0x01, 0xd0, 0x9b, 0x61, 0x03, 0x6b, 0x64 } }
>   
> +#ifdef CONFIG_OPTEE_SERVICE_DISCOVERY


#ifdef is really needed here


> +OPTEE_SERVICE_DRIVER(optee_rng) = {
> +	.uuid = TA_HWRNG_UUID,
> +	.driver_name = DRIVER_NAME,
> +};
> +#endif
> +
>   /** open_session_ta_hwrng() - Open session with hwrng Trusted App
>    *
>    * @dev:		device
> @@ -177,7 +187,7 @@ static const struct dm_rng_ops optee_rng_ops = {
>   };
>   
>   U_BOOT_DRIVER(optee_rng) = {
> -	.name = "optee-rng",
> +	.name = DRIVER_NAME,
>   	.id = UCLASS_RNG,
>   	.ops = &optee_rng_ops,
>   	.probe = optee_rng_probe,



Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>

Thanks
Patrick



More information about the U-Boot mailing list