Re: ACRN on CoffeeLake


Liu, Fuzhong
 

Hi Rajagopal,

The  iasl version is too old; it doesn’t match with acrn-dm of v1.4.

Please use the one in Clear build 31670(iasl version 20191018).

https://download.clearlinux.org/releases/31670/clear/

 

Thanks!

 

BR.

Fuzhong

 

From: acrn-users@... <acrn-users@...> On Behalf Of Rajagopal Aravindan via Lists.Projectacrn.Org
Sent: Thursday, November 21, 2019 9:00 PM
To: Liu, Fuzhong <fuzhong.liu@...>; acrn-users@...; Sun, Victor <victor.sun@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hello Victor & Fuzhong,

 

Thanks for pitching in Fuzhong.

 

>>Could you please share the SOS kernel version you used?

We tried 2 kernels for SOS, as below ...

  1. 4.19.0-22.iot-lts2018-sos - ClearLinux's pre-built kernel
  2. 4.19.73-PKT-190919T160721Z-00001-g7a3835deba16 - Built from source https://github.com/projectacrn/acrn-kernel/

>>Anyway, please remove -s 2,pci-gvt -G "$2" \ in your script; and have a try.

We ran into the error below (my signature).



>>acrn-dm -v

DM version is: 1.4-unstable-7b0cafa8-dirty (daily tag:acrn-2019w43.5-140000p), build by root@2019-11-20 10:51:28

[ acrn-2019w43.5-140000p is the daily tag which i picked from release page. Not sure why this gives DM version as unstable!! ]



>>/usr/sbin/iasl -v

Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20180105
Copyright (c) 2000 - 2018 Intel Corporation

 

Thanks,

Rajagopal

 

cpu1 online=0

cpu2 online=0

cpu3 online=0

SW_LOAD: get kernel path /lib/modules/kernel/default-iot-lts2018

SW_LOAD: get ovmf path /usr/share/acrn/bios/OVMF.fd, size 0x200000

pm by vuart node-index = 0

logger: name=console, level=4

logger: name=kmsg, level=3

logger: name=disk, level=5

vm_create: vm1

VHM api version 1.0

vm_setup_memory: size=0x80000000

open hugetlbfs file /run/hugepage/acrn/huge_lv1/vm1/D279543825D611E8864ECB7A18B34643

open hugetlbfs file /run/hugepage/acrn/huge_lv2/vm1/D279543825D611E8864ECB7A18B34643

level 0 free/need pages:1/1 page size:0x200000

level 1 free/need pages:2/2 page size:0x40000000

 

try to setup hugepage with:

level 0 - lowmem 0x0, biosmem 0x200000, highmem 0x0

level 1 - lowmem 0x80000000, biosmem 0x0, highmem 0x0

total_size 0x180000000

 

mmap ptr 0x0x7f25be079000 -> baseaddr 0x0x7f25c0000000

mmap 0x80000000@0x7f25c0000000

touch 2 pages with pagesz 0x40000000

mmap 0x200000@0x7f26bfe00000

touch 1 pages with pagesz 0x200000

 

really setup hugepage with:

level 0 - lowmem 0x0, biosmem 0x200000, highmem 0x0

level 1 - lowmem 0x80000000, biosmem 0x0, highmem 0x0

vm_init_vdevs

pci init hostbridge

pci init lpc

pci init virtio-blk

pci init virtio-net

pci init virtio-console

pci init virtio-hyper_dmabuf

pci init virtio-rnd

tpm: init_vtpm2:Invalid socket path!

polling 38...

Listening 38...

/tmp/dm.XBeZ4MB     46: [0004] Address : fec00000

    Error    6303 -                          ^ Integer too large for target (00000000FEC00000 - max 1 bytes)

/tmp/dm.XBeZ4MB     58: [0001] Subtable Type : 02

    Error    6302 -        Flag value is too large ^  (Maximum 1 bit)

