[PATCH] driver: rng: Do not check ARM_SMCCC_TRNG_VERSION

Weizhao Ouyang o451686892 at gmail.com
Thu Jul 11 05:33:45 CEST 2024


On Wed, Jul 10, 2024 at 12:23 AM Leo Yan <leo.yan at arm.com> wrote:
>
> As described in the document SMC Calling Convention (ARM DEN 0028 1.5 F),
> section 7 "Arm Architecture Calls", the SMC call SMCCC_ARCH_FEATURES is
> not expected to support the function ID ARM_SMCCC_TRNG_VERSION. Trusted
> Firmware-A follows up the specification in its implementation.
>
> This commit removes the invocation to avoid the failure - which is a
> wrong calling in U-boot. The later code invokes ARM_SMCCC_TRNG_VERSION
> for retrieving the TRNG version, except it can read back the version
> number, it also can be used to detect whether the TRNG is supported or
> not.

LGTM.
Reviewed-by: Weizhao Ouyang <o451686892 at gmail.com>

BR,
Weizhao

>
> Signed-off-by: Leo Yan <leo.yan at arm.com>
> ---
>  drivers/rng/smccc_trng.c | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/drivers/rng/smccc_trng.c b/drivers/rng/smccc_trng.c
> index f59b80666b..1da1affd8e 100644
> --- a/drivers/rng/smccc_trng.c
> +++ b/drivers/rng/smccc_trng.c
> @@ -135,10 +135,6 @@ static bool smccc_trng_is_supported(void (*invoke_fn)(unsigned long a0, unsigned
>  {
>         struct arm_smccc_res res;
>
> -       (*invoke_fn)(ARM_SMCCC_ARCH_FEATURES, ARM_SMCCC_TRNG_VERSION, 0, 0, 0, 0, 0, 0, &res);
> -       if (res.a0 == ARM_SMCCC_RET_NOT_SUPPORTED)
> -               return false;
> -
>         (*invoke_fn)(ARM_SMCCC_TRNG_VERSION, 0, 0, 0, 0, 0, 0, 0, &res);
>         if (res.a0 & BIT(31))
>                 return false;
> --
> 2.34.1
>


More information about the U-Boot mailing list