tegrakernel/kernel/kernel-4.9/Documentation/devicetree/bindings/tegra_hv/tegra_hv.txt

79 lines
1.6 KiB
Plaintext
Raw Normal View History

2022-02-16 09:13:02 -06:00
* Tegra Hypervisor manager (tegra_hv)
Required properties:
- compatible: Should be "nvidia,tegra-hv".
Optional properties:
- server-to-peers: Array of guest IDs of the peers this guest is server to.
Note that if you use loopbacks at least your guest ID should be included.
Required sub-node:
- queues: configuration about this guest
Required properties:
- #address-cells: Should be <1>
- #size-cells: Should be <0>
Any other sub-nodes contain each ivc channel configuration; Properties
required are:
- reg: ID of the channel (single cell address)
- peers: Tupple of guest IDs this channel pertains to. If none of them is
the running guest's ID, then the ivc channel entry is ignored.
- nframes: Number of queue entries
- frame-size: Size of each frame in bytes. Note that it's good practice to
keep this aligned to 16.
Example:
tegra_hv: hyp {
compatible = "nvidia,tegra-hv";
status = "okay";
server-to-peers = <0 1>;
queues {
#address-cells = <1>;
#size-cells = <0>;
/* guest 0 <-> guest 1 (frame based) */
ivc0 {
reg = <0>;
peers = <0 1>;
nframes = <2>;
frame-size = <50>;
};
/* guest 0 <-> guest 1 (comm) */
ivc1 {
reg = <1>;
peers = <0 1>;
nframes = <4>;
frame-size = <16>;
};
/* guest 0 <-> guest 1 (net) */
ivc2 {
reg = <2>;
peers = <0 1>;
nframes = <32>;
frame-size = <1536>;
};
/* guest 0 <-> guest 0 (loop) */
ivc5 {
reg = <5>;
peers = <0 0>;
nframes = <4>;
frame-size = <16>;
};
/* guest 0 <-> guest 0 (loop) */
ivc6 {
reg = <6>;
peers = <0 0>;
nframes = <4>;
frame-size = <16>;
};
};
};