//解析dts 获取node qcom_gvms
参考博客:https://blog.csdn.net/liaochaoyun/article/details/127427719
startup-qvmhost.sh startup.sh
1419 waitfor /dev/lcm_demo/display0
1420 if [ $RECOVERY_MODE -eq 0 ]; then
1421 log_launch $VMM_SERVICE_BINARY #启动 vmm_service
1422 $ON $VMM_SERVICE_ON_ARGS $VMM_SERVICE_BINARY $VMM_SERVICE_ARGS &
1423 log_launch $VMM_LIFECYCLE_BINARY
1424 $ON $VMM_LIFECYCLE_ON_ARGS $VMM_LIFECYCLE_BINARY $VMM_LIFECYCLE_ARGS &
1425 log_launch $VM_SSR_BE_BINARY
1426 $ON $VM_SSR_BE_ON_ARGS $VM_SSR_BE_BINARY $VM_SSR_BE_ARGS &
1427 fi
vmm_service load qvm
[19:28:32]Jan 01 08:00:04.779 vmm_service.1736789 default 16040 vmm_service[vmm_utils.c:693]: Ask qvm to load kernel @ phys addr = 0xdf280000
[19:28:32]Jan 01 08:00:04.782 vmm_service.1736789 default 16040 vmm_service[vmm_utils.c:721]: Ask qvm to load ramdisk @ phys addr = 0xe2db7000 continuous size: 23429645 bytes
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[0] = svs_dtach
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[1] = -n
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[2] = /tmp/android
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[3] = -r
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[4] = winch
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[5] = -o
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[6] = /var/log/la_gvm.txt
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[7] = qvm
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[8] = @/mnt/vm/images/linux-la.config
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[9] = @/dev/shmem/linux-la-mem.config
[19:28:32]Jan 01 08:00:04.799 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:850]: qvm cmdline arg[10] = @/mnt/vm/images/la_dp_enabled_a.config
[19:28:32]Jan 01 08:00:04.800 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:929]: Succefully locked the abilities for qvm
[19:28:32]Jun 19 10:40:14.043 vmm_service.1736789 default 16130 vmm_service[vmm_fsm.c:685]: update qvm pid to 2130035
# vmm_service -h
vmm_service: unrecognized option `-h'
Usage: vmm_service [OPTION]... [Value]...
---------------------------------------------------------------------------------------------------------
Short opt Long opt Description
---------------------------------------------------------------------------------------------------------
-i or --vmid : vmid (Not configurable)
-n or --vm_name : Name of the GVM (Not configurable)
--vm_config : VM Config file path
--vm_uid_gid_config : UID GID config file path
--vm_avb1_config : AVB1 config file path
--vm_recovery_config : VM recovery config file path
-b or --vm_starts_b4_vmm : GVM to be started before or after vmm service, <1> or <0>
-d or --vm_starts_by_default : GVM to be started by default, <1> or <0> (Not configurable)
-m or --vm_restart_mode_manual : GVM start manual mode, <1> or <0> (Not configurable)
-t or --vm_client_timeout : GVM client timeout value
-l or --vm_number_of_logs : Number of GVM logs
-a or --vm_avb_version : AVB version
-s or --slot_switch_config : Slot switch configuration <1> to enable <0> to disable
-p or --vm_partition_prefix : GVM prefix (Not configurable)
-v or --vm_dtb_variant : DTB variant
-T or --secpol_type : Secpol Type
-c or --vm_cmdline : GVM Command line
--dp_enabled_a_config : GVM DP enable _a config file path
--dp_enabled_b_config : GVM DP enable _b config file path
--dp_disabled_config : GVM DP disable config file path
-r or --vm_ramdisk_as_root : Ramdisk as root <1> or <0>
-D or --debug_mode : Enable or disable debug mode, It required to be set if we want to use command line options
-U or --uid_gid : vmm uid and gid value
---------------------------------------------------------------------------------------------------------
dtach - version 0.9, compiled on Jun 13 2020 at 20:19:49.
Usage: dtach -a <socket> <options>
dtach -A <socket> <options> <command...>
dtach -c <socket> <options> <command...>
dtach -n <socket> <options> <command...>
dtach -N <socket> <options> <command...>
dtach -p <socket>
Modes:
-a Attach to the specified socket.
-A Attach to the specified socket, or create it if it
does not exist, running the specified command.
-c Create a new socket and run the specified command.
-n Create a new socket and run the specified command detached.
-N Create a new socket and run the specified command detached,
and have dtach run in the foreground.
-p Copy the contents of standard input to the specified
socket.
Options:
-e <char> Set the detach character to <char>, defaults to ^\.
-E Disable the detach character.
-r <method> Set the redraw method to <method>. The valid methods are:
none: Don't redraw at all.
ctrl_l: Send a Ctrl L character to the program.
winch: Send a WINCH signal to the program.
-z Disable processing of the suspend key.
Report any bugs to <crigler@users.sourceforge.net>.
apps/qnx_ap/target/hypervisor/host/fdt_config/dtb/sdm-host_la.dts
Dtsi配置了qvm 启动参数 cdt_id
#include "8540.dtsi"
vm_config = "/mnt/vm/images/linux-la.config";
vm_recovery_config = "/mnt/vm/images/recovery-la.config";
vm_avb1_config = "/mnt/vm/images/avb1-la.config";
dp_enabled_a_config = "/mnt/vm/images/la_dp_enabled_a.config";
dp_enabled_b_config = "/mnt/vm/images/la_dp_enabled_b.config";
dp_disabled_config = "/mnt/vm/images/la_dp_disabled.config";
vm_uid_gid_config = "/mnt/vm/images/la_uid_gid.config";
8540.dtsi
qcom_gvms {
214 qcom_gvm1 {
215 vm_dtb_soc = <0x1CC>;
216 };
217 #if defined (__GUEST_TYPE_MULTI__) || defined (__GUEST_TYPE_LALA__)
218 qcom_gvm2 {
219 vm_dtb_soc = <0x1CC>;
220 };
221 #endif
/qnx_ap/AMSS/platform
const struct kpi_marker markers_replace[] = {
{ "ifs1_entry", 201, "SYS_BOOT_LOADER_END" },
{ "ifs1_exit", 201, "SYS_KERNEL_START" },
{ "openwfd_server: READY", 501, "SYS_Display_Ready"},
{ "/dev/audio_service", 501, "SYS_Audio_Ready"},
{ "openwfd_telltale start", 511, "CAR_Display_Telltails" },
{ "gears first frame done", 511, "HMI_Cluster" },
{ "videoCore: READY", 301, "SYS_Video_Ready"},
{ "audio_chime_csd_write", 501, "SYS_Audio_Chime"},
{ "ais_server: READY", 501, "SYS_Camera_Ready" },
{ "static splash ready", 501, "SYS_Static_Splash"},
{ "First decoder output frame after start", 504, "APP_Early_Welcome_Animation"},
{ "/dev/qcarcam Camera First Frame", 504, "APP_CSI_RVC"},
{ "EMAC0 DRIVER Attach Ready", 510, "SYS_Ethernet0_Ready" },
{ "EMAC1 DRIVER Attach Ready", 510, "SYS_Ethernet1_Ready" },
{ "vmm_service: LAUNCH", 501, "SYS_QVM_Launch" },
{ "ICD_Serializer-Init", 501, "SYS_DISP_ICD_Serializer_init"},
{ "CID_Serializer-Init", 501, "SYS_DISP_CID_Serializer_init"},
{ "HUD_Serializer-Init", 501, "SYS_DISP_HUD_Serializer_init"},
{ "CID_DP-Init", 501, "SYS_DISP_DP0_HOST_INIT"},
{ "ICD_DP-Init", 501, "SYS_DISP_DP1_HOST_INIT" },
{ "HUD_DSI-Init", 501, "SYS_DISP_DSI_HOST_INIT"},
{ "cpld_qnx_app Ready", 501, "SYS_CPLD_QNX_COMM_Init"},
{ "MAX96912E_DeSerializer_Init", 501, "SYS_INT_CAM_DeSerializer_init"},
{ "MAX96934D_DeSerializer_Init", 501, "SYS_EXT_CAM_DeSerializer_init"},
{ "kgsl: READY", 501, "SYS_GPU_Ready"},
{ "PBL, End", 201, "SYS_BOOT_PBL_END"},
{ "SBL1, Start", 201, "SYS_BOOT_LOAD_XBL_END"},
{ "SBL1, End", 201, "SYS_BOOT_XBL_END"},
{ "devb-ufs-qualcomm: LAUNCH", 501, "SYS_BOOT_UFS_INIT_START"},
{ "devb-ufs-qualcomm: READY", 501, "SYS_BOOT_UFS_INIT_END"},
{ "load_RichOS_kernel start", 501, "SYS_BOOT_KERNEL_LOAD_START"},
{ "load_RichOS_kernel done", 501, "SYS_BOOT_KERNEL_LOAD_END"}
};
/services/daemons/bmetrics_service/src/bmetric_service.c
const struct kpi_marker markers_replace[] = {
{ "ifs1_entry", 201, "SYS_BOOT_LOADER_END" },
{ "ifs1_exit", 201, "SYS_KERNEL_START" },
{ "openwfd_server: READY", 501, "SYS_Display_Ready"},
{ "/dev/audio_service", 501, "SYS_Audio_Ready"},
{ "openwfd_telltale start", 511, "CAR_Display_Telltails" },
{ "gears first frame done", 511, "HMI_Cluster" },
{ "videoCore: READY", 301, "SYS_Video_Ready"},
{ "audio_chime_csd_write", 501, "SYS_Audio_Chime"},
{ "ais_server: READY", 501,