Host1x Device Node

The Device Tree Node contains configuration parameters are required to initialize and provide the functionality of the NvHost element in the Guest VM.
host1x: host1x@13e00000 {
compatible = "nvidia,tegra234-host1x", "simple-bus"; reg = <0x0 0x13e40000 0x0 0x00010000>,
<0x0 0x13e10000 0x0 0x00010000>,
<0x0 0x13ef0000 0x0 0x00040000>,
<0x0 0x60000000 0x0 0x04000000>,
<0x0 0x13e00000 0x0 0x00010000>;
reg-names = "guest", "hypervisor", "actmon", "sem-syncpt-shim", "common";
interrupts = <0 448 0x04>,
<0 449 0x04>,
<0 450 0x04>,
<0 451 0x04>,
<0 452 0x04>,
<0 453 0x04>,
<0 454 0x04>,
<0 455 0x04>,
<0 263 0x04>;
nvidia,vmid = <1>;

nvidia,host1x-ctx-streamid = <&smmu_niso0 TEGRA_SID_NISO0_HOST1X_CTX0
&smmu_niso1 TEGRA_SID_NISO1_HOST1X_CTX0>;

nvidia,ch-base = <0>;
nvidia,nb-channels = <47>;

nvidia,nb-hw-pts = <1024>;
nvidia,pts-base = <0>;
nvidia,nb-pts = <576>;

nvidia,gpu-syncpt-pool = <0 128>;
nvidia,vi-syncpt-pool = <288 144>;
vmserver-owns-engines = <1>; ivc-queue0 = <&tegra_hv 42>;

iommus = <&smmu_niso1 TEGRA_SID_NISO1_HC>; status = "okay";

host1x_ctx0: niso0_ctx0 {
compatible = "nvidia,tegra186-iommu-context";
iommus = <&smmu_niso0 TEGRA_SID_NISO0_HOST1X_CTX0>; status = "okay";
};

host1x_ctx0n1: niso1_ctx0 {
compatible = "nvidia,tegra186-iommu-context";
iommus = <&smmu_niso1 TEGRA_SID_NISO1_HOST1X_CTX0>; status = "okay";
};

vic@15340000 {
compatible = "nvidia,tegra234-vic";
iommus = <&smmu_niso1 TEGRA_SID_NISO1_VIC>; status = "okay";
};

nvjpg@15380000 {
compatible = "nvidia,tegra234-nvjpg";
iommus = <&smmu_niso1 TEGRA_SID_NISO1_NVJPG>; status = "okay";
};

nvjpg1@15540000 {
compatible = "nvidia,tegra234-nvjpg";
iommus = <&smmu_niso0 TEGRA_SID_NISO0_NVJPG1>; status = "okay";
};

tsec@15500000 {
compatible = "nvidia,tegra234-tsec";
iommus = <&smmu_niso1 TEGRA_SID_NISO1_TSEC>; status = "okay";
};

nvdec@15480000 {
compatible = "nvidia,tegra234-nvdec";
iommus = <&smmu_niso1 TEGRA_SID_NISO1_NVDEC>; status = "okay";
};
nvenc@154c0000 {
compatible = "nvidia,tegra234-nvenc";
iommus = <&smmu_niso0 TEGRA_SID_NISO0_NVENC>; status = "okay";
};

ofa@15a50000 {
compatible = "nvidia,tegra234-ofa";
iommus = <&smmu_niso0 TEGRA_SID_NISO0_OFA>; status = "okay";
};
};

Properties

Following are properties used across different platform configurations.

Compatibility String "compatible"

Description Strings specifying the compatibility of the Host1x Device Node
Customizable No
Type String
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended “nvidia,tegra234-host1x-hv”

Virtual Machine Host1x ID "NVIDIA,vmid"

Description ID corresponding to the Host1x guest page allocated to the Guest VM
Customizable No
Type Unsigned integer
Unit NA
Optional No
Resolution 1
MaxValue 8
MinValue 1
Recommended Based on the platform configuration

Register Names "reg-names"

Description

List of Host1x MMIO register page names, which can be accessed by NvHost from the Guest VM
Customizable No
Type List<String>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

<AV+Q configuration>:

"guest", "sem-syncpt-shim";

<AV+L configuration>:

"guest", "hypervisor", "actmon", "sem-syncpt-shim", "common";

Register Apertures "reg"

Description

List of Host1x MMIO register page apertures allowed to be accessed by NvHost from the Guest VM. Type of page for each aperture is identified by the “reg-names” entry of the same index
Customizable No
Type List<Aperture start, Aperture Size>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Valuescfetched from the Host1x HW IAS

Interrupts "interrupts"

Description List of Host1x syncpoint interrupt lines assigned to the Guest VM
Customizable No
Type List<IRQ number>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

Values fetched from the Host1x HW IAS based on platform configuration.

Host1x Shared StreamID "nvidia,host1x-ctx-streamid"

Description

FallbackstreamId to access the data buffers in case context pools are not defined by the platform configuration
Customizable No
Type <SMMUinstance, StreamId>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on the platform configuration

Host1x Channel Pool Base "nvidia,ch-base"

Description

Base of the Host1x channel pool which can be accessed from the Guest VM via the NvHost
Customizable Yes
Type Unsigned integer
Unit NA
Optional No
Resolution NA
MaxValue 62
MinValue 0
Recommended Basedon the platform configuration

