mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-12-22 04:42:27 +00:00
config-tools: enable PTM through config-tools
Configure PTM in post-launched VM using <PTM> element. If the //vm/PTM sets to 'y', pci_dev.c.xsl appends the virtual root port to corresponding struct acrn_vm_pci_dev_config of that VM. Currently it supports only post-launched VMs. Configure enable_ptm for dm argument. If a uos/enable_ptm with uos id = 'vm_id 'sets to 'y' and the vm/PTM with the same vm_id sets to 'y', append an "enable_ptm" flag to the end of passthrough ethernet devices. Currently there is only ethernet card can support the "enable_ptm"flag. For the schema validation, the <PTM> can only be ['y', 'n']. For the launched script validation, the <enable_ptm> can only be ['y', 'n']. If the <enable_ptm> sets to 'y' but the corresponding <PTM> sets to 'n', the launch script will fail to generate. Tracked-On: #6054 Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
This commit is contained in:
@@ -8,11 +8,14 @@ import getopt
|
||||
import common
|
||||
import board_cfg_lib
|
||||
import scenario_cfg_lib
|
||||
import lxml
|
||||
import lxml.etree
|
||||
|
||||
ERR_LIST = {}
|
||||
BOOT_TYPE = ['no', 'vsbl', 'ovmf']
|
||||
RTOS_TYPE = ['no', 'Soft RT', 'Hard RT']
|
||||
DM_VUART0 = ['Disable', 'Enable']
|
||||
PTM = ['y', 'n']
|
||||
UOS_TYPES = ['CLEARLINUX', 'ANDROID', 'ALIOS', 'PREEMPT-RT LINUX', 'VXWORKS', 'WINDOWS', 'ZEPHYR', 'YOCTO', 'UBUNTU', 'GENERIC LINUX']
|
||||
LINUX_LIKE_OS = ['CLEARLINUX', 'PREEMPT-RT LINUX', 'YOCTO', 'UBUNTU', 'GENERIC LINUX']
|
||||
|
||||
@@ -668,4 +671,12 @@ def check_communication_vuart(launch_communication_vuarts, scenario_info):
|
||||
if uos_id in vuart1_setting.keys() and vuart1_setting[uos_id]['base'] != "INVALID_COM_BASE":
|
||||
ERR_LIST[vuart_key] = "uos {}'s communication_vuart 1 and legacy_vuart 1 should " \
|
||||
"not be configured at the same time.".format(uos_id)
|
||||
return
|
||||
return
|
||||
|
||||
def check_enable_ptm(launch_enable_ptm, scenario_info):
|
||||
scenario_etree = lxml.etree.parse(scenario_info)
|
||||
enable_ptm_vm_list = scenario_etree.xpath("//vm[PTM = 'y']/@id")
|
||||
for uos_id, enable_ptm in launch_enable_ptm.items():
|
||||
key = 'uos:id={},enable_ptm'.format(uos_id)
|
||||
if enable_ptm == 'y' and str(uos_id) not in enable_ptm_vm_list:
|
||||
ERR_LIST[key] = "PTM of uos:{} set to 'n' in scenario xml".format(uos_id)
|
||||
|
||||
Reference in New Issue
Block a user