From 0e92ecf35d8f7b1caa53fbd9dcb46f8cbdf3f448 Mon Sep 17 00:00:00 2001 From: dongshen Date: Tue, 8 Sep 2020 16:59:14 -0700 Subject: [PATCH] acrn-config: move VMx_CONFIG_PCI_DEV_NUM macro to misc_cfg_h.py so that vm_configurations.h/vm_configurations.c are consistent for different boards Tracked-On: #5229 Signed-off-by: dongshen --- misc/acrn-config/board_config/misc_cfg_h.py | 30 +++++++++++++++++++ .../scenario_config/vm_configurations_h.py | 27 ----------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/misc/acrn-config/board_config/misc_cfg_h.py b/misc/acrn-config/board_config/misc_cfg_h.py index 131281430..cc8f92795 100644 --- a/misc/acrn-config/board_config/misc_cfg_h.py +++ b/misc/acrn-config/board_config/misc_cfg_h.py @@ -172,6 +172,34 @@ def cpu_affinity_per_vm_gen(config): print("", file=config) +def pci_dev_num_per_vm_gen(config): + + pci_items = common.get_leaf_tag_map(common.SCENARIO_INFO_FILE, "pci_devs", "pci_dev") + pci_devs = scenario_cfg_lib.get_pci_devs(pci_items) + pci_dev_num = scenario_cfg_lib.get_pci_num(pci_devs) + + ivshmem_region = common.get_hv_item_tag(common.SCENARIO_INFO_FILE, + "FEATURES", "IVSHMEM", "IVSHMEM_REGION") + + shmem_enabled = common.get_hv_item_tag(common.SCENARIO_INFO_FILE, + "FEATURES", "IVSHMEM", "IVSHMEM_ENABLED") + + shmem_regions = scenario_cfg_lib.get_shmem_regions(ivshmem_region) + shmem_num = scenario_cfg_lib.get_shmem_num(shmem_regions) + + for vm_i,vm_type in common.VM_TYPES.items(): + if "POST_LAUNCHED_VM" == scenario_cfg_lib.VM_DB[vm_type]['load_type']: + if shmem_enabled == 'y' and vm_i in shmem_num.keys(): + print("#define VM{}_CONFIG_PCI_DEV_NUM {}U".format(vm_i, shmem_num[vm_i]), file=config) + elif "PRE_LAUNCHED_VM" == scenario_cfg_lib.VM_DB[vm_type]['load_type']: + shmem_num_i = 0 + if shmem_enabled == 'y' and vm_i in shmem_num.keys(): + shmem_num_i = shmem_num[vm_i] + print("#define VM{}_CONFIG_PCI_DEV_NUM {}U".format(vm_i, pci_dev_num[vm_i] + shmem_num_i), file=config) + + print("", file=config) + + def generate_file(config): """ Start to generate board.c @@ -335,6 +363,8 @@ def generate_file(config): print("#define VM0_TPM_BUFFER_SIZE 0x5000UL", file=config) print("", file=config) + pci_dev_num_per_vm_gen(config) + print("{}".format(MISC_CFG_END), file=config) return err_dic diff --git a/misc/acrn-config/scenario_config/vm_configurations_h.py b/misc/acrn-config/scenario_config/vm_configurations_h.py index 5dee8155f..f7ccf6826 100644 --- a/misc/acrn-config/scenario_config/vm_configurations_h.py +++ b/misc/acrn-config/scenario_config/vm_configurations_h.py @@ -57,36 +57,10 @@ def gen_pre_launch_vm(scenario_items, config): print("#define VM{0}_CONFIG_MEM_SIZE_HPA2 {1}UL".format( vm_i, vm_info.mem_info.mem_size_hpa2[vm_i]), file=config) - shmem_num_i = 0 - if vm_info.shmem.shmem_enabled == 'y' and vm_i in vm_info.shmem.shmem_num.keys(): - shmem_num_i = vm_info.shmem.shmem_num[vm_i] - - print("#define VM{}_CONFIG_PCI_DEV_NUM {}U".format(vm_i, - vm_info.cfg_pci.pci_dev_num[vm_i] + shmem_num_i), file=config) print("", file=config) vm_i += 1 -def gen_post_launch_header(scenario_items, config): - vm_i = 0 - vm_info = scenario_items['vm'] - is_post_vm_available = False - for vm_type in common.VM_TYPES.values(): - if "POST_LAUNCHED_VM" != scenario_cfg_lib.VM_DB[vm_type]['load_type']: - vm_i += 1 - continue - - is_post_vm_available = True - - if vm_info.shmem.shmem_enabled == 'y' and vm_i in vm_info.shmem.shmem_num.keys(): - print("#define VM{}_CONFIG_PCI_DEV_NUM {}U".format(vm_i, - vm_info.shmem.shmem_num[vm_i]), file=config) - vm_i += 1 - - if is_post_vm_available: - print("", file=config) - - def gen_sos_header(scenario_items, config): if 'SOS_VM' not in common.VM_TYPES.values(): @@ -108,7 +82,6 @@ def gen_header_file(scenario_items, config): gen_pre_launch_vm(scenario_items, config) gen_sos_header(scenario_items, config) - gen_post_launch_header(scenario_items, config) def get_dm_owned_guest_flag_mask(vm_info, config):