Skip to content

Commit 904c9e2

Browse files
Geoffroy Van Cutsemdbkinder
authored andcommitted
doc: add more details to the FAQ (for version 0.7)
Add more details and clarifications to the new FAQ being added for v0.7 Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
1 parent c47efa3 commit 904c9e2

File tree

1 file changed

+43
-45
lines changed

1 file changed

+43
-45
lines changed

doc/faq.rst

Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -83,67 +83,65 @@ HV_RAM_SIZE is changed to 240M
8383
default 0x0f000000 if PLATFORM_UEFI
8484

8585
How to modify the default display output for a UOS?
86-
******************************************************************************
86+
***************************************************
8787

88-
Apollo Lake HW has three pipes and each pipe can have three or four planes which help to
89-
display the overlay video. The hardware can support up to 3 monitors simultaneously.
90-
Some parameters are available to control how display monitors are assigned between the
91-
SOS and UOS, simplifying the assignment policy and providing configuration
92-
flexibility for the pipes and planes in various IOT scenarios
88+
Apollo Lake HW has three pipes and each pipe can have three or four planes which
89+
help to display the overlay video. The hardware can support up to 3 monitors
90+
simultaneously. Some parameters are available to control how display monitors
91+
are assigned between the SOS and UOS(s), simplifying the assignment policy and
92+
providing configuration flexibility for the pipes and planes for various IoT
93+
scenarios. This is known as the **plane restriction** feature.
9394

94-
* i915.avail_planes_per_pipe: for controlling the planes
95-
* i915.domain_plane_owners: for controlling the domain mapping for each plane
95+
* ``i915.avail_planes_per_pipe``: for controlling how planes are assigned to the
96+
pipes
97+
* ``i915.domain_plane_owners``: for controlling which domain (VM) will have
98+
access to which plane
9699

97100
Refer to :ref:`GVT-g-kernel-options` for detailed parameter descriptions.
98101

99-
Currently, pipe A is assigned to SOS and pipes B and C are assigned to UOS,
100-
which uses the below parameter:
102+
In the default configuration, pipe A is assigned to the SOS and pipes B and C
103+
are assigned to the UOS, as described by these parameters:
101104

102-
* SOS:
105+
* SOS::
103106

104-
.. code-block:: bash
107+
i915.avail_planes_per_pipe=0x01010F
108+
i915.domain_plane_owners=0x011111110000
105109

106-
i915.avail_planes_per_pipe=0x01010F
107-
i915.domain_plane_owners=0x011111110000
110+
* UOS::
108111

109-
* UOS:
112+
i915.avail_planes_per_pipe=0x0070F00
110113

111-
.. code-block:: bash
114+
To assign pipes A and B to the UOS, while pipe C is assigned to the SOS, use
115+
these parameters:
112116

113-
i915.avail_planes_per_pipe=0x0070F00
117+
* SOS::
114118

115-
If pipes A and B are assigned to UOS, while pipe C is assigned to SOS,
116-
the below parameters can be used:
119+
i915.avail_planes_per_pipe=0x070101
120+
i915.domain_plane_owners=0x000011111111
117121

122+
* UOS::
118123

119-
* SOS:
124+
i915.avail_planes_per_pipe=0x000F0F
120125

121-
.. code-block:: bash
126+
.. note::
122127

123-
i915.avail_planes_per_pipe=0x070101
124-
i915.domain_plane_owners=0x000011111111
128+
The careful reader may have noticed that in all examples given above, the SOS
129+
always has at least one plane per pipe. This is intentional, and the driver
130+
will enforce this if the parameters do not do this.
125131

126-
* UOS:
132+
Why does ACRN need to know how much RAM the system has?
133+
*******************************************************
127134

128-
.. code-block:: bash
135+
Configuring ACRN at compile time with the system RAM size is a tradeoff between
136+
flexibility and functional safety certification. For server virtualization, one
137+
binary is typically used for all platforms with flexible configuration options
138+
given at run time. But, for IoT applications, the image is typically configured
139+
and built for a particular product platform and optimized for that product.
129140

130-
i915.avail_planes_per_pipe=0x000F0F
131-
132-
Why does ACRN need to be know how much RAM the system has?
133-
************************************************************
134-
135-
Configuring ACRN at compile time with the system RAM size is
136-
a tradeoff between flexibility and functionality certification.
137-
For server virtualization, one binary is typically used for all platforms
138-
with flexible configuration options given at run time.
139-
But, for IoT applications, the image is typically configured and built
140-
for a particular product platform and optimized product use.
141-
142-
Important features for ACRN include functional safety (FuSa) and
143-
real-time behavior. FuSa requires a static allocation policy to avoid
144-
the potential of dynamic allocation failures. Real-time applications
145-
similarly benefit from static memory allocation. This is why ACRN
146-
removed all "malloc" like code, and why it needs to pre-identify
147-
the size of all buffers and structures used in the Virtual Memory
148-
Manager. For this reason, knowing the available RAM size at compile
149-
time is necessary to statically allocate memory usage.
141+
Important features for ACRN include Functional Safety (FuSa) and real-time
142+
behavior. FuSa requires a static allocation policy to avoid the potential of
143+
dynamic allocation failures. Real-time applications similarly benefit from
144+
static memory allocation. This is why ACRN removed all ``malloc()``-type code,
145+
and why it needs to pre-identify the size of all buffers and structures used in
146+
the Virtual Memory Manager. For this reason, knowing the available RAM size at
147+
compile time is necessary to statically allocate memory usage.

0 commit comments

Comments
 (0)