NvDT Structure Changes#

Changes to the NvDT API#

NvDT API Changes

Backward Compatible

Platform

OS

Release 7.2.5.0 updates the NvDT API nvdt_get_reg_tupple_by_node to nvdt_get_reg_tuple_by_node to fix a typo and for clear naming.

No

NSR

SR

QNX only

Migration Path

  • Orin to Thor

Release Migration Path

6.x to 7.x

Migration Rationale

The change is for clear naming and consistency.

Steps to Migrate

Update NvDT API nvdt_get_reg_tupple_by_node to nvdt_get_reg_tuple_by_node.

nv_proc_thr_attr Thread-Attribute Extension#

Target Changes

Backward Compatible

Platform

OS

  • The nv_proc_thr_attr device-tree thread-attribute structure gained four new fields: thr_max_prio (int32_t, maximum thread priority), thr_pool_num (uint32_t; values greater than 1 indicate thread-pool size, 0 or 1 means not a thread pool), thr_cluster (char[MAX_THR_CLUSTER_LEN], cluster name), and thr_sched_policy (int32_t, scheduling policy). The struct size and layout have changed.

  • A new macro MAX_THR_CLUSTER_LEN (= 128U) was added to bound the length of the thr_cluster character array on nv_proc_thr_attr.

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 device-tree thread-attribute description was extended to capture maximum priority, scheduling policy, thread-pool sizing, and cluster placement. The new MAX_THR_CLUSTER_LEN macro sizes the new thr_cluster member.

Steps to Migrate

  1. Update any code that constructs nv_proc_thr_attr by designated initializer, memcpy, or that persists the struct, since the size and layout have changed. Compile-time signal of this break: size of nv_proc_thr_attr changed; missing initializer for new fields.

    Before:

    nv_proc_thr_attr attr = {
        .thr_name = "worker",
        .thr_prio = 50U,
        .thr_runmask = 0xFU,
    };
    

    After:

    nv_proc_thr_attr attr = {
        .thr_name = "worker",
        .thr_prio = 50U,
        .thr_max_prio = 50,
        .thr_runmask = 0xFU,
        .thr_pool_num = 0U,
        .thr_cluster = "default",
        .thr_sched_policy = SCHED_RR,
    };
    
  2. When sizing a buffer for the cluster name, use the new bound:

    char buf[MAX_THR_CLUSTER_LEN];