Messages in this thread |  | | Date | Mon, 26 Jul 2021 11:54:00 +0100 | From | Sudeep Holla <> | Subject | Re: [PATCH v3 0/5] Add FF-A support in OP-TEE driver |
| |
On Mon, Jul 26, 2021 at 03:59:36PM +0530, Sumit Garg wrote: > Hi Jens, > > On Thu, 22 Jul 2021 at 17:48, Jens Wiklander <jens.wiklander@linaro.org> wrote: > > > > Hi all, > > > > This adds supports for the OP-TEE driver to communicate with secure world > > using FF-A [1] as transport. > > > > There is one change to the TEE subsystem with "tee: add sec_world_id to > > struct tee_shm" to add support for holding globally unique handle assigned > > by the FF-A. This is a field that I believe could useful for the AMDTEE > > driver too. > > > > For communication the OP-TEE message protocol is still used, but with a new > > type of memory reference, struct optee_msg_param_fmem, to carry the > > information needed by FF-A. The OP-TEE driver is refactored internally with > > to sets of callbacks, one for the old SMC based communication and another > > set with FF-A as transport. The functions relating to the SMC based ABI > > are moved to smc_abi.c while the FF-A based ABI is added in a ffa_abi.c. > > > > There is also a difference in how the drivers are instantiated. With the > > SMC based transport we have a platform driver, module_platform_driver(), > > today which we're keeping as is for this configuration. In a FF-A system we > > have a FF-A driver, module_ffa_driver(), instead. > > > > The OP-TEE driver can be compiled for both targets at the same time and > > it's up to runtime configuration (device tree or ACPI) to decide how it's > > initialized. Note that it's only the old SMC based driver instance that > > need device tree or ACPI to initialize. The FF-A based driver relies on the > > FF-A bus instead. > > > > This can be tested QEMU > > The repo for SPMC at S-EL1 retrieved by > > repo init -u https://github.com/jenswi-linaro/manifest.git -m > > qemu_v8.xml -b ffav4_spmc > > repo sync > > # Then checkout the branch optee_ffa_v3 from > > # git://git.linaro.org/people/jens.wiklander/linux-tee.git > > # in the linux directory > > > > To build do: > > cd build > > make toolchains > > make all > > > > To boot: > > make run-only > > > > Test with xtest, perhaps only with the command "xtest 1004" in case you're > > not interested in too many tests. > > Thanks Jens for sharing instructions to test this feature. So I tried > to reproduce using following repo versions: > > linux-tee, branch: optee_ffa_v3 > trusted-firmware-a, branch: ffav4_sel1_spmc > build, branch: ffav4_spmc > > and rest of the repos synced to the latest version as per upstream > qemu_v8.xml [1] but I don't see OP-TEE driver being probed during boot > [2]. Am I missing something? > > [1] https://github.com/OP-TEE/manifest/blob/master/qemu_v8.xml > [2] > Welcome to Buildroot, type root or test to login > buildroot login: root > # dmesg | grep optee >
Do you see ARM FF-A driver initialised successfully ? You must see "ARM FF-A Version 1.0 found" or something similar based on the actual version supported.
If so, can you check if the partitions are correctly populated by the driver using the discover API.
$ grep "" /sys/bus/arm_ffa/devices/*/uuid
If uuid reads zeros, then the devices are populated, just the matching driver is not found(due to the workaround for v1.0 spec)
-- Regards, Sudeep
|  |