tree: 83603e92202055286b886aa04f64f5183d17220e [path history] [tgz]
  1. arch/
  2. sysdeps/
  3. avb.c
  4. ipc.c
  5. ipc_dev.c
  6. keymaster.c
  7. keymaster_serializable.c
  8. libtipc.c
  9. LICENSE
  10. Makefile
  11. README.md
  12. rpmb_proxy.c
  13. util.c
lib/trusty/ql-tipc/README.md

Queueless Trusty IPC

ql-tipc is a portable client library that implements Trusty queueless IPC. It is intended to enable Trusty IPC in bootloader environments.

Code organization

IPC components

  • libtipc - Functions to be called by library user
  • ipc - IPC library
  • ipc_dev - Helper functions for sending requests to the secure OS
  • rpmb_proxy - Handles RPMB requests from secure storage service
  • avb - Sends requests to the Android Verified Boot service

Misc

  • examples/ - Implementations of bootloader-specific code.
  • arch/$ARCH/ - Architecture dependent implementation of Trusty device (see trusty_dev.h). Implements SMCs on ARM for example.

Portability Notes

The suggested approach to porting ql-tipc is to copy all header and C files into the bootloader and integrate as needed. RPMB storage operations and functions defined in trusty/sysdeps.h require system dependent implementations.

If the TIPC_ENABLE_DEBUG preprocessor symbol is set, the code will include debug information and run-time checks. Production builds should not use this.