This patch is to allow user to pin vUART timer to specific pCPU via ACRN
config tool. User can configure by setting "vUART timer pCPU ID" under
Hypervisor->Advanced Parameters.
Tracked-On: #8648
Signed-off-by: Haiwei Li <haiwei.li@intel.com>
The division operator in XPATH is `div`, not `/`. Fix it in an error
message of the assertions.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Fix the following issues:
1. <gpu> and <displays> elements are added to scenario XML when they are not configured.
2. Virtio GPU components disappears after switching to another tab and switching back to
previous tab.
3. Wrong error message of vertical offset checking.
Improve the error check in virtio_devices.xsd:
1. Every window virtual display need to configure window resolution, horizontal offset
and vertical offset.
2. Any display's elements need to be configured. The existing code
only check the first window resolution, horizontal offset, vertical
offset and monitor id.
Tracked-On: #8292
Signed-off-by: yuchuyang <yu-chu.yang@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Add "exclusively owns physical CPUs" checkbox to pre-launched VMs
and post-launched VMs. RTVM will not display this checkbox.
If this checkbox is set, the VM will use all the pCPUs assigned to
it alone.
Tracked-On: #8253
Signed-off-by: Yuanyuan Zhao <yuanyuan.zhao@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
1. In the full screen mode, a VM supports 4 virtual displays at most.
2. A vm supports 2 virtual windows at most.
3. The monitor ID cannot be duplicated in the full screen mode.
4. All the display elements are in DisplayConfiguration of VMType.xsd. It
cannot be set as required. Using assertions to check if the sub-elements
are set for any type of virtual display accordingly.
- check if a display has been added and a display type is set.
- check if monitor ID is set for full screen virtual display.
- check if resolution and offsets are set for window virtual display.
Tracked-On: #7970
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Today users are able to tweak whether the hypervisor includes support to
software SRAM (SSRAM). This, however, gives rise to potential functional
incorrectness when the hypervisor is not built with such support but a
service VM attempts to assign SSRAM to a post-launched VM (which is
possible as the service VM can still see the SSRAM-related ACPI tables). In
such cases the SSRAM assigned to a post-launched VM is not properly
initialized and thus not locked in cache.
As makes little sense for a user to configure the SSRAM support in the
hypervisor in a different way as the presence of SSRAM on hardware, this
patch removes the "SSRAM support" option from the configurator. The config
tools will now automatically enable the SSRAM support if the hardware
supports the feature and disable that otherwise.
Tracked-On: #8231
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
The BDF of user setting should skip the slot '00', '01', '02', '1f', all
these slots should select one of the 03~1e.
This patch add an assertion to check the above policy.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
The current code have not check whether all cache region has "Code and
Data Prioritization", it's an issue for some platform which have only
L2 or L3 "Code and Data Prioritization" capability.
This patch add assertion to check whether all L2, L3 cache could be set
CDP_ENABLE.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
Currently we have to use additional patch to change config tool python
code to enable P2SB hidden device.
This patch have add an element, user could config the P2SB device in
the scenario XML.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
The current code does not detect the memory applied by all VMs, if it
exceeds the native memory, there will be an allocate failed and these
VMs can't run.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
Reviewed-by: Junjie Mao junjie.mao@intel.com
The current ACRN Configurator have no warning when the user set CPU zero
to RTVM.
This patch add an assert to check the above.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
The current ACRN-Configurator just check the conflict of user setting.
have not check the conflict with native PCI device's bdf.
This patch add an assert to check the above conflict.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
The current ACRN-Configurator allow user add duplicate PCI devices to
passthrough which it is not correct.
This patch add an assert to check the duplicate of PCI devices.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
The current code judges an empty vm_name as a normal vm_name and assert
two endpoints with null name use the same IO port.
There was another which check wether the vm_name of endpoint is null, so
this patch break the assert if get null vm_name.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
This patch fixes the following issues in the existing scenario schema
assertions:
1. The assertion that ensures the existence of pCPU affinity in all
pre- and post-launched VMs does not count the pCPU settings under a
VM properly.
2. The assertion that ensures the presence of CAT settings of a defined
VM is no longer needed as it was originally designed to capture
configurator issues.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
The current UI there is an issue which have not sync and save the VMs
to RDT element, these issue will cause the missing of num_pclosids and
the HV can't start.
This patch add assert to check the the missing of CLOS MASK.
The UI issue will be fix by another patch.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
The following issues are witnessed in the RDT assertions in XML schema
rdt_support.xsd:
* Some assertions still check data in vcpu_clos nodes which no longer
exist today because of the refinement of how RDT is configured.
* For those that still hold, acrn:severity and acrn:report-on are not
stated, which prevents the validation activity from reporting failures
against them.
This patch drops the assertions that no longer make sense today and add
ACRN-specific attributes to those that still hold.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
The library module introduced by commit 2cd13026e ("misc: move the RDT
interface to common library") was put under the library/ directory which is
not by default searchable from elementpath_overlay. This patch works around
the issue by adding that path to sys.path.
Also fix a typo in the RDT checking assertion.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
The current RDT class and interface was define by the clos.py which is
mix get and merge RDT policy, create clos nodes.
Now we need call these interface to check the CLOS IDs number after
merged RDT policy, so this patch abstract the RDT interface to common
and add an assert to check the CLOS IDs number.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
The current code assume there was one Console vUART all the time, and
there is an issue when the Console vUART is None.
This patch add the case of "None" and add assert to check no serial
console config.
Tracked-On: #6690
Signed-off-by: Chenli Wei chenli.wei@intel.com
ivshmem name and vuart connection vm name are required in UI, so
add the check in case user miss setting them.
Tracked-On: #7700
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
Use DX names (acrn:title) instead of element names in messages.
Add missing message in rdt_support.xsd (all asserts need an annotation
with documentation for the error message that will be reported).
Tracked-On: #7685
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
CPU sharing among standard Pre-launched VMs and Post-launched VMs are
allowed by design. Revert 4e2abfb473 ('misc: configurator: add check
for uniqueness of cpus in Pre-launched VM')
Tracked-On: #7688
Signed-off-by: Qiang Zhang <qiang4.zhang@intel.com>
The current code allow the same region name for same VM, it's an issue
This patch add an assert to check the above issue and report it.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
1. One VM can have multi vsock. Changed vsock UI to multi line.
2. Add verification that no repeated CID is allowed.
3. Refine the tooltip text.
Tracked-On: #7637
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
The current UI allow user use duplicate vUART io_port for same VM, it's
an issue.
This patch add assert check it.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
The current UI display "report on" message, it's not by design, so this
patch remove these message.
Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
CPUs assigned to Pre-launched VM can not be shared. Add a xsd rule to
check it.
Tracked-On: #7526
Signed-off-by: Calvin Zhang <calvinzhang.cool@gmail.com>
The current UI have no live-check to check whether a VM connect to
itself.
So we add an assert to the schema and return error when user connect a
VM to itself.
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
cpu_affinity is required field for non-service vm,
add the check in case user misconfig it.
Tracked-On: #7405
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
The latest version of the elementpath library (i.e. 2.5.0) fails to
evaluate an XPATH which feeds a union of node sets to the `distinct-values`
function. An exception will be raised in such case, which eventually causes
the hypervisor build to fail.
This patch removes the usage of `distinct-values` function in the
XPATH. This may cause some additional delays to the evaluation of the
assertion, but at least will not impact the build even the latest versions
of the Python libraries are used.
Tracked-On: #7372
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Previously we have checks to make sure pre-launched RTVM does not share
pCPU with others. This patch extends this check to all RTVMs.
Tracked-On: #7361
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
According to DX recommendations, this patch adds a Boolean item to each
vCPU which allows users to specify the vCPUs intended for
real-time-critical tasks. This information will be used to organize other
widgets (CAT-related ones for now) in the configurator to tell apart
real-time ones from the others for better clarity.
All vCPUs are by default not real-time-critical, except those in the RT VMs
which are.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Different from other nodes which have static default values, the virtual
BDF nodes of virtual UART endpoints or IVSHMEM interfaces have a set of
default values and should be used with uniqueness guaranteed. The existing
default value mechanism in XSD does not include support for this.
This patch adds two more ACRN-specific annotations, namely `acrn:defaults`
and `acrn:unique-among`, that have the following semantics.
- `acrn:defaults` is a Python expression that evaluates to an iterable.
- `acrn:unique-among` is an xpath that specifies the nodes. Each node
within the select ones shall have a value unique among them. The xpath
is evaluated with the variable `parent` defined as the parent node
under which the vBDF node is to be appended.
Tracked-On: #7330
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Service vm could have the combination of big and
little core cpu_affinity setting, fix the assert.
Tracked-On: #7270
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
This patch adds a (meta) XML schema of those XML schema files specifying
the validation rules (using xs:assert constructs). This provide integrators
with a mechanism to confirm the well-formedness of those rules, especially
the customized annotations for advanced error reporting.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Now we have transitioned to use XML schema to record all data validation
rules against board and scenario XMLs. While most checks originally in the
Python scripts are about the syntax of the XML files and thus naturally
covered by the XML schemas, there are still a few that conduct cross-check
on data consistency.
This patch migrates those checks into XML schema as assertions.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Assertions in XML schema are placed under schema/checks as the central
place, in order to make it easier to enhance the error reporting
specifically on assertion failures in the near future.
This patch moves the RDT related assertions in the schema to a dedicate
file uner schema/checks.
Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
This patch includes:
1.add load_order(PRE_LAUNCHED_VM/SERVICE_VM/POST_LAUNCHED_VM) parameter
2.change vm_type parameter to values as RTVM, STANDARD_VM, TEE, REE
TEE and REE are hide in UI.
3.deduce vm severity in vm_configuration from vm_type and load_order
This patch not includes:
change for scenario_config and functions called by scenario_config about checking
v2->v3:
*Refine template load_order
v1->v2:
*Change variable name from vm_type to load_order
*Change LoadOptionType to LoadOrderType
*Change VMOptionsType to VMType
*Add TEE_VM/REE_VM description
*Refine acrn:is-pre-launched-vm
Tracked-On: #6690
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Since PR #7113 has landed, we also remove PLATFORM_RAM_SIZE in the related
Python code, schema and all existing scenario XML files.
Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Add assert for below invalid scenario:
1. Two or more pre-launched RTVM
2. One pre-launched RTVM and one or more post-launched RTVM
Tracked-On: #6685
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
The term PSRAM is now obsoleted and should be replaced with SSRAM, as has been
done by commit 9facbb43b3 ("config-tool: rename PSRAM to SSRAM"). However,
there are two places in the configuration toolset that still uses PSRAM. This
patch updates these missed occurrences accordingly.
Tracked-On: #6012
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Update the severity from "warning" to "error" for hybrid cores check.
Tracked-On: #5918
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Signed-off-by: Kunhui Li <kunhuix.li@intel.com>
This patch adds support to parse RTCT v2 using the refined board XML
schema. The major changes include:
- Add the RTCT v2 parser in the acpiparser module. The version of an RTCT
is detected automatically to choose the right parser.
- Extract software SRAM capabilities of caches into the board XML.
- Move the logic that determines the software SRAM base address for the
pre-launched VM to the static allocator of GPAs.
- Generate software SRAM related macros into misc_cfg.h when necessary.
Tracked-On: #6020
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
This patch introduces the XML schema `datachecks.xsd` which is the central
place to specify and check assumptions on board characteristics and
scenario settings. Each assumption is expressed as an XSD assertion with
annotation of error severity (e.g. info, warning or error) and detailed
descriptions.
At compile time, the board and scenario XMLs are combined (by putting the
children of the root node together) can checked against the
schema. Assertion failures are categorized according to the defined
severity. Currently only errors will block compilation by outputing the
descriptions of the violated assertions.
The objective of this patch is the introduce the framework to document,
manage and check assumptions. A better way to present assumption violations
to end users (either on the command line or in the configuration editor) is
out of the scope of this series and will be considered in the future.
Tracked-On: #5922
Signed-off-by: Junjie Mao <junjie.mao@intel.com>