From de93ac1edf7528effe5b40f83932458f4b5c2678 Mon Sep 17 00:00:00 2001 From: Chenli Wei Date: Fri, 26 Aug 2022 03:19:25 +0800 Subject: [PATCH] misc: add config for P2SB 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 Reviewed-by: Junjie Mao --- misc/config_tools/board_config/board_c.py | 8 +++++++- misc/config_tools/schema/VMtypes.xsd | 10 ++++++++++ misc/config_tools/schema/checks/vbdf_assignment.xsd | 7 +++++++ misc/config_tools/schema/config.xsd | 7 +++++++ misc/config_tools/xforms/lib.xsl | 3 +++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/misc/config_tools/board_config/board_c.py b/misc/config_tools/board_config/board_c.py index 655cfc6c4..c1ce14e29 100644 --- a/misc/config_tools/board_config/board_c.py +++ b/misc/config_tools/board_config/board_c.py @@ -408,8 +408,14 @@ def gen_px_cx(config): def gen_pci_hide(config): """Generate hide pci information for this platform""" + + scenario_etree = lxml.etree.parse(common.SCENARIO_INFO_FILE) + hidden_pdev_list = [x.replace('.', ':') for x in scenario_etree.xpath(f"//HIDDEN_PDEV/text()")] + if board_cfg_lib.BOARD_NAME in list(board_cfg_lib.KNOWN_HIDDEN_PDEVS_BOARD_DB.keys()) and board_cfg_lib.KNOWN_HIDDEN_PDEVS_BOARD_DB[board_cfg_lib.BOARD_NAME] != 0: - hidden_pdev_list = board_cfg_lib.KNOWN_HIDDEN_PDEVS_BOARD_DB[board_cfg_lib.BOARD_NAME] + hidden_pdev_list += board_cfg_lib.KNOWN_HIDDEN_PDEVS_BOARD_DB[board_cfg_lib.BOARD_NAME] + scenario_pdev_list + + if len(hidden_pdev_list) > 0: hidden_pdev_num = len(hidden_pdev_list) print("const union pci_bdf plat_hidden_pdevs[MAX_HIDDEN_PDEVS_NUM] = {", file=config) for hidden_pdev_i in range(hidden_pdev_num): diff --git a/misc/config_tools/schema/VMtypes.xsd b/misc/config_tools/schema/VMtypes.xsd index ce4ef09be..4ced8e02d 100644 --- a/misc/config_tools/schema/VMtypes.xsd +++ b/misc/config_tools/schema/VMtypes.xsd @@ -272,6 +272,16 @@ The size is a subset of the VM's total memory size specified on the Basic tab. + + + + + Specify the hidden device vBDF + + + + + diff --git a/misc/config_tools/schema/checks/vbdf_assignment.xsd b/misc/config_tools/schema/checks/vbdf_assignment.xsd index c151c2fed..c17f93f63 100644 --- a/misc/config_tools/schema/checks/vbdf_assignment.xsd +++ b/misc/config_tools/schema/checks/vbdf_assignment.xsd @@ -24,4 +24,11 @@ + + + Can't passthrough P2SB to VM {/acrn-config//vm[./load_order/text() = 'PRE_LAUNCHED_VM' and .//p2sb/text() = 'y']/name/text()} because '00:1f.1' is set as a hidden device". + + + diff --git a/misc/config_tools/schema/config.xsd b/misc/config_tools/schema/config.xsd index 2bb5a4fb8..d75971524 100644 --- a/misc/config_tools/schema/config.xsd +++ b/misc/config_tools/schema/config.xsd @@ -304,6 +304,13 @@ Refer to :ref:`vuart_config` for detailed vUART settings. Miscellaneous options for workarounds. + + + + Specify the hidden devices. + + + Specify the cache setting. diff --git a/misc/config_tools/xforms/lib.xsl b/misc/config_tools/xforms/lib.xsl index 2fdad6b37..8974cc16a 100644 --- a/misc/config_tools/xforms/lib.xsl +++ b/misc/config_tools/xforms/lib.xsl @@ -375,6 +375,9 @@ + + +