Software Component Delivered#
PM Server
PM Server - HVRTOS based server used for power management. It is delivered as part of the DriveOS release.
Binary: pm_server_native
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.
Binary: libnvpwrmgmt.so
Ownership: NVIDIA
LCM Sample
LCM Server - Sample implementation of LCM server is delivered as part of DriveOS release. Final implementation and certification are DriveOS user responsibilities.
Binary: nvlcm_server
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.
Binary: nvlcm_client_service
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.
Binary: libnvlcm_client.so
Ownership: DriveOS User
NvDVMS
NvDVMS Server - NvDVMS server used for VM state management. It is delivered as part of the DriveOS release.
Binary: io-nvdvms (QNX), nvdvms_server (Linux)
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.
Binary: libnvdvms_client.so
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_shutdownCommand for system suspend on Tegra shell:
lcm_sample sys_suspendNote: Command for system resume on MCU shell is exitsc7.
Command for SOC_OP transition on Tegra shell:
lcm_sample SOC_OP_xx 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_rebootCommand for only Tegra reset from Tegra shell:
lcm_sample sys_reboot 1Command 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 -hCommand for reading VM functional state Tegra shell:
test_lcm_client -rdCommand for transitioning VM to operational functional state Tegra shell:
test_lcm_client -oCommand for transitioning VM to deinit prepare functional state Tegra shell:
test_lcm_client -dpCommand 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.