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.