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 |
|---|---|---|
|
Upstream |
Data type of the property (e.g., |
|
Upstream |
Acceptable values: a list of allowed values or numeric bounds. |
|
Upstream |
Default value to use when none is explicitly set. |
|
EASE |
Full path of the property in the device tree. |
|
EASE |
What the parameter controls and any effect on KPIs such as performance or memory. |
|
EASE |
The component or subsystem that owns the property (e.g., Audio, LinuxBSP). |
|
EASE |
Whether the property is DRIVE OS-internal ( |
|
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). |
|
EASE |
Which SoCs the property applies to (e.g., |
|
EASE |
Whether the property value is the same across all supported SoCs
( |
|
EASE |
References to other properties that this property depends on, or
|
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 |
|---|---|---|
|
Production, Safety Relevant |
Safety |
|
Development, Safety Relevant |
Safety |
|
Test, Safety Relevant |
Safety |
|
Production, Non-Safety Relevant |
Non-Safety |
|
Development, Non-Safety Relevant |
Non-Safety |
|
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.