/tmp/dm.XBeZ4MB     62: [0004] Interrupt : 00000009

    Error    6302 -    Flag value is too large ^  (Maximum 2 bit)

/tmp/dm.XBeZ4MB     63: [0002] Flags (decoded below) : 000D

    Error    6302 -                Flag value is too large ^  (Maximum 2 bit)

acpi_build failed, error=-1

pci deinit hostbridge

pci deinit lpc

pci deinit virtio-blk

pci deinit virtio-net

vtnet tx thread closing...

pci deinit virtio-console

pci deinit virtio-hyper_dmabuf

pci deinit virtio-rnd

mngr_client_new: Failed to accept from fd 38, err: Invalid argument

Stop listening 38...

Stop polling 38...


From: acrn-users@... <acrn-users@...> on behalf of Liu, Fuzhong <fuzhong.liu@...>
Sent: Thursday, November 21, 2019 4:13 PM
To:
acrn-users@... <acrn-users@...>; Sun, Victor <victor.sun@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hi Rajagopal

Is GVT-g patches included in your SOS kernel? Could you please share the SOS kernel version you used?

Anyway, please remove -s 2,pci-gvt -G "$2" \ in your script; and have a try.

If the issue is still there, please run following cmd in sos:

acrn-dm -v

/usr/sbin/iasl -v

 

Thanks!

BR.

Fuzhong

 

From: acrn-users@... <acrn-users@...> On Behalf Of Rajagopal Aravindan via Lists.Projectacrn.Org
Sent: Thursday, November 21, 2019 3:40 PM
To: Sun, Victor <victor.sun@...>; acrn-users@...
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hello Victor,

 

>>Please post your UOS launch script.

PFB, my signature.

 

Thanks,

Rajagopal

 

UOS launch script

 

#!/bin/bash

# Copyright (C) 2019 Intel Corporation.

# SPDX-License-Identifier: BSD-3-Clause

 

offline_path="/sys/class/vhm/acrn_vhm"

 

# Check the device file of /dev/acrn_hsm to determine the offline_path

if [ -e "/dev/acrn_hsm" ]; then

offline_path="/sys/class/acrn/acrn_hsm"

fi

 

 

function run_container()

