]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
driver: rng: Do not check ARM_SMCCC_TRNG_VERSION
authorLeo Yan <leo.yan@arm.com>
Tue, 9 Jul 2024 16:23:09 +0000 (17:23 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 18 Jul 2024 13:40:30 +0000 (07:40 -0600)
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.

Signed-off-by: Leo Yan <leo.yan@arm.com>
Reviewed-by: Weizhao Ouyang <o451686892@gmail.com>
drivers/rng/smccc_trng.c

index f59b80666b330a4ee182887dafb256f9b2feb962..1da1affd8e8d708f4c5a538618b661bfdb721505 100644 (file)
@@ -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;