Suspend to Ram Mechanism#
The Tegra sequence:
When the vehicle engine is turned OFF, instead of doing a shutdown, Tegra is put in the suspend state. Optionally, before Tegra is put into suspend, KeyOFFIST can be executed.
Minimal power is consumed in SC7 state and requires a timeout after which you can shut down the system to save power.
The diagram below shows SC7 transitions and actions that need to be performed by DriveOS and customer applications to achieve SC7 functionality.
The App Pre-Init stage can be used for initialization and loading of libraries like CUDA and cuDNN before going into SC7 state. This can bring substantial optimizations to the resume time, as loading of these libraries running into Gigabytes of memory can consume a lot of time. Binarized DNN can also be loaded during preInit state from memory.
The App Post-Init stage is used for initialization and allocation of resources which were not done in the Pre-Init stage. This includes powering on IO peripherals like Camera sensors, serializers-deserializers etc. The Runtime phase is meant for active processing and streaming of data captured through the various sensors. In short pipeline creation is done in this stage.
The App Post-DeInit stage is meant for freeing up resources allocated during the App Post init stage. i.e Pipeline teardown needs to be done at this stage. The loaded cuDNN and CUDA libraries shouldn’t be released at this stage and these along with other resources should be freed during the App DeInit stage.
Since the Orin SoC is going to be in SC7 mode until the next vehicle key-on optionally hardware latent checks can be executed once in MPFDTI (every 8 hrs i.e., N=8 hours). More details are provided in the SMCU integration guide.
If the system continues to stay in SC7 for a period of M then the egra SOC can be powered off from SMCU.The value of M needs to be decided by the customer.