Commit Graph

119 Commits

Author SHA1 Message Date
Weiyi Feng
84550004dd config_tools: add custom CAT widget
add custom CAT widget

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-05-22 20:10:24 +08:00
Calvin Zhang
4e2abfb473 misc: configurator: add check for uniqueness of cpus in Pre-launched VM
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>
2022-05-20 18:55:10 +08:00
David B. Kinder
c60c89d3de config: restore FEATURES on the basic tab
A previous PR incorectly removed the hypervisor FEATURES options on the
basic tab because all options were advanced.  One wasn't (IVSHMEM).

Tracked-on: #7514

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-05-20 11:54:36 +08:00
Yuanyuan Zhao
e106766b9e config_tools: add LAPIC passthrough to Service VM
Add LAPIC passthrough to Service VM advanced Parameters tab.

Tracked-On: #7502
Signed-off-by: Yuanyuan Zhao <yuanyuan.zhao@linux.intel.com>
2022-05-19 10:47:08 +08:00
Junjie Mao
22a47fe795 config_tools: check XML file structures on load
This patch validates the structure of the XML files given before they are
further used by the rest of the configurator. With this validation process,
the configurator confirms the XML files are well-structured and can thus
access certain nodes and contents without checking their existence or data
types.

Upon validation failure, an alert will pop up informing the user that the
given XML file is ill-formed. No further details are given as of now
because we assume users should not care about the internal structure of
those files.

Tracked-On: #6691
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-05-19 09:31:46 +08:00
Kunhui-Li
5c72036a67 config_tools: using XPATH expression to handle input data
XPATH 2.0 already supports functions like for-expressions,
so we use XPATH expression instead of the python code to format
virtio input data.

Tracked-On: #6691
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-05-18 14:40:26 +08:00
Chenli Wei
0d05632c42 misc: add assert for vUART connection
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>
2022-05-18 10:39:10 +08:00
Kunhui-Li
3653b268ed config_tools: format vitio input in configurator
This patch formats virtio input entry as "Device name: xxx, Device physical path: xxx".

Tracked-On: #6691
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-05-16 14:28:46 +08:00
David B. Kinder
8ffb0dee4d schema changes for DX configurator option presentation
Edit the schema (.xsd) files to modify the order options are presented.
None of these changes invalidate existing scenario XML files, as they
only reorder elements within the existing parent element, or tweak the
acrn:views, acrn:title, or documentation content.

Move simple type elements before complex type options (under the same
parent element) to avoid the confusion where options look like they're
part of a section based on the title that's added before complex typed
options but not simple typed options.

* add acrn:title to pcpu (pCPU list)
* change documentation for binary option saying "checked" instead of 'y'
* move HYPERV_ENABLED before RDT (simple type before complex type)
* move vuart_connections before FEATURES
* move name before vm_type
* move console_vuart, os_type, vuart0, vbootloader, usb_xhci before
  lapic_passthrough
* add acrn:title to epc_section
* add acrn:title to memory
* move gpu to top of virtio_devices (simple type before completx type)

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-05-16 09:12:20 +08:00
Junjie Mao
72445d01b4 config_tools: add placeholders in input widgets
The configurator today shows "Please Input" as the placeholder of input
widgets, which is far from informative.

This patch specifies element or type specific placeholders in the XML
schema by reusing the `acrn:widget-options` annotation mechanism. For
manually-designed widgets such as ivshmem or vUART the placeholders are
added in the corresponding vue directly.

Tracked-On: #6691
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-05-13 15:50:20 +08:00
Chenli Wei
d5c0a40665 misc: modify the generate logic of vcat config
The current code generate vcat info by count the CLOS MASK and the
scenario xml should set multiple times.

It is not an ideal solution, so we add an "virtual_cat_number" element
to set the virtual CLOS number and get the MAX pcbm directly.

Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-05-11 17:00:51 +08:00
Chenli Wei
a1b266f807 misc: refine CLOS module for expansibility
This patch refine CLOS module by the following aspects:

1 Unified CACHE_ID type to Hex Format
2 Rewrite policy merge with RDT Class
3 Modify the logic of generate CPU mask

Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-05-11 17:00:51 +08:00
Weiyi-Feng
06b942f5eb config_tools: Add vue-json-schema-form and advanced custom component for IVSHMEM field
1. add Vue devtools support
2. update project dependencies
3. refactor configurator source code tree for private library hook
4. fix build issue
5. dynamic load scenario JSON schema(fix cache issue)
6. add vjsf 1.12.2 (latest) for private package dependencies
7. remove vjsf unnecessary files
8. use private vjsf as configurator dependencies
9. Add custom IVSHMEM_REGION widget
10. add a script to populate default values
11. get default values before export scenario xml
12. specify widgets in XML schema
13. add missing vjsf license file
14. populate default values to empty nodes
15. when user clicks save button, update formData with each field default value
16. fix when the user clicks the save button will collapse configFom
17. add success message for saving scenario XML

