Customize Boot#

The System Manager, SysMgr, coordinates the ordering of state transition of each partition during a system state transition. The System Manager performs the following:

  • Coordinates a system boot between a Guest OS and ACK (early and lazy) servers.

  • Boots the Guest OS after a time delay as specified in the PCT configuration.

  • Broadcasts events (Boot, Shutdown, Reboot, Suspend, Resume) for a Guest OS to all the server Virtual Machines. The server Virtual Machines handle actions specific to the Guest OS.

  • Requests all Guest and server Virtual Machines to enter a Suspend-To-RAM state.

  • Executes a full system shutdown and a reboot.

Boot Between Guest OS and Servers#

Before initiating a boot, the System Manager waits for acknowledgment (ACK) from all early-ack and lazy-ack server Virtual Machines. Once the System Manager receives the ACK, it starts the boot process for the Guest OS. The field .lazy_boot_ack_flag in ${NV_WORKSPACE}/foundation/meta/pct/<board_and_rev>/<platform>/guest_config.h determines which servers are lazy-ack servers:

Note

Server Virtual Machines that are necessary to be booted up before scheduling the boot for a non-server VM are referred to as early-ack servers. Server Virtual Machines that are not needed to be booted up before booting up a non-server VM are called lazy ack servers. Servers Virtual Machines with lazy_boot_ack_flag set to 1 are lazy-ack servers, and server Virtual Machines with lazy_boot_ack_flag set to 0 are early-ack servers.

.sysmgr_cfg = { .lazy_boot_ack_flag = 1, }

A time delay can also be set prior to initiating the boot process by setting the .boot_delay configuration parameter in guest_config.h. The delay is the time (in milliseconds) since the system is powered ON.

.boot_delay = 0,

The Guest OS and the servers communicate over the Inter-VM Communication (IVC) channels.