SDK Environment (For Structural Changes)#
This section covers SDK environment structural changes. DriveOS 7.0 presents a single source of truth by defining envfile at the top of the SDK install directory, which assists in understanding DriveOS variables used throughout the SDK.
The envfile is a text file for development, used for sourcing SDK environment variables.
Security Services SDK Structure Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
PKCS#11 Sample Application is intended for usage on Thor in 7.0.2. README describes how to set a Makefile flag to build for Orin if needed. Note From 7.2.3.0, PKCS#11 Sample Application supports both Orin and Thor without rebuild. |
Yes |
NSR, SR |
Linux and QNX |
Migration Path
Orin to Thor
Migration Rationale
Channel Id(s) differ between Thor and Orin. Support for NVIDIA channel extension APIs relies on supplying the correct Channel Id according to the SOC in use. The sample application is built for Thor to use the Channel Id(s)
Steps to Migrate
Refer to Sample Application README file for the following note:
This reference application is intended for customers using Thor. If you are using Orin, then please set the TEGRA_CHIPID_TEGRA23 flag in Makefile.tmk to use the correct channel IDs.
Multimedia SDK Structure Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
nvm_ide_sci app samples prior to the 7.0.1.0 release included logic to insert fences associated with reference frames to ensure ordered execution. Changes implemented in 7.0.3 invalidated the need to insert fences in this manner. We recommend removing the logic in existing applications (if implemented). |
Yes |
NSR, SR |
Linux and QNX |
Migration Path
Orin to Thor
Migration Rationale
There is no run time switching allowed in AV use cases. A single Nvdec instance is used throughout. There is no need to insert pre-fence for every reference frame.
Steps to Migrate
Remove the fences logic in existing applications (if implemented).
Refer to the nvm_ide_sci test application for additional information
NvDisplay Serializer SDK Structure Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
For the NvDisplay element, one of its sub-elements, serializer, has changed its source files, dts file, and migrated to a new driver architecture. |
No |
NSR, SR |
Linux |
Migration Path
Orin to Thor
Migration Rationale
Architecture display driver changes
Steps to Migrate
Refer to the SDK documentation for nvdisplay serdes.
For additional information, refer to the following section.
Additional Migration Information (for the previous table)
Source File Changes
Platform AV + L
The legacy display serializer driver source files are as follows:
maxim_gmsl_dp_serializer.c”, “maxim_gmsl_hdmi_serializer.c
ti_fpdlink_dp_serializer.c
The legacy display serializer driver device tree nodes are as follows:
Platform AV + Q
Only use legacy. The new nvdisp serdes driver is not yet available for AV + Q.
Device Tree Node Changes
The previous driver device tree nodes are migrated as follows:
The new opcode nvdisp serdes driver source file is nvdisp_serdes.c
The new opcode nvdisp serdes driver device tree node is as follows: nvdisp_serdes@i2caddress
Additional Information
Supported Hardware
The legacy driver has a version for each supported serializer. It has different drivers for hardware, such as MAXIM DP, MAXIM HDMI, and TI DP serializers.
The new opcode-based nvdisp serdes driver is common for all types of serializers.
Supported Features
For legacy driver, it is important to set fields in device tree, as per SDK documentation, for driver to program the hardware for feature enablement. For example, to enable MST, enable that property in device tree and then driver enables MST functionality during initialization.
The new nvdisp serdes driver does not provide such specific property exposure in device tree. It offers a change in “display-serdes-config” so that you can add OPCODE, and MSTfunctionality is enabled using i2c register writes.
Limitations:
The legacy driver only allows certain functionality to be configurable via device tree. For new functionality support, driver source code must be updated, which requires updates to the SDK documentation.
The new nvdisp serdes driver does not need its source code to be updated. If new functionality must be supported, it can occur by adding another OPCODE in “init-seq”.
SDK Documentation:
The legacy driver exposes the required features.
In new serdes drivers, users working with serializer hardware must be aware of the hardware data sheet and be able to update the OPCODE sequence; it contains details of the register address and values.
PDC SDK Structure Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
The Thor board config JSON files moved from hardware/nvidia/platform/t264/automotive/flashing/board_configs to a common automotive folder: /hardware/nvidia/platform/t264/automotive/automotive-platform-configs. These board configuration files were sorted based on their platform SKU information. |
No |
NSR, SR |
Linux and QNX |
Migration Path
Orin to Thor
Migration Rationale
The update simplifies cloning an existing board. All files are in a single location sorted by the platform SKU to identify what configuration files are required for the given platform.
Steps to Migrate
The files that were moved are NVIDIA-specific. Review them as reference for your own custom configurations.
Kernel Header Path Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
The kernel header include path changed from
|
No |
NSR |
Linux |
Migration Path
7.0 to 7.2
Migration Rationale
The kernel/common/nvidia directory is deprecated as a legacy
folder. The content is now available in kernel/common/nvidia-oot. This
change aligns with the migration to the out-of-tree (OOT) kernel
module architecture.
Steps to Migrate
Update Makefiles that reference the old kernel header path. Change
the include path in CPPFLAGS or similar build variables from:
-I$(NV_KERNDIR)/../common/nvidia/include/uapi
to:
-I$(NV_KERNDIR)/../common/nvidia-oot/include/uapi
For example, in samples/nvsci/nvscistream/perf_tests/Makefile:
Before Release 7.0:
CPPFLAGS = $(NV_PLATFORM_SDK_INC) $(NV_PLATFORM_CPPFLAGS) -I$(NV_KERNDIR)/../common/nvidia/include/uapi
After Release 7.2:
CPPFLAGS = $(NV_PLATFORM_SDK_INC) $(NV_PLATFORM_CPPFLAGS) -I$(NV_KERNDIR)/../common/nvidia-oot/include/uapi
Applications that fail to update this path will encounter compilation errors such as:
fatal error: linux/nvpps_ioctl.h: No such file or directory