vue-json-schema-form 1.12.2 (latest)link: b30ea7c2d6/packages/lib

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-05-08 15:52:28 +08:00
Calvin Zhang
e36b615fe1 misc: configurator: Config usb mediator devices in dropdown list
Support detecting connected usb devices in board_inspector and list them
in the usb mediator configuration menu.

Tracked-On: #7424
Signed-off-by: Calvin Zhang <calvinzhang.cool@gmail.com>
2022-05-07 17:37:03 +08:00
hangliu1
0c5f7b5985 config tool:add restriction for some parameters
add value restriction for memory size and max pt irq entry

Tracked-On: #7407
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-05-05 16:50:22 +08:00
hangliu1
fd76e342ef config tool: add schema check for cpu_affinity
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>
2022-05-05 15:51:59 +08:00
David B. Kinder
69f8f6dcdc doc: fix malformed virtio gpu device description
xs:documentation content has an indented line that causes the reST
formatting of the generated content to be off (leading spaces on lines
are significant to reST formatting).

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-05-03 15:43:18 +08:00
Junjie Mao
f8f1689a88 config_tools: do not apply distinct-values on a union of node-set
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>
2022-04-28 15:36:11 +08:00
Yifan Liu
26cab008e8 misc: config_tools: Add Check for RTVM pCPU assignment
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>
2022-04-26 13:42:13 +08:00
David B. Kinder
aa170a3d11 doc: update acrn:title for uniqueness and context clarity
Make small changes to DX-friendly acrn:title names to make them unique
across the options and to provide meaningful names when shown out of
context in the config option documentation.

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-04-25 09:10:47 -07:00
Weiyi Feng
696ba31be8 config_tools: refactor configurator for web page cache issue
refactor configurator for web page cache issue

Tracked-On: #7356
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-04-25 18:13:12 +08:00
Kunhui-Li
68f88a4bc9 config_tools: update virtio console to support multiple console sockets
this patch updates virtio console in schema and launch script generation
logic to support multiple console sockets. And check the schema and launch
script, now we support multiple console/input/network/block, multiple gpu is
not supported in schema.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-25 10:19:24 +08:00
Chenli Wei
4807385fe2 misc: refine cache config
The current RDT setting requires users to calculate the CLOS mask and
the details, it is not a user-friendly setting.

So we redesigned RDT, users can easily specify the cache of each vcpu
for VMs.

This patch add an RDT region element for schema, calculate and generate
all the mask and rdt parameters by config tool to generates rdt_info
struct for board.c.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-04-24 16:52:24 +08:00
hangliu1
991735404e config tool:update vbootloader xsd file
update vbootloader and vuart0 in schema

Tracked-On: #7294
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-22 18:39:43 +08:00
hangliu1
50082af5b2 config tool:Fix parameters in Configurator UI
Change parameters attribute to impact UI effect.

Tracked-On: #7335
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-22 16:18:28 +08:00
Chenli Wei
52268f5cc2 config_tools: refine memory setting for HPAn
1. Update the data structure of vm/memory in scenario and schema files.
The scenario will look like this.

<hpa_region>
  <start_hpa>xxx</start_hpa>
  <size_hpa>xxx</size_hpa>
</hpa_region>

2. Update xsl files to generate the related struct.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-22 14:46:05 +08:00
Kunhui-Li
6647b2e266 config_tools: add virtio gpu
Virtio gpu device UI will be implemented after 3.0.
As a workaround, this patch simply adds the virtio gpu entry in schema
and launch script generation logic.

Tracked-On: #7301
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-21 21:40:38 +08:00
Junjie Mao
4fe6cae877 config_tools: track whether each vCPU is used for real-time or not
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>
2022-04-21 10:08:53 +08:00
Junjie Mao
db17992293 config_tools: add assertions on the uniqueness of vBDF
This patch adds the assertion (in XSD) that validates if all explicitly
specified vBDF (including those for virtual UART controllers and IVSHMEM
interfaces) are unique.

Tracked-On: #7330
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-04-21 10:08:53 +08:00
Junjie Mao
5bd3e96426 config_tools: add default values to vBDF of vUART and IVSHMEM
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>
2022-04-21 10:08:53 +08:00
David B. Kinder
410d317fe4 doc: update schema type documentation
Add documentation for enumerated types and value restrictions so it
shows up in the option documention.  Also add additional acrn:title
annotations.

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-04-20 13:44:23 -07:00
David B. Kinder
f1dbb35da0 doc: fix doc formatting in xsd files
Documentation continuation lines must not be indented unless required by
rst syntax.

