Configuration Specification#

Configuration specifications are machine-readable YAML files that define metadata and validation rules for DRIVE OS configuration parameters. They describe data types, value constraints, ownership, customer configurability, and variant applicability for each parameter across all device-tree-based configuration planes (GOS, Server, BPMP, and BCT).

These specification files are consumed by the following tools:

  • Device Tree Visualizer Tool – Displays specification metadata (data types, allowed values, customer configurability, and SoC applicability) alongside the compiled device tree in the UI.

  • Device Tree Validation – Validates DTB property values and customer configurability against the constraints defined in these files.

  • DTSchema Backward Compatibility Checker – Compares a baseline and current version of these specification files and reports backward-incompatible schema changes that would invalidate existing customer device tree configurations.

What the Specification Provides#

Each configuration parameter has the following information captured in the specification:

Field

Source

Description

$ref

Upstream

Data type of the property (e.g., string-array, uint32).

enum / minimum / maximum

Upstream

Acceptable values: a list of allowed values or numeric bounds.

default

Upstream

Default value to use when none is explicitly set.

dtPath

EASE

Full path of the property in the device tree.

description

EASE

What the parameter controls and any effect on KPIs such as performance or memory.

sbsElement

EASE

The component or subsystem that owns the property (e.g., Audio, LinuxBSP).

customerConfigurable

EASE

Whether the property is DRIVE OS-internal (false) or can be modified by the customer (true).

pctVariant

EASE

Which PCT variants the property applies to. Encodes both the deployment stage and safety classification (see Identifying Safety-Relevant and Non-Safety-Relevant Parameters).

soc

EASE

Which SoCs the property applies to (e.g., t23x, t264).

socAgnostic

EASE

Whether the property value is the same across all supported SoCs (true) or varies per SoC (false).

dependencyInformation

EASE

References to other properties that this property depends on, or null if there are no dependencies.

Identifying Safety-Relevant and Non-Safety-Relevant Parameters#

Each specification records a pctVariant list that indicates which PCT variants the parameter applies to. The variant names encode both the deployment stage and the safety classification:

PCT Variant

Description

Safety Classification

prodSR

Production, Safety Relevant

Safety

devSR

Development, Safety Relevant

Safety

testSR

Test, Safety Relevant

Safety

prodNSR

Production, Non-Safety Relevant

Non-Safety

devNSR

Development, Non-Safety Relevant

Non-Safety

testNSR

Test, Non-Safety Relevant

Non-Safety

A parameter listed with only NSR variants (e.g., [prodNSR, devNSR]) is non-safety-relevant. A parameter that includes any SR variant is safety-relevant for those variant builds.

Use the pctVariant field to determine which parameters are applicable to your target variant and whether they carry safety requirements.

Specification File Format#

Specifications follow the YAML schema format used by the open-source Device Tree Schema project. Each component has two paired specification files: an upstream specification and an EASE metadata file.

Upstream Specification#

Upstream specification files define structural validation rules. They specify type constraints, allowed values, minimum and maximum bounds, and default values for each property.

The following is a trimmed example from Audio_upstream_compatible.yaml:

properties:
  bus@0:
    type: object
    properties:
      aconnect@9000000:
        type: object
        properties:
          compatible:
            $ref: /schemas/types.yaml#/definitions/string-array
            items:
              enum:
              - nvidia,tegra264-aconnect
              - nvidia,tegra210-aconnect
          status:
            $ref: /schemas/types.yaml#/definitions/string-array
            items:
              enum:
              - okay

Upstream specification files contain the following fields per property: $ref, enum, minimum, maximum, and default. See What the Specification Provides for field descriptions.

EASE Metadata#

EASE metadata files provide configuration management information for each property. They describe ownership, customer configurability, variant support, and SoC applicability.

The following is a trimmed example from Audio_ease_metadata.yaml:

properties:
  bus@0:
    type: object
    properties:
      aconnect@9000000:
        type: object
        properties:
          compatible:
            easeMetadata:
              dtPath: /bus@0/aconnect@9000000/compatible
              sbsElement: Audio
              description: Compatible string for aconnect node
              customerConfigurable: false
              pctVariant:
              - prodNSR
              - devNSR
              - testNSR
              soc:
              - t23x
              - t264
              dependencyInformation: null
              socAgnostic: true
          status:
            easeMetadata:
              dtPath: /bus@0/aconnect@9000000/status
              sbsElement: Audio
              description: Enabling audio node
              customerConfigurable: true
              pctVariant:
              - prodNSR
              - devNSR
              soc:
              - t23x
              - t264
              dependencyInformation: null
              socAgnostic: false

EASE metadata files contain the following fields per property: dtPath, sbsElement, description, customerConfigurable, pctVariant, soc, socAgnostic, and dependencyInformation. See What the Specification Provides for field descriptions.

Specification Locations#

Specification files are organized by configuration plane. Each directory contains paired upstream and EASE files per component (e.g., Audio_upstream_compatible.yaml and Audio_ease_metadata.yaml).

  • Linux kernel DTS: $SDK_TOP/drive-foundation/platform-config/hardware/nvidia/platform/<SOC>/automotive/automotive-platform-configs/driveos_internal_config/kernel-dts/linux/specifications/

  • QNX kernel DTS: $SDK_TOP/drive-foundation/platform-config/hardware/nvidia/platform/<SOC>/automotive/automotive-platform-configs/driveos_internal_config/kernel-dts/qnx/specifications/

  • Server: $SDK_TOP/drive-foundation/platform-config/hardware/nvidia/platform/<SOC>/automotive/automotive-platform-configs/driveos_internal_config/server/specifications/

  • BPMP: $SDK_TOP/drive-foundation/platform-config/hardware/nvidia/platform/<SOC>/automotive/automotive-platform-configs/driveos_internal_config/bpmp/specifications/

  • BCT: $SDK_TOP/drive-foundation/platform-config/hardware/nvidia/platform/<SOC>/automotive/automotive-platform-configs/driveos_internal_config/bct/specifications/

Note

In the above paths, <SOC> refers to the chip family, for example, t23x or t264.