Host1x Channel Pool Count "nvidia,nb-channels"

Description

Size of the Host1x channel pool which can be accessed from the Guest VM via the NvHost
Customizable Yes
Type Unsigned integer
Unit NA
Optional No
Resolution NA
MaxValue 63
MinValue 0
Recommended Based on the platform configuration

Host1x Syncpoint Total Count "nvidia,nb-hw-pts"

Description Total number of Host1x HW syncpoints available in the SoC
Customizable No
Type Unsigned integer
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended 1024

Host1x Syncpoint Pool Base "nvidia,pts-base"

Description

Base of the Host1x syncpoints pool, which can be incremented from the Guest VM
Customizable Yes
Type Unsigned integer
Unit NA
Optional No
Resolution NA
MaxValue 1023
MinValue 0
Recommended Basedon platform configuration

Host1x Syncpoint Pool Count "nvidia,nb-pts"

Description

Size of the Host1x syncpoints pool, which can be incremented from the Guest VM
Customizable Yes
Type Unsignedinteger
Unit NA
Optional No
Resolution NA
MaxValue 1024
MinValue 0
Recommended Basedon platform configuration

Host1x Syncpoint Pool for GPU "nviida,gpu-syncpt-pool"

Description

Host1x syncpoint pool, which is write accessible from the GPU and allocated exclusively for GPU use cases. The pool is outside of the generic pool

Note:Only applicable for the AV+Q Safety configuration

Customizable Yes
Type <Poolbase, Pool size>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on platform configuration

Host1x Syncpoint Pool for VI "nviida,vi-syncpt-pool"

Description

Host1x syncpoints pool ,which is exclusively allocated for VI use cases. The pool is within the generic pool

Note:Only applicable to the AV+Q Safety configuration

Customizable Yes
Type <Poolbase, Pool size>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on platform configuration

Engine Ownership Flag "vmserver-owns-engines"

Description

Flag specifying whether the engine ownership belongs to NvHost Server

Note:Only applicable to AV+L configuration

Customizable No
Type Unsigned integer
Unit NA
Optional No
Resolution NA
MaxValue 1
MinValue 0
Recommended 1

IVC Queue Identifier "ivc-queue0"

Description

Unique identifier of the IVC Queue created to communicate with the NvHost Server
Customizable No
Type UnsignedInteger
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on the platform configuration

Host1x StreamId Info "iommus"

Description

Set of stream Id info, which is assigned for Host1x to perform DMA. StreamId used from the Guest VM is derived based on the VMID
Customizable No
Type List<SMMU instance, Stream Id>
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on platform configuration

Host1x Device Status Flag "status"

Description Flag specifying whether the Host1x device is enabled
Customizable Yes
Type String
Unit NA
Optional No
Resolution NA
MaxValue “disabled”
MinValue “okay”
Recommended “okay”

Host1x Context Node Entry "host1x_ctx"

Description

Device Tree Node specifying the properties of the Host1x contexts, which are allocated to the VM
Customizable Yes
Type Host1xContext Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA
Recommended Based on platform configuration

VIC Engine Node "vic"

Description

Device Tree Node specifying the properties of the VIC engine needed for NvHost Driver
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-vic";

iommus= <&smmu_niso1 TEGRA_SID_NISO1_VIC>; status = <Based on platform configuration>;

NVJPG Engine Node "nvjpg"

Description

Device Tree Node specifying the properties of the first instance of NVJPG engine needed for NvHost Driver
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-nvjpg";
iommus= <&smmu_niso1 TEGRA_SID_NISO1_NVJPG>; status = <Based on platform configuration>;

NVJPG1 Engine Node "nvjpg1"

Description

Device Tree Node specifying the properties of the second instance of NVJPG engine needed for NvHost Driver
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-nvjpg";
iommus= <&smmu_niso0 TEGRA_SID_NISO0_NVJPG1>; status = <Based on platform configuration>;

NVDEC Engine Node "nvdec"

Description

Device Tree Node specifying the properties of the NVDEC engine needed for NvHost Driver.
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-nvdec";
iommus= <&smmu_niso1 TEGRA_SID_NISO1_NVDEC>; status = <Based on platform configuration>;

NVENC Engine Node "nvenc"

Description

Device Tree Node specifying the properties of the NVENC engine needed for NvHost Driver.
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-nvenc";
iommus= <&smmu_niso0 TEGRA_SID_NISO0_NVENC>; status = <Based on platform configuration>

OFA Engine Node "ofa"

Description

DeviceTree Node specifying the properties of the OFA engine needed for NvHost Driver.
Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-ofa";
iommus= <&smmu_niso0 TEGRA_SID_NISO0_OFA>; status = <Based on platform configuration>;

TSEC Engine Node "tsec"

Description

Device Tree Node specifying the properties of the TSEC engine needed for NvHost Driver.

Note:Only applicable for AV+L configuration

Customizable Yes
Type Host1xEngine Node
Unit NA
Optional No
Resolution NA
MaxValue NA
MinValue NA

Recommended

compatible = "nvidia,tegra234-tsec";
iommus= <&smmu_niso1 TEGRA_SID_NISO1_TSEC>; status = <Based on platform configuration>;