Software Component Delivered#

  1. PM Server

    • PM Server - HVRTOS based server used for power management. It is delivered as part of the DriveOS release.

      1. Binary: pm_server_native

      2. Ownership: NVIDIA

    • PM server Lib - Library used for interacting with the PM server. It is available for both QNX and Linux guest VM as part of DriveOS release.

      1. Binary: libnvpwrmgmt.so

      2. Ownership: NVIDIA

  2. LCM Sample

    • LCM Server - Sample implementation of LCM server is delivered as part of DriveOS release. Final implementation and certification are DriveOS user responsibilities.

      1. Binary: nvlcm_server

      2. Ownership: DriveOS User

    • LCM Client - Sample implementation of LCM client is delivered as part of DriveOS release. Final implementation and certification are DriveOS user responsibilities.

      1. Binary: nvlcm_client_service

      2. Ownership: DriveOS User

    • LCM Client Lib : Sample implementation of LCM client library delivered as part of DriveOS release, which can be used by the DriveOS user application to register with LCM client service. Final implementation and certification are DriveOS user responsibilities.

      1. Binary: libnvlcm_client.so

      2. Ownership: DriveOS User

  3. NvDVMS

    • NvDVMS Server - NvDVMS server used for VM state management. It is delivered as part of the DriveOS release.

      1. Binary: io-nvdvms (QNX), nvdvms_server (Linux)

      2. Ownership: NVIDIA

    • NvDVMS Client Lib - NvDVMS client library used to interact with NvDVMS server in guest VM. It is delivered as part of the DriveOS release.

      1. Binary: libnvdvms_client.so

      2. Ownership: NVIDIA

Sample Test Application#

lcm_sample - Use this app to test power state transitions like system shutdown, system suspend, and SOC_OP transition from Tegra shell.

  • Command for system shutdown on Tegra shell:

    lcm_sample sys_shutdown
    
  • Command for system suspend on Tegra shell:

    lcm_sample sys_suspend
    

    Note: Command for system resume on MCU shell is exitsc7.

  • Command for SOC_OP transition on Tegra shell:

    lcm_sample SOC_OP_x
    

    x can be a number from 0 to 255 as per device tree config.

  • Command for both Tegra and MCU power off and power on from Tegra shell:

    lcm_sample sys_reboot
    
  • Command for only Tegra reset from Tegra shell:

    lcm_sample sys_reboot 1
    
  • Command for both Tegra and MCU reset from Tegra shell:

    lcm_sample sys_reboot 2
    

test_lcm_client - Use this app to test functional state transitions of a VM like operational, deinit-prepare, reinit etc from Tegra shell.

  • Command for help menu of test app Tegra shell:

    test_lcm_client -h
    
  • Command for reading VM functional state Tegra shell:

    test_lcm_client -rd
    
  • Command for transitioning VM to operational functional state Tegra shell:

    test_lcm_client -o
    
  • Command for transitioning VM to deinit prepare functional state Tegra shell:

    test_lcm_client -dp
    
  • Command for transitioning VM to reinit functional state Tegra shell:

    test_lcm_client -ri
    

Additional Information to Note#

NVDVMS State Restrictions

If the VM has not yet reached the INIT_DONE state (for example, it is still in the INIT state), only DEINIT_PREPARE and SHUTDOWN transitions are allowed, and no other state transitions are permitted in this condition.

LCM sample behavior on SOC_OP Requests

System-level state requests/SOC_OP (such as SUSPEND or SHUTDOWN) always take priority over the current VM state. Even if the VM is not in the expected state, the LCM client automatically moves the VM through the required states to safely handle the system request. For example, if the VM is in OPERATIONAL or DEINIT_PREPARE and a SUSPEND command is issued, the VM will first move to INIT_DONE and then transition to SUSPEND.

After RESUME, If the VM was previously in OPERATIONAL, the LCM client attempts to return the VM into OPERATIONAL and resume normal operations. For all other cases, the VM will be in the INIT_DONE state.

LCM Client Handling of VM State Transitions

When an application requests a VM state change, the LCM client automatically handles all required intermediate transitions to reach the desired state.

For example, if the VM is in OPERATIONAL and a REINIT command is issued, then the VM will first move to DEINIT_PREPARE and then transition into REINIT.