QNX Hypervisor Customization Guide 80-PM231-1
qnx FDE配置
target/hypervisor/host/qcpe_config/8540/QCPE_config_8540_la.xml
<fde_config>
<!-- Total Slots for Makena are 64, of which 10 are reserved -->
<!-- QNX_HOST -->
<vm id="HOST" max_slots="2">
<!-- provide two blocks for unencrypted footer in the userdata partition. On a UFS device this is 8KB-->
<partition name_guest="userdata" name_host="userdata" unencrypted_footer_size="0x0" in_place_encrypted="False" />
<partition name_guest="misc" name_host="misc" unencrypted_footer_size="0x0" in_place_encrypted="False" />
</vm>
<vm id="2" max_slots="38" />
</fde_config>
qnx 启动qvm cmdline 配置
target/hypervisor/gvm/ivi/la/avb1-la.config
load /mnt/vm/images/linux-la.img
# CMDLINE for LA GVM
cmdline "console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 loglevel=9 print-fatal-signals=1 androidboot.console=ttyAMA0 androidboot.hardware=qcom androidboot.selinux=permissive androidboot.memcg=1 root=/dev/system init=/init androidboot.bootdevice=/dev/disk/system_inactive swiotlb=2048 skip_initramfs=1 pcie_ports=compat msm_cfg.cfg_sel=1"
fdt load /tmp/la.dtb
#initrd load /mnt/vm/images/initrd-arm64
在vmm_service中进行启动 qvm
avb1_conf_fname = fdt_get_vm_avb1_config(vmid);
load linux-la.img 加载dtb
qnx 分区表映射
target/hypervisor/gvm/ivi/la/la_dp_enabled_a.config
# dtbo /dev/block/vdp
vdev vdev-virtio-blk.so loc 0x1c250000 intr gic:145 threads 4 hostdev /dev/disk/la_dtbo_b
#bz
vdev vdev-virtio-blk.so loc 0x1c710000 intr gic:122 hostdev /dev/disk/la_boot_a
#by
vdev vdev-virtio-blk.so loc 0x1c695000 intr gic:117 hostdev /dev/disk/xbl_bkup_a
#ax
vdev vdev-virtio-blk.so loc 0x1c690000 intr gic:116 hostdev /dev/disk/svp_a
#aw
vdev vdev-virtio-blk.so loc 0x1c685000 intr gic:115 hostdev /dev/disk/imagefv_a
#av
vdev vdev-virtio-blk.so loc 0x1c680000 intr gic:114 hostdev /dev/disk/multiimgoem_a
#au
vdev vdev-virtio-blk.so loc 0x1c675000 intr gic:113 hostdev /dev/disk/shrm_a
#at
vdev vdev-virtio-blk.so loc 0x1c670000 intr gic:112 hostdev /dev/disk/smss_a
#as
vdev vdev-virtio-blk.so loc 0x1c665000 intr gic:111 hostdev /dev/disk/vbmeta_a
#ar
vdev vdev-virtio-blk.so loc 0x1c660000 intr gic:110 hostdev /dev/disk/cpucp_a
#aq
vdev vdev-virtio-blk.so loc 0x1c655000 intr gic:109 hostdev /dev/disk/boot_a
#ap
vdev vdev-virtio-blk.so loc 0x1c650000 intr gic:108 hostdev /dev/disk/devcfg_a
#ao
vdev vdev-virtio-blk.so loc 0x1c645000 intr gic:107 hostdev /dev/disk/abl_a
#an
vdev vdev-virtio-blk.so loc 0x1c640000 intr gic:106 hostdev /dev/disk/hyp_a
#am
vdev vdev-virtio-blk.so loc 0x1c635000 intr gic:105 hostdev /dev/disk/tz_a
#al
vdev vdev-virtio-blk.so loc 0x1c630000 intr gic:104 hostdev /dev/disk/aop_a
#ak
vdev vdev-virtio-blk.so loc 0x1c625000 intr gic:103 hostdev /dev/disk/xbl_config_a
#aj
vdev vdev-virtio-blk.so loc 0x1c620000 intr gic:121 hostdev /dev/disk/xbl_a
#ai
vdev vdev-virtio-blk.so loc 0x1c615000 intr gic:120 hostdev /dev/disk/ifs2_a
#ah
vdev vdev-virtio-blk.so loc 0x1c610000 intr gic:119 hostdev /dev/disk/system_a
#ag
vdev vdev-virtio-blk.so loc 0x1c595000 intr gic:40 hostdev /dev/disk/dsp_a
#af
vdev vdev-virtio-blk.so loc 0x1c575000 intr gic:40 hostdev /dev/disk/eolcfg
#ae
vdev vdev-virtio-blk.so loc 0x1c545000 intr gic:40 hostdev /dev/disk/xbl_bkup_b
#ad
vdev vdev-virtio-blk.so loc 0x1c525000 intr gic:40 hostdev /dev/disk/svp_b
#ac
vdev vdev-virtio-blk.so loc 0x1c515000 intr gic:40 hostdev /dev/disk/imagefv_b
#ab
vdev vdev-virtio-blk.so loc 0x1c555000 intr gic:40 hostdev /dev/disk/multiimgoem_b
#aa
vdev vdev-virtio-blk.so loc 0x1c495000 intr gic:40 hostdev /dev/disk/shrm_b
#z
vdev vdev-virtio-blk.so loc 0x1c485000 intr gic:40 hostdev /dev/disk/smss_b
#y
vdev vdev-virtio-blk.so loc 0x1c475000 intr gic:40 hostdev /dev/disk/vbmeta_b
#x
vdev vdev-virtio-blk.so loc 0x1c465000 intr gic:40 hostdev /dev/disk/cpucp_b
#w
vdev vdev-virtio-blk.so loc 0x1c455000 intr gic:40 hostdev /dev/disk/boot_b
#v
vdev vdev-virtio-blk.so loc 0x1c395000 intr gic:40 hostdev /dev/disk/devcfg_b
#u
vdev vdev-virtio-blk.so loc 0x1c345000 intr gic:40 hostdev /dev/disk/abl_b
#t
vdev vdev-virtio-blk.so loc 0x1c335000 intr gic:40 hostdev /dev/disk/hyp_b
#s
vdev vdev-virtio-blk.so loc 0x1c325000 intr gic:40 hostdev /dev/disk/tz_b
#r
vdev vdev-virtio-blk.so loc 0x1c315000 intr gic:40 hostdev /dev/disk/aop_b
#q
vdev vdev-virtio-blk.so loc 0x1c295000 intr gic:40 hostdev /dev/disk/xbl_config_b
#p
vdev vdev-virtio-blk.so loc 0x1c285000 intr gic:40 hostdev /dev/disk/xbl_b
#o
vdev vdev-virtio-blk.so loc 0x1c245000 intr gic:40 hostdev /dev/disk/la_boot_b
#n
vdev vdev-virtio-blk.so loc 0x1c235000 intr gic:40 hostdev /dev/disk/modem_b
#m
vdev vdev-virtio-blk.so loc 0x1c225000 intr gic:40 hostdev /dev/disk/dsp_b
#l
vdev vdev-virtio-blk.so loc 0x1c215000 intr gic:40 hostdev /dev/disk/bluetooth_b
#k
vdev vdev-virtio-blk.so loc 0x1c1e0000 intr gic:40 hostdev /dev/disk/ifs2_b
#j
vdev vdev-virtio-blk.so loc 0x1c1d0000 intr gic:40 hostdev /dev/disk/system_b
#i
vdev vdev-virtio-blk.so loc 0x1c155000 intr gic:86 threads 4 hostdev /dev/disk/la_vbmeta_b
#h
vdev vdev-virtio-blk.so loc 0x1c140000 intr gic:48 threads 4 hostdev /dev/disk/la_vbmeta_a
#g
vdev vdev-virtio-blk.so loc 0x1c130000 intr gic:46 threads 4 hostdev /dev/disk/la_misc
#f
vdev vdev-virtio-blk.so loc 0x1c120000 intr gic:45 threads 4 hostdev /dev/disk/bluetooth_a
#e
vdev vdev-virtio-blk.so loc 0x1c110000 intr gic:44 threads 4 hostdev /dev/disk/modem_a
#d
vdev vdev-virtio-blk.so loc 0x1c100000 intr gic:43 threads 4 hostdev /dev/disk/la_persist
#c
vdev vdev-virtio-blk.so loc 0x1c0f0000 intr gic:49 threads 4 hostdev /dev/disk/la_metadata
#b
vdev vdev-virtio-blk.so loc 0x1c0e0000 intr gic:39 threads 4 hostdev /dev/disk/la_userdata
#vda
vdev vdev-virtio-blk.so loc 0x1c0b0000 intr gic:40 threads 4 hostdev /dev/disk/la_super
~
Filepp sdm-host_la.dts target/filesets/dtsi/8540.dtsi 预处理生成host.dts dtc 编译生成host.dtb
最后还会反编译生成apps/qnx_ap/target/hypervisor/host/fdt_config/dtb/out/merged_host.dts
方便确认配置信息是否正确生成
apps/qnx_ap/tools/build/generate_res_mem.py