summaryrefslogtreecommitdiff
path: root/lib/trusty/ql-tipc/README.md
blob: 76e378175619ed1b23ee197efc6cff14335d8947 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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.