@@ -81,3 +81,69 @@ HV_RAM_SIZE is changed to 240M
81
81
hex "Size of the RAM region used by the hypervisor"
82
82
default 0x07800000 if PLATFORM_SBL
83
83
default 0x0f000000 if PLATFORM_UEFI
84
+
85
+ How to modify the default display output for a UOS?
86
+ ******************************************************************************
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
93
+
94
+ * i915.avail_planes_per_pipe: for controlling the planes
95
+ * i915.domain_plane_owners: for controlling the domain mapping for each plane
96
+
97
+ Refer to :ref: `GVT-g-kernel-options ` for detailed parameter descriptions.
98
+
99
+ Currently, pipe A is assigned to SOS and pipes B and C are assigned to UOS,
100
+ which uses the below parameter:
101
+
102
+ * SOS:
103
+
104
+ .. code-block :: bash
105
+
106
+ i915.avail_planes_per_pipe=0x01010F
107
+ i915.domain_plane_owners=0x011111110000
108
+
109
+ * UOS:
110
+
111
+ .. code-block :: bash
112
+
113
+ i915.avail_planes_per_pipe=0x0070F00
114
+
115
+ If pipes A and B are assigned to UOS, while pipe C is assigned to SOS,
116
+ the below parameters can be used:
117
+
118
+
119
+ * SOS:
120
+
121
+ .. code-block :: bash
122
+
123
+ i915.avail_planes_per_pipe=0x070101
124
+ i915.domain_plane_owners=0x000011111111
125
+
126
+ * UOS:
127
+
128
+ .. code-block :: bash
129
+
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.
0 commit comments