]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
tee: optee: bind rng optee driver
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 29 Mar 2022 12:21:24 +0000 (14:21 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 11 Apr 2022 14:28:04 +0000 (10:28 -0400)
In U-Boot, the discovery of TA based on its UUID on the TEE bus is
not supported.

This patch only binds the driver associated to the new supported
OP-TEE TA = TA_HWRNG when this driver is enable.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
drivers/tee/optee/core.c

index dad46aa388a1346b3a1a8c3d5eab6b72a0887f3e..a89d62aaf0b3ba997a9575247eba1d43ea1b8866 100644 (file)
@@ -7,6 +7,7 @@
 #include <cpu_func.h>
 #include <dm.h>
 #include <dm/device_compat.h>
+#include <dm/lists.h>
 #include <log.h>
 #include <malloc.h>
 #include <tee.h>
@@ -641,6 +642,8 @@ static int optee_probe(struct udevice *dev)
 {
        struct optee_pdata *pdata = dev_get_plat(dev);
        u32 sec_caps;
+       struct udevice *child;
+       int ret;
 
        if (!is_optee_api(pdata->invoke_fn)) {
                dev_err(dev, "OP-TEE api uid mismatch\n");
@@ -665,6 +668,16 @@ static int optee_probe(struct udevice *dev)
                return -ENOENT;
        }
 
+       /*
+        * in U-Boot, the discovery of TA on the TEE bus is not supported:
+        * only bind the drivers associated to the supported OP-TEE TA
+        */
+       if (IS_ENABLED(CONFIG_RNG_OPTEE)) {
+               ret = device_bind_driver(dev, "optee-rng", "optee-rng", &child);
+               if (ret)
+                       return ret;
+       }
+
        return 0;
 }