From 212d030b9a76ce07182aa94b9e9ff6cbd10e4a4c Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Mon, 9 Dec 2019 09:46:46 +0800 Subject: [PATCH] acrn-config: add 'poweroff_channel' support for launch config Add pm_channel support to parse and get 'poweroff_channel' item value from launch config files, these values are selectable by user. Tracked-On: #4212 Signed-off-by: Wei Liu Acked-by: Victor Sun --- misc/acrn-config/launch_config/com.py | 17 ++++++----------- .../acrn-config/launch_config/launch_cfg_gen.py | 1 + misc/acrn-config/launch_config/launch_item.py | 1 + misc/acrn-config/library/launch_cfg_lib.py | 8 ++++++++ 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/misc/acrn-config/launch_config/com.py b/misc/acrn-config/launch_config/com.py index 0fcf58f62..44da3cb64 100644 --- a/misc/acrn-config/launch_config/com.py +++ b/misc/acrn-config/launch_config/com.py @@ -501,15 +501,6 @@ def dm_arg_set(names, sel, virt_io, dm, vmid, config): if uos_type in ("CLEARLINUX", "ANDROID", "ALIOS"): if uos_type in ("ANDROID", "ALIOS"): print(" -s {},virtio-rpmb \\".format(launch_cfg_lib.virtual_dev_slot("virtio-rpmb")), file=config) - if board_name == "apl-up2": - print(" --pm_notify_channel power_button \\", file=config) - if board_name == "apl-mrb": - print(" --pm_notify_channel ioc \\", file=config) - - if is_nuc_whl_clr(names, vmid): - print(" --pm_notify_channel uart \\", file=config) - print(' --pm_by_vuart pty,/run/acrn/life_mngr_$vm_name \\', file=config) - print(' -l com2,/run/acrn/life_mngr_$vm_name \\', file=config) # mac_seed if uos_type in ("CLEARLINUX", "ANDROID", "ALIOS"): @@ -521,7 +512,6 @@ def dm_arg_set(names, sel, virt_io, dm, vmid, config): print(" --lapic_pt \\", file=config) print(" --rtvm \\", file=config) print(" --virtio_poll 1000000 \\", file=config) - print(" --pm_notify_channel uart --pm_by_vuart tty,/dev/ttyS1 \\", file=config) # vxworks if uos_type == "VXWORKS": @@ -538,7 +528,12 @@ def dm_arg_set(names, sel, virt_io, dm, vmid, config): print("{} \\".format(dm_str), file=config) print(" --windows \\", file=config) - # WA: XHCI args set + # pm_channel set + if dm['pm_channel'][vmid] and dm['pm_channel'][vmid] != None: + pm_key = dm['pm_channel'][vmid] + print(" {} \\".format(launch_cfg_lib.PM_CHANNEL_DIC[pm_key]), file=config) + + # XHCI args set xhci_args_set(dm, vmid, config) # VIRTIO args set diff --git a/misc/acrn-config/launch_config/launch_cfg_gen.py b/misc/acrn-config/launch_config/launch_cfg_gen.py index f71ed5743..3349761e5 100644 --- a/misc/acrn-config/launch_config/launch_cfg_gen.py +++ b/misc/acrn-config/launch_config/launch_cfg_gen.py @@ -46,6 +46,7 @@ def get_launch_item_values(board_info): launch_item_values["uos,vbootloader"] = launch_cfg_lib.BOOT_TYPE launch_item_values['uos,vuart0'] = launch_cfg_lib.DM_VUART0 + launch_item_values['uos,poweroff_channel'] = launch_cfg_lib.PM_CHANNEL launch_item_values['uos,gvt_args'] = launch_cfg_lib.GVT_ARGS return launch_item_values diff --git a/misc/acrn-config/launch_config/launch_item.py b/misc/acrn-config/launch_config/launch_item.py index 6d428eee1..215e6a20c 100644 --- a/misc/acrn-config/launch_config/launch_item.py +++ b/misc/acrn-config/launch_config/launch_item.py @@ -20,6 +20,7 @@ class AcrnDmArgs: self.args["gvt_args"] = launch_cfg_lib.get_leaf_tag_map(self.launch_info, "gvt_args") self.args["vbootloader"] = launch_cfg_lib.get_leaf_tag_map(self.launch_info, "vbootloader") self.args["vuart0"] = launch_cfg_lib.get_leaf_tag_map(self.launch_info, "vuart0") + self.args["pm_channel"] = launch_cfg_lib.get_leaf_tag_map(self.launch_info, "poweroff_channel") self.args["off_pcpus"] = launch_cfg_lib.get_leaf_tag_map(self.scenario_info, "vcpu_affinity", "pcpu_id") self.args["xhci"] = launch_cfg_lib.get_leaf_tag_map(self.launch_info, "usb_xhci") diff --git a/misc/acrn-config/library/launch_cfg_lib.py b/misc/acrn-config/library/launch_cfg_lib.py index 9c1070b84..1f594bab3 100644 --- a/misc/acrn-config/library/launch_cfg_lib.py +++ b/misc/acrn-config/library/launch_cfg_lib.py @@ -48,6 +48,14 @@ PT_SLOT = { POST_UUID_DIC = {} +PM_CHANNEL = ['', 'IOC', 'PowerButton', 'vuart1(pty)', 'vuart1(tty)'] +PM_CHANNEL_DIC = { + None:'', + 'IOC':'--pm_notify_channel ioc', + 'PowerButton':'--pm_notify_channel power_button', + 'vuart1(pty)':'--pm_notify_channel uart \\\n\t--pm_by_vuart pty,/run/acrn/life_mngr_$vm_name \\\n\t-l com2,/run/acrn/life_mngr_$vm_name', + 'vuart1(tty)':'--pm_notify_channel uart --pm_by_vuart tty,/dev/ttyS1', +} def prepare(check_git):