Added some type explations for enumerations, but would be better to
generate the enumeration values by scanning the tree. Figure that out in
another PR.  (This would prevent the documented list of values from
being out of sync with the actual list of values in the enumeration.)

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-04-20 09:42:21 -07:00
hangliu1
5d938e751b config tool: update schema
Update "Borrowed Virtual Time" scheduler description
Update "RELOC" and "MULTIBOOT2" parameter name
Update xml

Tracked-On: #7297
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-18 19:29:51 +08:00
hangliu1
2d0089f06b config tool: update cpu affinity check algorithm
pcpu in pre-launched RTVM cannot share with other VM

Tracked-On: #7287
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-18 13:41:37 +08:00
Kunhui-Li
76dc2b3a5e config_tools: refine Virtio devices in the schema
We have redesigned Virtio and UI for user, so this patch updates the schema
for the new design.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-15 14:20:11 +08:00
hangliu1
5c3e7a29ee config tool/doc:update SCHED_IORR in schema
hide SCHED_IORR and KERNEL_RAWIMAGE in schema
and update SCHED_IORR in doc

Tracked-On: #7256
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-13 13:35:52 +08:00
hangliu1
1157d1d41c config tool: update virtio block setting
add support for more than one virtio block setting
for specific vm

Tracked-On: #7277
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-13 11:13:02 +08:00
hangliu1
0e4a94f9dd config tool: hide PTM in schema
change acrn:view attribute to ""

Tracked-On: #7261
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-12 13:55:20 +08:00
hangliu1
f656ef0abc config tool: Fix service vm cpu affinity issue
default value of minOccurs is "1", which will trigger problem
when user leave pcpu_id blank while preserve cpu_affinity in
service VM.

Tracked-On: #7267
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-12 11:34:56 +08:00
hangliu1
7bf96c5a97 config tool: Fix combined cpu_affinity warning
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>
2022-04-12 10:05:27 +08:00
hangliu1
310120092e config tool: service vm parameter display
Fix it in schema by adding attribute acrn:applicable-vms

Tracked-On:#7262

Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-06 15:40:44 +08:00
Reyes, Amy
9a4cb33f39 config_tools: Update Configurator UI XSD
- Update labels and descriptions

Tracked-On: #5692
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-04-01 10:04:57 +08:00
Kunhui-Li
74dc103d9e config_tools: remove board and scenario attributes
remove board and scenario attributes dependency for new configuration.

To do:
will remove board and scenario attributes in all scenario XML files
and update the upgrader.py after the new configuration works.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-03-31 19:32:52 +08:00
Weiyi Feng
3c4f14ede7 configurator: add new configurator
add new configurator

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
(cherry picked from commit 1232a7229af7ed60706cc725acf955ccbd8ca035)
2022-03-31 19:26:33 +08:00
Junjie Mao
9be4a282c4 config_tools: extract serial ttys in board XML
This patch extracts all serial ttys in the native environment and updates
the XML schema to specify the XPATH that evaluates to the available ttys
for users to choose as the hypervisor console port.

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-03-28 09:43:38 +08:00
Junjie Mao
8c46c2306f config_tools: format BDF in descriptions of PCI devices
This patch adds the BDF (in the format BBBB:DD.F) of each PCI device into
its description, which helps the configurator to fetch all available PCI
devices via XPATH rather than text manipulating functions.

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-03-28 09:43:38 +08:00
Reyes, Amy
95c2849cee config_tools: Update Configurator UI XSD
- Update XSD files to match field names and tooltips in parameter spreadsheet

Tracked-On: #5692
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-03-25 15:06:24 +08:00
Kunhui-Li
e1f5c32ea2 config_tools: remove CONFIG_IOMMU_BUS_NUM
Since PR #6943 has landed, the `CONFIG_IOMMU_BUS_NUM` has been renamed
to `ACFG_MAX_PCI_BUS_NUM`, this patch removes the obsolete code about
`CONFIG_IOMMU_BUS_NUM`.

v1-->v2:
Update the upgrader.py to add a description of this obsoleted item.

Tracked-On: #6942
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-03-22 16:37:13 +08:00
Junjie Mao
cfcea64976 config_tools: add schema of checker schemas
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>
2022-03-16 10:44:16 +08:00
Junjie Mao
d781b7bf17 config_tools: implement existing scenario checks in XSD
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>
2022-03-16 10:44:16 +08:00