Host1x Device Node#

The Device Tree Node contains configuration parameters required to initialize and provide the functionality of the NvHost element in the Guest OS.

host1x@8181200000 {
            compatible = "nvidia,tegra264-host1x";
            reg = <0x81 0x81240000 0x0 0x10000>, /* Guest 0 */
                  <0x81 0x81320000 0x0 0x20000>; /* Actmon */
            reg-names = "vm", "actmon";

            interrupts = <GIC_SPI 0x147 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x148 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x149 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x14a IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x14b IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x14c IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x14d IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x14e IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 0x145 IRQ_TYPE_LEVEL_HIGH>;

interrupt-names = "syncpt0", "syncpt1", "syncpt2", "syncpt3", "syncpt4",
                  "syncpt5", "syncpt6", "syncpt7", "host1x";

            nvidia,channels = <0 29>;
            nvidia,syncpoints = <0 576>;

            nvidia,syncpoint-pools = <0x00 0x101>;
            nvidia,syncpoint-pool-names = "gpu";

            nvidia,server-ivc = <&tegra_hv 42>;

            iommus = <&smmu1_mmu (TEGRA_SID_HOST1X + 1)>;
            iommu-map = <0x0 &smmu1_mmu (TEGRA_SID_VIC + 0x1) 0x1>,
                    <0x1 &smmu1_mmu (TEGRA_SID_VIC + 0x2) 0x1>,
                    <0x2 &smmu1_mmu (TEGRA_SID_VIC + 0x3) 0x1>,
                    <0x3 &smmu1_mmu (TEGRA_SID_VIC + 0x4) 0x1>,
                    <0x4 &smmu1_mmu (TEGRA_SID_VIC + 0x5) 0x1>,
                    <0x5 &smmu1_mmu (TEGRA_SID_VIC + 0x6) 0x1>,
                    <0x6 &smmu1_mmu (TEGRA_SID_VIC + 0x7) 0x1>,
                    <0x7 &smmu1_mmu (TEGRA_SID_VIC + 0x8) 0x1>;

            status = "okay";

            vic@8188050000 {
                compatible = "nvidia,tegra264-host1x-virtual-engine";
                status = "okay";
iommus = <&smmu1_mmu TEGRA_SID_VIC>;

                nvidia,class = <0x5D>;
                nvidia,module-id = <2>;

            };
  }

Properties#

Following are properties used across different platform configurations.

Compatibility String “compatible”

Description

Strings specifying compatibility of the Host1x Device Node

Customizable

No

Type

String

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

“nvidia,tegra264-host1x”

Register Names “reg-names”

Description

List of Host1x MMIO register page names, which can be accessed by NvHost from the Guest OS

Customizable

No

Type

List

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

< AV+L configuration>:

“vm”, “actmon”,

Register Apertures “reg”

Description

List of Host1x MMIO register page apertures allowed to be accessed by NvHost from the Guest OS. 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

Values fetched from the Host1x hardware IAS

Interrupts “interrupts”

Description

List of Host1x syncpoint interrupt lines assigned to the Guest OS

Customizable

No

Type

List

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

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

Interrupts “interrupt-names”

Description

List of Host1x syncpoint interrupt lines Names assigned to the Guest OS

Customizable

No

Type

List

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

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

Host1x Channel Pool “nvidia,channels”

Description

Base and Size of the Host1x channel pool which can be accessed from the Guest OS via the NvHost

Customizable

Yes

Type

<Poolbase, Pool size>

Unit

NA

Optional

No

Resolution

NA

MaxValue (base,size)

62,63

MinValue

(base, size)

0,0

Recommended

Based on the platform configuration

Host1x Syncpoints “nvidia,syncpoints”

Description

Base and size of the Host1x total syncpoints, which can be incremented from the Guest OS

Customizable

Yes

Type

<Poolbase, Pool size>

Unit

NA

Optional

No

Resolution

NA

MaxValue

(base, size)

1023,1024

MinValue

(base,size)

0,0

Recommended

Based on platform configuration

Host1x Syncpoint Pools “****nvidia,syncpoint-pools**”**

Description

Base and size of the Host1x syncpoints pools, which can be incremented from the Guest OS

Customizable

Yes

Type

<Poolbase, Pool size>

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

Based on platform configuration

Host1x Syncpoint Pool Names “nvidia,syncpoint-pool-names”

Description

Name of the isolated pools available. Values we can get from the above field (syncpoint-pools) identified by the “syncpoint-pool-names” entry of the same index.

Customizable

Yes

Type

List

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

Based On platform configuration

Ex: “gpu”

IVC Queue Identifier “nvidia,server-ivc”

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

Per VM stream Id info, which is assigned for Host1x to perform DMA.

Customizable

No

Type

<SMMU instance, Stream Id>

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

Based on platform configuration

Example:

<&smmu1_mmu (TEGRA_SID_HOST1X + 1)

Host1x Context Node Entry “iommu-map”

Description

List of the Host1x contexts, which are allocated to the VM. These are used for job submission.

Customizable

Yes

Type

List<SMMUinstance, Stream Id>

Unit

NA

Optional

No

Resolution

NA

MaxValue

NA

MinValue

NA

Recommended

Based on platform configuration.

SMMU1 instance is used In Thor NSR for VIC engine

Example: <0x0 &smmu1_mmu (TEGRA_SID_VIC + 0x1) 0x1>

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”

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,tegra264-host1x-virtual-engine";
iommus= <&smmu1_mmu TEGRA_SID_VIC>;
status = <Based on platform configuration>;