Adding a New INTER_VM Channel#
The INTER_VM channel relies on Hypervisor to set up the shared area details between two (2) Virtual Machines. At present, it is done via IVC queues that are described in the PCT. For any new INTER_VM channel:
Add a new IVC queue between two (2) Virtual Machines to the PCT file (
platform_config.h
) of the corresponding platform. The VM partition IDs are defined in theserver-partitions.mk
makefile. Theframe_size
value is in multiples of 64 bytes. The maximum IVC queue entries are 512 (the value imposed by the NVIDIA DriveOS Hypervisor kernel). The location of the configuration file and makefile are as follows:
drive-foundation/platform-config/hardware/nvidia/platform/t23x/automotive/pct/drive_av/platform_config.h
drive-foundation/virtualization/pct/make/t23x/server-partitions.mk
If the INTER_VM channel is defined in the configuration data of the cfg file but its IVC queue ID is NOT available in the PCT, that channel is ignored.
Example: IVC queue table format of PCT
.ivc = {
.queue = {
... skipped ...
[queue id] = { .peers = {VM1_ID, VM2_ID}, .nframes = ##, .frame_size = ## },
... skipped ...
},
... skipped ...
}
/* example */
[255] = { .peers = {GID_GUEST_VM, GID_UPDATE}, .nframes = 64, .frame_size = 1536 },