@@ -83,67 +83,65 @@ HV_RAM_SIZE is changed to 240M
83
83
default 0x0f000000 if PLATFORM_UEFI
84
84
85
85
How to modify the default display output for a UOS?
86
- ******************************************************************************
86
+ ***************************************************
87
87
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.
93
94
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
96
99
97
100
Refer to :ref: `GVT-g-kernel-options ` for detailed parameter descriptions.
98
101
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 :
101
104
102
- * SOS:
105
+ * SOS::
103
106
104
- .. code-block :: bash
107
+ i915.avail_planes_per_pipe=0x01010F
108
+ i915.domain_plane_owners=0x011111110000
105
109
106
- i915.avail_planes_per_pipe=0x01010F
107
- i915.domain_plane_owners=0x011111110000
110
+ * UOS::
108
111
109
- * UOS:
112
+ i915.avail_planes_per_pipe=0x0070F00
110
113
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:
112
116
113
- i915.avail_planes_per_pipe=0x0070F00
117
+ * SOS::
114
118
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
117
121
122
+ * UOS::
118
123
119
- * SOS:
124
+ i915.avail_planes_per_pipe=0x000F0F
120
125
121
- .. code-block :: bash
126
+ .. note ::
122
127
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.
125
131
126
- * UOS:
132
+ Why does ACRN need to know how much RAM the system has?
133
+ *******************************************************
127
134
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.
129
140
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