57 lines
1.9 KiB
Plaintext
57 lines
1.9 KiB
Plaintext
|
NVIDIA Tegra IVC channel bindings
|
||
|
|
||
|
Each IVC channel represents the unique communication protocol defined
|
||
|
between kernel running on CCPLEX CPUs and remote CPU core. Each IVC
|
||
|
channel has two memory buffers, one for each direction. The RX buffer
|
||
|
is for messages sent by the remote CPU, the TX channel for
|
||
|
messages sent to the remote CPU.
|
||
|
|
||
|
Both IPC memory buffers are have two headers followed by data
|
||
|
frames. The first write header is updated only by the producer and the
|
||
|
second read header is updated only by the consumer. The header and
|
||
|
frame sizes are multiples of 64-byte cache lines.
|
||
|
|
||
|
== IVC channel top-level node ==
|
||
|
|
||
|
List of IVC channels implemented by remote core to talk to CCPLEX.
|
||
|
The top-level node defines the AST region shared by IVC channels below
|
||
|
it.
|
||
|
|
||
|
Required properties:
|
||
|
- #address-cells: Number of address cells in each subnode.
|
||
|
Must be set to <1>.
|
||
|
- #size-cells: Number of size cells in each subnode.
|
||
|
Must be set to <0>.
|
||
|
|
||
|
== IVC channel sub nodes ==
|
||
|
|
||
|
Each IVC channel implemented by the remote CPU must be represented as
|
||
|
a separate child node within the top-level node.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible: Should represent the protocol to be used on this IVC channel.
|
||
|
See other binding documents in this directory for potential values.
|
||
|
For example:
|
||
|
"nvidia,tegra186-ivc-protocol-echo" for ivc echo test channel.
|
||
|
- reg: Address of the rx and tx buffers, respectively, inside the IVC region.
|
||
|
Must be a multiple of 64.
|
||
|
- nvidia,frame-size: Size of the data frame. Must be a multiple of 64.
|
||
|
- nvidia,frame-count: Number of frames in rx or tx buffers.
|
||
|
|
||
|
Optional properties:
|
||
|
- reg-names: Names of the rx and tx buffers, respectively.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
ivc-channels {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
echo@0 {
|
||
|
compatible = "nvidia,tegra186-ivc-protocol-echo";
|
||
|
reg = <0x0000>, <0x0480>;
|
||
|
reg-names = "rx-echo", "tx-echo";
|
||
|
nvidia,frame-size = <64>;
|
||
|
nvidia,frame-count = <16>;
|
||
|
};
|
||
|
}
|