Suspend to RAM / SC7

SC7 is an SOC power state where Tegra is in low power mode and DRAM is in self-refresh mode. SC7 is also known as Suspend to RAM mode. In SC7, all domains in Tegra SOC will be powered down except for the AON domain. AON domain will be powered on but in sleep mode.

Note:
  • This section only talks about Suspend to Ram / SC7, which is one of many Tegra SOC power states. It does not talk about the power states at the global platform level or at the device level . You are responsible for defining power states at the platform level.

  • The term Suspend to RAM and SC7 are used interchangeably in this documentation and mean the same thing.

Legal SoC Power States

The legal, non-transient, next states after SC7 are:

  1. normal boot

  2. Powered off

Exit from SC7 is triggered by wake sources:

  1. GPIO wake source

Why Suspend to RAM / SC7

A significant part of the system boot time is taken up in the initialization of the application, including loading of libraries and data (DNN and map files). Achieving the boot time target in cold-boot for all use-cases is difficult.

A way around this is to keep the DRAM pre-loaded and initialized before the system needs to be a fully functional state. Rather than keep the system powered off when not in use, it retains the system in SC7 state (which minimizes the power consumption while keeping the DRAM loaded and most of the software initialized).

With SC7, data is loaded and applications are initialized (example: DNN unpacking) before suspend that does not require external interaction. When it resumes, the application programs the external sensor and the rest of the application init. Since most of the initialization, which is IO and CPU intensive, happened before suspend, the visible time is only the resume time (and much less compared to cold boot) for the end user.

How it Works

The Tegra sequence:

  • When the vehicle engine is turned OFF, instead of doing a shutdown, Tegra is put in the suspend state.

    • In order to put the Tegra in suspend, you must first reboot the system and execute the KeyOFF IST, followed by another reboot where the application puts the system in the suspend state.
  • 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 DRIVE OS and customer applications to achieve SC7 functionality.

Limitations

  • Any PCIE controller configured as end-point needs to be unbound before SC7 entry.
  • Restart the nvsipl_camera application after SC7

  • Any jobs submitted to any engines must be completed before SC7 is started.

Entering and Exiting SC7

Prerequisite

Flash and boot P3710 as described in the documentation.

Unbind PCIE C6, which is configured as EP in Primary Config - miniSAS Port-B
echo 141c0000.pcie_ep > /sys/bus/platform/drivers/tegra194-pcie/unbind
Start SC7 suspend
  1. In the AURIX terminal execute:
    entersc7
  2. In the Tegra shell execute:
    echo 1 > /sys/class/tegra_hv_pm_ctl/tegra_hv_pm_ctl/device/trigger_sys_suspend

Exit from SC7

In the AURIX shell execute:
exitsc7