blob: 0a098b2c44d9da4f1bc1b4469b040b27f835fa03 [file] [log] [blame] [view] [edit]
<!--
Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
SPDX-License-Identifier: CC-BY-SA-4.0
-->
# BPMPServer
This is a CAmkES component that is intended to abstract over the TX2's Boot and
Power Management Processor (BPMP) co-processor and multiplex client access to
it.
## Dependencies
This component needs to be used with the `single-threaded` module that performs
the initialisation process, and client request routing the component relies on.
## Usage
For clients to use the functionality exposed by the component, the clients will
have to connect to the CAmkES interface that the following CPP defintion
exposes.
```c
BPMPServer_server_interfaces(the_bpmp)
```
The definition exposes a `BPMP` RPC interface that is expected to be connected
via the `seL4RPCNoThreads` connector. However, there is a helper macro which
simplifies this process and also registers a BPMP interface on the client's
interface registration service (`ps_interface_ops_t`).
```c
BPMPServer_client_connections(client_name, client, server_name, server)
```
## Supported platforms
The component only supports the TX2 platform as the device is exclusive to the TX2.
## Limitations
There are currently no limitations with this component.