Hi Sumit, On Thu, Jun 17, 2021 at 6:33 AM Sumit Garg <sumit.garg@xxxxxxxxxx> wrote: > > Hi Jens, > > On Wed, 16 Jun 2021 at 16:07, Jens Wiklander <jens.wiklander@xxxxxxxxxx> wrote: > > > > Hi all, > > > > This adds support for asynchronous notifications from OP-TEE in secure > > world to the OP-TEE driver. This allows a design with a top half and bottom > > half type of driver where the top half runs in secure interrupt context and > > a notifications tells normal world to schedule a yielding call to do the > > bottom half processing. > > > > An interrupt is used to notify the driver that there are asynchronous > > notifications pending. > > > > It looks like a nice feature. I would like to get hands on with this. > Can I test this feature on Qemu? Absolutely, you can get this into the normal OP-TEE development repo setup with: repo init -u https://github.com/OP-TEE/manifest.git -m default.xml repo sync Update optee_os with https://github.com/jenswi-linaro/optee_os/tree/async_notif_v2 Update linux with https://github.com/jenswi-linaro/linux-1/tree/async_notif_v2 cd build make all -j... make run-only If you type anything at the secure console you'll notice how it changes behaviour once the Linux kernel has booted. Cheers, Jens > > -Sumit > > > v2: > > * Added documentation > > * Converted optee bindings to json-schema and added interrupt property > > * Configure notification interrupt from DT instead of getting it > > from secure world, suggested by Ard Biesheuvel <ardb@xxxxxxxxxx>. > > > > Thanks, > > Jens > > > > Jens Wiklander (7): > > docs: staging/tee.rst: add a section on OP-TEE notifications > > dt-bindings: arm: Convert optee binding to json-schema > > dt-bindings: arm: optee: add interrupt property > > tee: fix put order in teedev_close_context() > > tee: add tee_dev_open_helper() primitive > > optee: separate notification functions > > optee: add asynchronous notifications > > > > .../bindings/arm/firmware/linaro,optee-tz.txt | 31 --- > > .../arm/firmware/linaro,optee-tz.yaml | 57 +++++ > > Documentation/staging/tee.rst | 27 +++ > > drivers/tee/optee/Makefile | 1 + > > drivers/tee/optee/call.c | 27 +++ > > drivers/tee/optee/core.c | 87 +++++-- > > drivers/tee/optee/notif.c | 226 ++++++++++++++++++ > > drivers/tee/optee/optee_msg.h | 9 + > > drivers/tee/optee/optee_private.h | 23 +- > > drivers/tee/optee/optee_rpc_cmd.h | 31 +-- > > drivers/tee/optee/optee_smc.h | 75 +++++- > > drivers/tee/optee/rpc.c | 73 +----- > > drivers/tee/tee_core.c | 37 ++- > > include/linux/tee_drv.h | 27 +++ > > 14 files changed, 576 insertions(+), 155 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/arm/firmware/linaro,optee-tz.txt > > create mode 100644 Documentation/devicetree/bindings/arm/firmware/linaro,optee-tz.yaml > > create mode 100644 drivers/tee/optee/notif.c > > > > -- > > 2.31.1 > >