NvSys Structure Changes#
API Prototype Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
In 7.2.3.0, the API prototype for reading ECID |
No |
NSR SR |
QNX only |
Migration Path
Orin to Thor
Migration Release Path
6.x to 7.2
Migration Rationale
The Orin and Thor SOC use a 512-bit ECID for improved security. NvTegraSysGetFuseHashedECID() is updated to return the full 512-bit ECID instead of a truncated 128-bit value.
Steps to Migrate
Usage of the API prototype for reading ECID is described in “System ECID Information” in the NVIDIA DriveOS Developer Guide.
Fuse Accessor API Restructuring#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
|
No. Source changes are required. |
SR |
QNX |
Migration Path
Orin to Thor
Migration Release Path
6.5.4.2 to 7.2.5.0
Migration Rationale
ODM / hashed-ECID fuses now have dedicated typed accessors in the
cross-platform nvsocsysapi.h instead of being read through the generic
NvTegraSysGetFuseOPT_info enum, and the four-NvU32 ECID API is
replaced by a single 512-bit struct that matches the silicon’s actual ECID
width. The OPT enum was simultaneously expanded with new disable bits for
T26x IP-blocks.
Steps to Migrate
Replace any call to
NvTegraSysGetFuseOPT_infothat usedTEGRA_FUSE_OPT_ODMID0/TEGRA_FUSE_OPT_ODMID1/TEGRA_FUSE_OPT_ODM_INFOorTEGRA_FUSE_OPT_ECID_0..3with the new typed accessors. Compile-time signal of this break:'TEGRA_FUSE_OPT_ODMID0' undeclared.// before NvU32 odmid0 = 0U; (void)NvTegraSysGetFuseOPT_info(TEGRA_FUSE_OPT_ODMID0, &odmid0); NvU32 ecid0 = 0U; (void)NvTegraSysGetFuseOPT_info(TEGRA_FUSE_OPT_ECID_0, &ecid0);
// after NvU32 odmid0 = 0U, odmid1 = 0U, odminfo = 0U; (void)NvTegraSysGetFuseODMData(&odmid0, &odmid1, &odminfo); NvSysTegraECID ecid; (void)NvTegraSysGetFuseHashedECID(&ecid);
Update any call to the QNX-only four-NvU32 hashed-ECID API to the new single-struct form declared in
nvsocsysapi.h. Compile-time signal of this break:too many arguments to function 'NvTegraSysGetFuseHashedECID'.// before (QNX-only, four NvU32 pointers) NvU32 e0, e1, e2, e3; (void)NvTegraSysGetFuseHashedECID(&e0, &e1, &e2, &e3);
// after (cross-platform, single 512-bit struct) NvSysTegraECID ecid; (void)NvTegraSysGetFuseHashedECID(&ecid);
If your application enumerates
NvSocFuseOPTInfovalues, audit the switch / lookup-table for the removed ODMID / ODM_INFO / ECID_0..3 entries and add handling for the new*_DISABLEentries you care about.
Chip ID and Revision Enum Updates#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
|
No. Persisted data / wire values may differ. |
SR |
QNX |
Migration Path
Orin to Thor
Migration Release Path
6.5.4.2 to 7.2.5.0
Migration Rationale
Drop the build-time gating around the T26x chip-id and add the previously-undeclared T25x chip-id; re-spread the chip revision codes to align with the silicon revision-table updates and to free up integer slots for new sub-revisions.
Steps to Migrate
Remove any
#ifdef NV_BUILD_CONFIGURATION_EXPOSING_T26Xguards around references toTEGRA_CHIPID_TEGRA26; add handling forTEGRA_CHIPID_TEGRA25where appropriate.// before #if NV_BUILD_CONFIGURATION_EXPOSING_T26X case TEGRA_CHIPID_TEGRA26: ... #endif
// after case TEGRA_CHIPID_TEGRA25: ... case TEGRA_CHIPID_TEGRA26: ...
Replace lower-case-suffixed
NvSocRevisionnames with the upper-case form. Compile-time signal of this break:'TEGRA_REVISION_A01p' undeclared.// before if (rev == TEGRA_REVISION_A01p) { ... } if ((uint32_t)rev == 0x96U) { /* SIM */ }
// after if (rev == TEGRA_REVISION_A01P) { ... } if (rev == TEGRA_REVISION_SIM) { /* SIM, now 0xFF */ }
Audit any code that compares
NvSocRevisionagainst hard-coded integer values (rev == 0x55,rev == 0x96, etc.) and switch to the symbolic names. Several values were renumbered, so an integer comparison that used to match one revision may now silently match a different one.
L3 Cache Information API Removal#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
The |
No. Source changes are required. |
SR |
QNX |
Migration Path
Orin to Thor
Migration Release Path
6.5.4.2 to 7.2.5.0
Migration Rationale
The L3-cache info accessor is no longer part of the public cross-platform API surface.
Steps to Migrate
Remove any call to
NvTegraSysGetL3cacheInfo. There is no public replacement; consult internal L3-cache facilities outside the public SDK headers if the data is still required. Compile-time signal of this break:implicit declaration of function 'NvTegraSysGetL3cacheInfo'.// before struct tegra_l3_ioctl_data l3; (void)NvTegraSysGetL3cacheInfo(&l3);
// after // no replacement; remove the call (or use a non-public l3-cache path // outside the public SDK headers).