From 1fe1afd4c6c582d06cc9fb309ee00dfe00f95b0e Mon Sep 17 00:00:00 2001 From: Sainath Grandhi Date: Wed, 4 Dec 2019 23:35:19 -0800 Subject: [PATCH] acrn-config: Add ramdisk tag parsing support Pre-launched or SOS VMs could use ramdisks to boot. This patch adds acrn-config tool support to parse such use-case scenario xmls. Tracked-On: #4197 Signed-off-by: Sainath Grandhi Acked-by: Victor Sun --- .../scenario_config/scenario_item.py | 3 +++ .../scenario_config/vm_configurations_c.py | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/misc/acrn-config/scenario_config/scenario_item.py b/misc/acrn-config/scenario_config/scenario_item.py index 7dcde5f5a..9f53ca711 100644 --- a/misc/acrn-config/scenario_config/scenario_item.py +++ b/misc/acrn-config/scenario_config/scenario_item.py @@ -76,6 +76,7 @@ class CfgOsKern: kern_entry_addr = {} kern_root_dev = {} kern_args_append = {} + ramdisk_mod = {} def __init__(self, scenario_file): self.scenario_info = scenario_file @@ -100,6 +101,8 @@ class CfgOsKern: self.scenario_info, "os_config", "kern_entry_addr") self.kern_root_dev = scenario_cfg_lib.get_leaf_tag_map( self.scenario_info, "os_config", "rootfs") + self.ramdisk_mod = scenario_cfg_lib.get_leaf_tag_map( + self.scenario_info, "os_config", "ramdisk_mod") self.kern_args_append = scenario_cfg_lib.get_leaf_tag_map( self.scenario_info, "boot_private", "bootargs") diff --git a/misc/acrn-config/scenario_config/vm_configurations_c.py b/misc/acrn-config/scenario_config/vm_configurations_c.py index 80ee66784..8463ada52 100644 --- a/misc/acrn-config/scenario_config/vm_configurations_c.py +++ b/misc/acrn-config/scenario_config/vm_configurations_c.py @@ -252,6 +252,9 @@ def gen_sdc_source(vm_info, config): print('\t\t\t.kernel_mod_tag = "{0}",'.format( vm_info.os_cfg.kern_mod[0]), file=config) print('\t\t\t.bootargs = {0},'.format(vm_info.os_cfg.kern_args[0]), file=config) + if (vm_info.os_cfg.ramdisk_mod[0].strip()): + print('\t\t\t.ramdisk_mod_tag = "{0}",'.format( + vm_info.os_cfg.ramdisk_mod[0]), file=config) print("\t\t},", file=config) # VUART err_dic = vuart_output(0, vm_info, config) @@ -343,6 +346,9 @@ def gen_sdc2_source(vm_info, config): print('\t\t\t.kernel_mod_tag = "{0}",'.format( vm_info.os_cfg.kern_mod[0]), file=config) print('\t\t\t.bootargs = {0},'.format(vm_info.os_cfg.kern_args[0]), file=config) + if (vm_info.os_cfg.ramdisk_mod[0].strip()): + print('\t\t\t.ramdisk_mod_tag = "{0}",'.format( + vm_info.os_cfg.ramdisk_mod[0]), file=config) print("\t\t},", file=config) # VUART err_dic = vuart_output(0, vm_info, config) @@ -465,6 +471,9 @@ def gen_logical_partition_source(vm_info, config): vm_info.os_cfg.kern_type[i]), file=config) print('\t\t\t.kernel_mod_tag = "{0}",'.format( vm_info.os_cfg.kern_mod[i]), file=config) + if (vm_info.os_cfg.ramdisk_mod[i].strip()): + print('\t\t\t.ramdisk_mod_tag = "{0}",'.format( + vm_info.os_cfg.ramdisk_mod[i]), file=config) print("\t\t\t.bootargs = VM{0}_CONFIG_OS_BOOTARG_CONSOLE\t\\".format(i), file=config) print("\t\t\t\tVM{0}_CONFIG_OS_BOOTARG_MAXCPUS\t\t\\".format(i), file=config) print("\t\t\t\tVM{0}_CONFIG_OS_BOOTARG_ROOT\t\t\\".format(i), file=config) @@ -526,8 +535,11 @@ def gen_industry_source(vm_info, config): vm_info.os_cfg.kern_type[i]), file=config) print('\t\t\t.kernel_mod_tag = "{0}",'.format( vm_info.os_cfg.kern_mod[i]), file=config) + if (vm_info.os_cfg.ramdisk_mod[i].strip()): + print('\t\t\t.ramdisk_mod_tag = "{0}",'.format( + vm_info.os_cfg.ramdisk_mod[i]), file=config) print("\t\t\t.bootargs = {0}".format( - vm_info.os_cfg.kern_args[i]), file=config) + vm_info.os_cfg.kern_args[i]), file=config) print("\t\t},", file=config) if i == 2: @@ -599,6 +611,9 @@ def gen_hybrid_source(vm_info, config): vm_info.os_cfg.kern_type[i]), file=config) print('\t\t\t.kernel_mod_tag = "{0}",'.format( vm_info.os_cfg.kern_mod[i]), file=config) + if (vm_info.os_cfg.ramdisk_mod[i].strip()): + print('\t\t\t.ramdisk_mod_tag = "{0}",'.format( + vm_info.os_cfg.ramdisk_mod[i]), file=config) if i < post_vm_i: if not vm_info.os_cfg.kern_args[i] or not vm_info.os_cfg.kern_args[i].strip():