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 <sainath.grandhi@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
This commit is contained in:
Sainath Grandhi 2019-12-04 23:35:19 -08:00 committed by wenlingz
parent 2b9fa85647
commit 1fe1afd4c6
2 changed files with 19 additions and 1 deletions

View File

@ -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")

View File

@ -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():