{

vm_name=vm1

config_src="/usr/share/acrn/samples/nuc/runC.json"

shell="/usr/share/acrn/conf/add/$vm_name.sh"

arg_file="/usr/share/acrn/conf/add/$vm_name.args"

runc_bundle="/usr/share/acrn/conf/add/runc/$vm_name"

rootfs_dir="/usr/share/acrn/conf/add/runc/rootfs"

config_dst="$runc_bundle/config.json"

 

 

input=$(runc list -f table | awk '{print $1}''{print $3}')

arr=(${input// / })

 

for((i=0;i<${#arr[@]};i++))

do

if [ "$vm_name" = "${arr[$i]}" ]; then

if [ "running" = "${arr[$i+1]}" ]; then

echo "runC instance ${arr[$i]} is running"

exit

else

runc kill ${arr[$i]}

runc delete ${arr[$i]}

fi

fi

done

vmsts=$(acrnctl list)

vms=(${vmsts// / })

for((i=0;i<${#vms[@]};i++))

do

if [ "$vm_name" = "${vms[$i]}" ]; then

if [ "stopped" != "${vms[$i+1]}" ]; then

echo "Uos ${vms[$i]} ${vms[$i+1]}"

acrnctl stop ${vms[$i]}

       fi

fi

done

 

 

if [ ! -f "$shell" ]; then

echo "Pls add the vm at first!"

exit

fi

 

if [ ! -f "$arg_file" ]; then

echo "Pls add the vm args!"

exit

fi

 

 

if [ ! -d "$rootfs_dir" ]; then

mkdir -p "$rootfs_dir"

fi

if [ ! -d "$runc_bundle" ]; then

mkdir -p "$runc_bundle"

fi

if [ ! -f "$config_dst" ]; then

cp  "$config_src"  "$config_dst"

args=$(sed '{s/-C//g;s/^[ \t]*//g;s/^/\"/;s/ /\",\"/g;s/$/\"/}' ${arg_file})

sed -i "s|\"sh\"|\"$shell\", $args|" $config_dst

fi

runc run --bundle $runc_bundle -d $vm_name

echo "The runC container is running in backgroud"

echo "'#runc exec <vmname> bash' to login the container bash"

exit

}

 

function launch_clear()

{

mac=$(cat /sys/class/net/e*/address)

vm_name=vm$1

mac_seed=${mac:9:8}-${vm_name}

 

#check if the vm is running or not

vm_ps=$(pgrep -a -f acrn-dm)

result=$(echo $vm_ps | grep -w "${vm_name}")

if [[ "$result" != "" ]]; then

  echo "$vm_name is running, can't create twice!"

  exit

fi

 

#logger_setting, format: logger_name,level; like following

logger_setting="--logger_setting console,level=4;kmsg,level=3;disk,level=5"

 

#for pm by vuart setting

pm_channel="--pm_notify_channel uart "

pm_by_vuart="--pm_by_vuart pty,/run/acrn/life_mngr_"$vm_name

pm_vuart_node=" -s 1:0,lpc -l com2,/run/acrn/life_mngr_"$vm_name

 

#for memsize setting

mem_size=2048M

 

acrn-dm -A -m $mem_size -s 0:0,hostbridge \

  -s 2,pci-gvt -G "$2" \

  -s 5,virtio-console,@stdio:stdio_port \

  -s 6,virtio-hyper_dmabuf \

  -s 3,virtio-blk,/home/ghost/acrn_new/uos/clear-26440-kvm.img \

  -k /lib/modules/kernel/default-iot-lts2018 \

  -s 4,virtio-net,tap0 \

  -s 7,virtio-rnd \

  --ovmf /usr/share/acrn/bios/OVMF.fd \

  $pm_channel $pm_by_vuart $pm_vuart_node \

  $logger_setting \

  --mac_seed $mac_seed \

  $vm_name

}

 

#add following cmdline to grub.cfg and update kernel

#when launching LaaG by OVMF

#rw rootwait maxcpus=1 nohpet console=tty0 console=hvc0

#console=ttyS0 no_timer_check ignore_loglevel

#log_buf_len=16M consoleblank=0

#tsc=reliable i915.avail_planes_per_pipe="64 448 8"

#i915.enable_hangcheck=0 i915.nuclear_pageflip=1

#i915.enable_guc_loading=0

#i915.enable_guc_submission=0 i915.enable_guc=0

 

# offline SOS CPUs except BSP before launch UOS

for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do

        online=`cat $i/online`

        idx=`echo $i | tr -cd "[1-99]"`

        echo cpu$idx online=$online

        if [ "$online" = "1" ]; then

                echo 0 > $i/online

# during boot time, cpu hotplug may be disabled by pci_device_probe during a pci module insmod

while [ "$online" = "1" ]; do

sleep 1

echo 0 > $i/online

online=`cat $i/online`

done

                echo $idx > ${offline_path}/offline_cpu

        fi

done

 

 

if [ "$1" = "-C" ];then

echo "runc_container"

run_container

else

launch_clear 1 "64 448 8" 0x070F00

fi

 


From: acrn-users@... <acrn-users@...> on behalf of Victor Sun <victor.sun@...>
Sent: Thursday, November 21, 2019 11:18 AM
To:
acrn-users@... <acrn-users@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hi Rajagopal,

 

Please post your UOS launch script.

 

BR,

Victor

 

On 11/21/2019 1:41 PM, Rajagopal Aravindan via Lists.Projectacrn.Org wrote:

Hello Victor,

 

W.r.t the subject, we were able to get ACRN to boot into SOS.

However, when trying  to start UOS we run into the below error

 

GVT: open /sys/kernel/gvt/control/create_gvt_instance failed

GVT: init failed

: No such file or directory

pci pci-gvt init failed

 

I guess its related to graphics virtualization but not able to get past that.

 

Any inputs on this, please ?

 

PFB (my signature) the board & sdc xmls.

 

Thanks,

Rajagopal

 

board.xml

<acrn-config board="acer">
  <BIOS_INFO>
  BIOS Information
  Vendor: Acer
  Version: P21-A1E
  Release Date: 04/12/2019
  BIOS Revision: 5.12
  </BIOS_INFO>
 
  <BASE_BOARD_INFO>
  Base Board Information
  Manufacturer: Acer
  Product Name: H310CH5-M23
  Version: P21-A1E
  </BASE_BOARD_INFO>
 
  <PCI_DEVICE>
  00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
  00:02.0 VGA compatible controller: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model
  Region 0: Memory at de000000 (64-bit, non-prefetchable) [size=16M]
  Region 2: Memory at c0000000 (64-bit, prefetchable) [size=256M]
  00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
  Region 0: Memory at df12f000 (64-bit, non-prefetchable) [disabled] [size=4K]
  00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
  Region 0: Memory at df110000 (64-bit, non-prefetchable) [size=64K]
  00:14.2 Signal processing controller: Intel Corporation 200 Series PCH Thermal Subsystem
  Region 0: Memory at df12e000 (64-bit, non-prefetchable) [size=4K]
  00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
  Region 0: Memory at df12d000 (64-bit, non-prefetchable) [size=4K]
  00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
  Region 0: Memory at df128000 (32-bit, non-prefetchable) [size=8K]
  Region 1: Memory at df12c000 (32-bit, non-prefetchable) [size=256]
  Region 5: Memory at df12b000 (32-bit, non-prefetchable) [size=2K]
  00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)
  00:1f.0 ISA bridge: Intel Corporation Device a2ca
  00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
  Region 0: Memory at df124000 (32-bit, non-prefetchable) [disabled] [size=16K]
  00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
  Region 0: Memory at df120000 (64-bit, non-prefetchable) [size=16K]
  Region 4: Memory at df100000 (64-bit, non-prefetchable) [size=64K]
  00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
  Region 0: Memory at df12a000 (64-bit, non-prefetchable) [size=256]
  01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
  Region 2: Memory at df004000 (64-bit, non-prefetchable) [size=4K]
  Region 4: Memory at df000000 (64-bit, non-prefetchable) [size=16K]
  </PCI_DEVICE>
 
  <PCI_VID_PID>
  00:00.0 0600: 8086:3e1f (rev 08)
  00:02.0 0300: 8086:3e91
  00:08.0 0880: 8086:1911
  00:14.0 0c03: 8086:a2af
  00:14.2 1180: 8086:a2b1
  00:16.0 0780: 8086:a2ba
  00:17.0 0106: 8086:a282
  00:1c.0 0604: 8086:a294 (rev f0)
  00:1f.0 0601: 8086:a2ca
  00:1f.2 0580: 8086:a2a1
  00:1f.3 0403: 8086:a2f0
  00:1f.4 0c05: 8086:a2a3
  01:00.0 0200: 10ec:8168 (rev 15)
  </PCI_VID_PID>
 
  <WAKE_VECTOR_INFO>
  #define WAKE_VECTOR_32          0xB65B0F0CUL
  #define WAKE_VECTOR_64          0xB65B0F18UL
  </WAKE_VECTOR_INFO>
 
  <RESET_REGISTER_INFO>
  #define RESET_REGISTER_ADDRESS  0xCF9UL
  #define RESET_REGISTER_SPACE_ID SPACE_SYSTEM_IO
  #define RESET_REGISTER_VALUE    0x6U
  </RESET_REGISTER_INFO>
 
  <PM_INFO>
  #define PM1A_EVT_SPACE_ID       SPACE_SYSTEM_IO
  #define PM1A_EVT_BIT_WIDTH      0x20U
  #define PM1A_EVT_BIT_OFFSET     0x0U
  #define PM1A_EVT_ADDRESS        0x1800UL
  #define PM1A_EVT_ACCESS_SIZE    0x2U
  #define PM1B_EVT_SPACE_ID       SPACE_SYSTEM_IO
  #define PM1B_EVT_BIT_WIDTH      0x0U
  #define PM1B_EVT_BIT_OFFSET     0x0U
  #define PM1B_EVT_ADDRESS        0x0UL
  #define PM1B_EVT_ACCESS_SIZE    0x2U
  #define PM1A_CNT_SPACE_ID       SPACE_SYSTEM_IO
  #define PM1A_CNT_BIT_WIDTH      0x10U
  #define PM1A_CNT_BIT_OFFSET     0x0U
  #define PM1A_CNT_ADDRESS        0x1804UL
  #define PM1A_CNT_ACCESS_SIZE    0x2U
  #define PM1B_CNT_SPACE_ID       SPACE_SYSTEM_IO
  #define PM1B_CNT_BIT_WIDTH      0x0U
  #define PM1B_CNT_BIT_OFFSET     0x0U
  #define PM1B_CNT_ADDRESS        0x0UL
  #define PM1B_CNT_ACCESS_SIZE    0x2U
  </PM_INFO>
 
  <S3_INFO>
  #define S3_PKG_VAL_PM1A         0x5U
  #define S3_PKG_VAL_PM1B         0U
  #define S3_PKG_RESERVED         0x0U
  </S3_INFO>
 
  <S5_INFO>
  #define S5_PKG_VAL_PM1A         0x7U
  #define S5_PKG_VAL_PM1B         0U
  #define S5_PKG_RESERVED         0x0U
  </S5_INFO>
 
  <DRHD_INFO>
  #define DRHD_COUNT              2U
 
  #define DRHD0_DEV_CNT           0x1U
  #define DRHD0_SEGMENT           0x0U
  #define DRHD0_FLAGS             0x0U
  #define DRHD0_REG_BASE          0xFED90000UL
  #define DRHD0_IGNORE            true
  #define DRHD0_DEVSCOPE0_TYPE    0x1U
  #define DRHD0_DEVSCOPE0_ID      0x0U
  #define DRHD0_DEVSCOPE0_BUS     0x0U
  #define DRHD0_DEVSCOPE0_PATH    0x10U
 
  #define DRHD1_DEV_CNT           0x2U
  #define DRHD1_SEGMENT           0x0U
  #define DRHD1_FLAGS             0x1U
  #define DRHD1_REG_BASE          0xFED91000UL
  #define DRHD1_IGNORE            false
  #define DRHD1_DEVSCOPE0_TYPE    0x3U
  #define DRHD1_DEVSCOPE0_ID      0x2U
  #define DRHD1_DEVSCOPE0_BUS     0xf0U
  #define DRHD1_DEVSCOPE0_PATH    0xf8U
  #define DRHD1_DEVSCOPE1_TYPE    0x4U
  #define DRHD1_DEVSCOPE1_ID      0x0U
  #define DRHD1_DEVSCOPE1_BUS     0x0U
  #define DRHD1_DEVSCOPE1_PATH    0xf8U
 
  </DRHD_INFO>
 
  <CPU_BRAND>
  "Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz"
  </CPU_BRAND>
 
  <CX_INFO>
  {{SPACE_FFixedHW, 0x00U, 0x00U, 0x00U, 0x00UL}, 0x01U, 0x01U, 0x00U},       /* C1 */
  {{SPACE_SYSTEM_IO, 0x08U, 0x00U, 0x00U, 0x1816UL}, 0x02U, 0x97U, 0x00U},     /* C2 */
  {{SPACE_SYSTEM_IO, 0x08U, 0x00U, 0x00U, 0x1819UL}, 0x03U, 0x40AU, 0x00U},     /* C3 */
  </CX_INFO>
 
  <PX_INFO>
  {0xE10UL, 0x00UL, 0x0AUL, 0x0AUL, 0x002400UL, 0x002400UL},         /* P0 */
  {0xD48UL, 0x00UL, 0x0AUL, 0x0AUL, 0x002200UL, 0x002200UL},         /* P1 */
  {0xC80UL, 0x00UL, 0x0AUL, 0x0AUL, 0x002000UL, 0x002000UL},         /* P2 */
  {0xBB8UL, 0x00UL, 0x0AUL, 0x0AUL, 0x001E00UL, 0x001E00UL},         /* P3 */
  {0xB54UL, 0x00UL, 0x0AUL, 0x0AUL, 0x001D00UL, 0x001D00UL},         /* P4 */
  {0xA8CUL, 0x00UL, 0x0AUL, 0x0AUL, 0x001B00UL, 0x001B00UL},         /* P5 */
  {0x9C4UL, 0x00UL, 0x0AUL, 0x0AUL, 0x001900UL, 0x001900UL},         /* P6 */
  {0x8FCUL, 0x00UL, 0x0AUL, 0x0AUL, 0x001700UL, 0x001700UL},         /* P7 */
  {0x834UL, 0x00UL, 0x0AUL, 0x0AUL, 0x001500UL, 0x001500UL},         /* P8 */
  {0x76CUL, 0x00UL, 0x0AUL, 0x0AUL, 0x001300UL, 0x001300UL},         /* P9 */
  {0x6A4UL, 0x00UL, 0x0AUL, 0x0AUL, 0x001100UL, 0x001100UL},         /* P10 */
  {0x5DCUL, 0x00UL, 0x0AUL, 0x0AUL, 0x000F00UL, 0x000F00UL},         /* P11 */
  {0x578UL, 0x00UL, 0x0AUL, 0x0AUL, 0x000E00UL, 0x000E00UL},         /* P12 */
  {0x4B0UL, 0x00UL, 0x0AUL, 0x0AUL, 0x000C00UL, 0x000C00UL},         /* P13 */
  {0x3E8UL, 0x00UL, 0x0AUL, 0x0AUL, 0x000A00UL, 0x000A00UL},         /* P14 */
  {0x320UL, 0x00UL, 0x0AUL, 0x0AUL, 0x000800UL, 0x000800UL},         /* P15 */
  </PX_INFO>
 
  <CLOS_INFO>
  clos supported by cache:False
  clos max:0
  </CLOS_INFO>
 
  <SYSTEM_RAM_INFO>
  00001000-00057fff : System RAM
  00059000-0009dfff : System RAM
  00100000-3fffffff : System RAM
  40400000-ae6bafff : System RAM
  ae6bd000-b58b7fff : System RAM
  b6540000-b6549fff : System RAM
  b6ffe000-b6ffefff : System RAM
  100000000-23effffff : System RAM
  </SYSTEM_RAM_INFO>
 
  <BLOCK_DEVICE_INFO>
  /dev/sda3: TYPE="ext4"
  /dev/sda4: TYPE="ext4"
  </BLOCK_DEVICE_INFO>
 
  <TTYS_INFO>
  seri:/dev/ttyS0 type:portio base:0x3F8 irq:4
  </TTYS_INFO>
 
  <AVAILABLE_IRQ_INFO>
  3, 5, 6, 7, 10, 11, 12, 13, 14, 15
  </AVAILABLE_IRQ_INFO>
 
  <TOTAL_MEM_INFO>
  7975552 kB
  </TOTAL_MEM_INFO>
 
  <CPU_PROCESSOR_INFO>
  0, 1, 2, 3
  </CPU_PROCESSOR_INFO>
 
</acrn-config>

 

sdc.xml

<?xml version='1.0' encoding='utf-8'?>
<acrn-config board="acer" scenario="sdc">
    <vm id="0">
        <load_order desc="Specify the VM by its load order: PRE_LAUNCHED_VM, SOS_VM or POST_LAUNCHED_VM." readonly="true">SOS_VM</load_order>
        <name desc="Specify the VM name which will be shown in hypervisor console command: vm_list.">ACRN SOS VM</name>
        <uuid configurable="0" desc="vm uuid">dbbbd434-7a57-4216-a12c-2201f1ab0240</uuid>
        <guest_flags desc="Select all applicable flags for the VM" multiselect="true">
            <guest_flag>GUEST_FLAG_HIGHEST_SEVERITY</guest_flag>
        </guest_flags>
        <clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution." />
        <memory>
            <start_hpa configurable="0" desc="The start physical address in host for the VM">0</start_hpa>
            <size configurable="0" desc="The memory size in Bytes for the VM">CONFIG_SOS_RAM_SIZE</size>
        </memory>
        <os_config>
            <name desc="Specify the OS name of VM, currently it is not referenced by hypervisor code.">ACRN Service OS</name>
            <kern_type desc="Specify the kernel image type so that hypervisor could load it correctly. Currently support KERNEL_BZIMAGE and KERNEL_ZEPHYR.">KERNEL_BZIMAGE</kern_type>
            <kern_mod desc="The tag for kernel image which act as multiboot module, it must exactly match the module tag in GRUB multiboot cmdline.">Linux_bzImage</kern_mod>
            <bootargs configurable="0" desc="Specify kernel boot arguments">SOS_VM_BOOTARGS</bootargs>
        </os_config>
        <vuart id="0">
            <type configurable="0" desc="vCOM1 type">VUART_LEGACY_PIO</type>
            <base desc="vUART0 (A.K.A COM1) enabling switch. Enable by exposing its base address, disable by returning invalid base address." readonly="true">INVALID_COM_BASE</base>
            <irq configurable="0" desc="vCOM1 irq">SOS_COM1_IRQ</irq>
        </vuart>
        <vuart id="1">
            <type configurable="0" desc="vCOM2 type">VUART_LEGACY_PIO</type>
            <base desc="vUART1 (A.K.A COM2) enabling switch. Enable by exposing its base address, disable by returning invalid base address.">INVALID_COM_BASE</base>
            <irq configurable="0" desc="vCOM2 irq">SOS_COM2_IRQ</irq>
            <target_vm_id desc="COM2 is used for VM communications. When it is enabled, please specify which target VM that current VM connect to.">1</target_vm_id>
            <target_uart_id configurable="0" desc="target vUART ID that vCOM2 connect to">1</target_uart_id>
        </vuart>
        <pci_dev_num configurable="0" desc="pci devices number">SOS_EMULATED_PCI_DEV_NUM</pci_dev_num>
        <pci_devs configurable="0" desc="pci devices list">sos_pci_devs</pci_devs>
        <board_private>
            <rootfs desc="rootfs for Linux kernel">/dev/sda3</rootfs>
            <console desc="ttyS console for Linux kernel">/dev/ttyS0</console>
            <bootargs desc="Specify kernel boot arguments">        rw rootwait console=tty0 consoleblank=0 no_timer_check quiet loglevel=3
        i915.nuclear_pageflip=1 i915.avail_planes_per_pipe=0x01010F i915.domain_plane_owners=0x011111110000 i915.enable_gvt=1
        </bootargs>
        </board_private>
    </vm>
    <vm id="1">
        <load_order desc="Specify the VM by its load order: PRE_LAUNCHED_VM, SOS_VM or POST_LAUNCHED_VM." readonly="true">POST_LAUNCHED_VM</load_order>
        <uuid configurable="0" desc="vm uuid">d2795438-25d6-11e8-864e-cb7a18b34643</uuid>
        <guest_flags desc="Select all applicable flags for the VM" multiselect="true">
            <guest_flag />
        </guest_flags>
        <vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
            <pcpu_id>1</pcpu_id>
            <pcpu_id>2</pcpu_id>
            <pcpu_id>3</pcpu_id>
        </vcpu_affinity>
        <clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution." />
        <epc_section desc="epc section">
            <base desc="SGX EPC section base, must be page aligned">0</base>
            <size desc="SGX EPC section size in Bytes, must be page aligned">0</size>
        </epc_section>
        <vuart id="0">
            <type configurable="0" desc="vCOM1 type">VUART_LEGACY_PIO</type>
            <base desc="vUART0 (A.K.A COM1) enabling switch. Enable by exposing its base address, disable by returning invalid base address." >INVALID_COM_BASE</base>
            <irq configurable="0" desc="vCOM1 irq">COM1_IRQ</irq>
        </vuart>
        <vuart id="1">
            <type configurable="0" desc="vCOM2 type">VUART_LEGACY_PIO</type>
            <base desc="vUART1 (A.K.A COM2) enabling switch. Enable by exposing its base address, disable by returning invalid base address.">INVALID_COM_BASE</base> 
            <irq configurable="0" desc="vCOM2 irq">COM2_IRQ</irq>
            <target_vm_id desc="COM2 is used for VM communications. When it is enabled, please specify which target VM that current VM connect to.">0</target_vm_id>
            <target_uart_id configurable="0" desc="target vUART ID that vCOM2 connect to">1</target_uart_id>
        </vuart>
    </vm>
    <vm configurable="0" desc="specific for Kata" id="2">
        <load_order configurable="0" desc="Specify the VM by its load order: PRE_LAUNCHED_VM, SOS_VM or POST_LAUNCHED_VM.">POST_LAUNCHED_VM</load_order>
        <uuid configurable="0" desc="vm uuid">a7ada506-1ab0-4b6b-a0da-e513ca9b8c2f</uuid>
        <clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
        <vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
            <pcpu_id>3</pcpu_id>
        </vcpu_affinity>
        <epc_section desc="epc section">
            <base desc="SGX EPC section base, must be page aligned">0</base>
            <size desc="SGX EPC section size in Bytes, must be page aligned">0</size>
        </epc_section>
        <vuart id="0">
            <type configurable="0" desc="vCOM1 type">VUART_LEGACY_PIO</type>
            <base configurable="0" desc="vUART0 (A.K.A COM1) enabling switch. Enable by exposing its base address, disable by returning invalid base address.">INVALID_COM_BASE</base>
            <irq configurable="0" desc="vCOM1 irq">COM1_BASE</irq>
        </vuart>
        <vuart id="1">
            <type configurable="0" desc="vCOM2 type">VUART_LEGACY_PIO</type>
            <base configurable="0" desc="vUART1 (A.K.A COM2) enabling switch. Enable by exposing its base address, disable by returning invalid base address.">INVALID_COM_BASE</base>
            <irq configurable="0" desc="vCOM2 irq">COM2_BASE</irq>
            <target_vm_id desc="COM2 is used for VM communications. When it is enabled, please specify which target VM that current VM connect to.">0</target_vm_id>
            <target_uart_id configurable="0" desc="target vUART ID that vCOM2 connect to">0</target_uart_id>
        </vuart>
    </vm>
</acrn-config>

Disclaimer: "This message is intended only for the designated recipient(s). It may contain confidential or proprietary information and may be subject to other confidentiality protections. If you are not a designated recipient, you may not review, copy or distribute this message. Please notify the sender by e-mail and delete this message. GlobalEdge does not accept any liability for virus infected mails."

Disclaimer: "This message is intended only for the designated recipient(s). It may contain confidential or proprietary information and may be subject to other confidentiality protections. If you are not a designated recipient, you may not review, copy or distribute this message. Please notify the sender by e-mail and delete this message. GlobalEdge does not accept any liability for virus infected mails."

Disclaimer: "This message is intended only for the designated recipient(s). It may contain confidential or proprietary information and may be subject to other confidentiality protections. If you are not a designated recipient, you may not review, copy or distribute this message. Please notify the sender by e-mail and delete this message. GlobalEdge does not accept any liability for virus infected mails."

Join acrn-users@lists.projectacrn.org to automatically receive all group messages.