From c47efa3f5a5cdca1ae355ea984d448e30693be7a Mon Sep 17 00:00:00 2001 From: wenlingz Date: Thu, 14 Mar 2019 14:01:26 +0800 Subject: [PATCH] Add new FAQ Signed-off-by: wenlingz --- doc/faq.rst | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/doc/faq.rst b/doc/faq.rst index 80af709b4..7cd990e77 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -81,3 +81,69 @@ HV_RAM_SIZE is changed to 240M hex "Size of the RAM region used by the hypervisor" default 0x07800000 if PLATFORM_SBL default 0x0f000000 if PLATFORM_UEFI + +How to modify the default display output for a UOS? +****************************************************************************** + +Apollo Lake HW has three pipes and each pipe can have three or four planes which help to +display the overlay video. The hardware can support up to 3 monitors simultaneously. +Some parameters are available to control how display monitors are assigned between the +SOS and UOS, simplifying the assignment policy and providing configuration +flexibility for the pipes and planes in various IOT scenarios + +* i915.avail_planes_per_pipe: for controlling the planes +* i915.domain_plane_owners: for controlling the domain mapping for each plane + +Refer to :ref:`GVT-g-kernel-options` for detailed parameter descriptions. + +Currently, pipe A is assigned to SOS and pipes B and C are assigned to UOS, +which uses the below parameter: + +* SOS: + +.. code-block:: bash + + i915.avail_planes_per_pipe=0x01010F + i915.domain_plane_owners=0x011111110000 + +* UOS: + +.. code-block:: bash + + i915.avail_planes_per_pipe=0x0070F00 + +If pipes A and B are assigned to UOS, while pipe C is assigned to SOS, +the below parameters can be used: + + +* SOS: + +.. code-block:: bash + + i915.avail_planes_per_pipe=0x070101 + i915.domain_plane_owners=0x000011111111 + +* UOS: + +.. code-block:: bash + + i915.avail_planes_per_pipe=0x000F0F + +Why does ACRN need to be know how much RAM the system has? +************************************************************ + +Configuring ACRN at compile time with the system RAM size is +a tradeoff between flexibility and functionality certification. +For server virtualization, one binary is typically used for all platforms +with flexible configuration options given at run time. +But, for IoT applications, the image is typically configured and built +for a particular product platform and optimized product use. + +Important features for ACRN include functional safety (FuSa) and +real-time behavior. FuSa requires a static allocation policy to avoid +the potential of dynamic allocation failures. Real-time applications +similarly benefit from static memory allocation. This is why ACRN +removed all "malloc" like code, and why it needs to pre-identify +the size of all buffers and structures used in the Virtual Memory +Manager. For this reason, knowing the available RAM size at compile +time is necessary to statically allocate memory usage.