Date   

ACRN Project Technical Community Meeting (2019/7~2019/12): @ Weekly Wednesday 11AM (China-Shanghai), Tuesday 7PM (US-West Coast), Wednesday 3AM (Europe-London)

Wang, Hongbo
 

Date: 12/4
Topic:  ACRN Coding Guideline Deviation
Description: In order to meet Functional Safety certification, ACRN source codes need to be MISRA-C compliant. In this talk, we'll introduce ACRN's coding guideline, how to maintain each patch set to follow the guideline and what you need to do if there's deviation.
 
WW Topic Presenter Status
WW02 TPM2.0 virtualization in ACRN DENG, Wei 1/9
WW03 Polling mode Virtio and its advantage for RT VM DENG, Jie 1/16
WW04 Buffer sharing from UOS to SOS, HyperDMA usage LIU, Xinyun 1/23
WW05 USB HUB Virtualization WU, Xiaoguang 1/30
WW07 ACRN Device Model QoS Design LIU, Long 2/13
WW08 ACRN Debug Tips CHEN, Jason 2/20
WW09 GVT-g debug trace tool GONG, Zhipeng 2/27
WW10 Kata Container Architecture: First Steps with ACRN Dhanraj, Vijay  3/6
WW11 One ACRN hypervisor to support multi-platform WU, Xiangyang 3/13
WW12 Power button key mediator design in ACRN LIU, Yuan 3/20
WW13 Local APIC Virtualization Enhancement for Intel KBL platform LI, Fei 3/27
WW14 Safety VM Support YIN, FengWei 4/3
WW15 How to customize GPIO in ACRN LIU, Yuan 4/10
WW16 ACRN Cache QoS support based on CAT TAO, Yuhong 4/17
WW17 ACRN Real-Time measurement Methodology LI, Wilson 4/24
WW19 I2C Virtualization CHEN, Conghui 5/8
WW20 SGX Virtualization in ACRN WU, Binbin 5/15
WW21 Logger Improvement on acrn-dm CAO, Minggui 5/22
WW22 AcrnGT Virtual Display Deep Dive HE, Min 5/29
WW23 Local APIC Emulation and Pass-through Grandhi, Sainath 6/5
WW25
 
ACRN Functional Safety: Understanding and Mitigating Inter-VM Interference MAO, Junjie 6/19
WW26 Enable VwWorks as RTVM on ACRN FU, Kaige 6/26
WW27 ACRN 2.0 New Architecture Sharing - 1/2 REN, Jack 7/3
WW28 ACRN 2.0 New Architecture Sharing- 2/2 REN, Jack 7/10
WW29 How to enable open vSwitch on ACRN LIU, Yuan 7/17
WW30 ACRN Configuration Design Tool SUN, Victor 7/24
WW31 Design of GOP Driver for GVT-g HE, Min 7/31
WW32 On Dynamic Resource Allocation Mao, Junjie 8/7
WW33 ACRN virtual secure boot and key enrollment Wang, Kai 8/14
WW34 Split ACRN’s Device Model CHEN, Jason CJ 8/21
WW35 ACRN Continuous Integration System Introduction ZHANG, Wenling 8/28
WW36 BKC for ACRN RT and vmexit analysis YAN, Like 9/4
WW37 ACRN Windows As A Guest (WaaG) Overview CHEN, Jianjun 9/11
WW38 ACRN Fuzzing Test HUANG, Yonghua 9/18
WW39 Implementation of GOP driver with AcrnGT LIU, Xinyun 9/25
WW41 Banish the Dead: Identifying and Removing Dead Code for Functional Safety MAO, Junjie 10/9
WW42 ACRN Memory Bandwidth Allocation (MBA) Vijay Dhanraj 10/16
WW43 Enable OVMF for Service VM WANG, Qian 10/23
WW44 WaaG and Its HLK SHEN, Fangfang 10/30
WW45 Performance Monitoring Unit Introduction WU, Binbin 11/6
WW46 ACRN Schedule Framework Introduction LIU, Shuo 11/13
WW47 How to Deploy ACRN on New Hardware Board SUN, Victor 11/20
WW48 Enable Ubuntu/Debian OS Distros on ACRN LIU, Fuzhong 11/27
WW49 ACRN Coding Guideline Deviation SHI, Huihuang 12/4
 
 
 
Project ACRN: A flexible, light-weight, open source reference hypervisor for IoT devices
 
We're still in the early stages of forming this TSC, so instead we invite you to attend a weekly "Technical Community" meeting where we'll meet community members and talk about the ACRN project and plans. As we explore community interest and involvement opportunities, we'll (re)schedule these meetings at a time convenient to most attendees:
  • -- Do not delete or change any of the following text. --  
  • When it's time, join your Webex meeting here.
 
 
Meeting number (access code): 590 576 334
Meeting password: ShFp3MC@ 
 
 
Join
 
 
 
 
Join by phone 
Tap to call in from a mobile device (attendees only) 
+1-210-795-1110 US Toll 
+1-866-662-9987 US Toll Free 
Global call-in numbers  |  Toll-free calling restrictions  
 
Join from a video system or application
Dial 590576334@... 
You can also dial 173.243.2.68 and enter your meeting number.  
 
 
 
 
  • Meeting Notes:
 
 
Best regards.
Hongbo
Tel: +86-21-6116 7445
MP: +86-1364 1793 689
 
 
 
 
 
 
 
 
 
 
 
 


Re: How to get the 2nd vCPU running in the Industry scenario?

Victor Sun
 

Agree, we should avoid maxcpus setting.
Currently only SOS cmdline of hybrid scenario might need this setting as a workaround, to avoid enumerating all cpus when bootup APs.
When SOS MADT table could be customized, then this workaround is valueless also.

BR,
Victor

-----Original Message-----
From: acrn-users@... <acrn-users@...> On Behalf Of Geoffroy Van Cutsem
Sent: Thursday, November 28, 2019 3:23 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

On Thu, 2019-11-28 at 02:04 +0000, Liu, Fuzhong wrote:
Hi Tonny
You should copy
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel
/samples/nuc/launch_hard_rt_vm.sh for RTVM; Not maxcpus parameter in
it.
Not
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel
/samples/nuc/launch_uos.sh
Is there any value at all in having this maxcpus parameter *anywhere*?
My thinking is that it's ACRN that determines how many vCPUs are visible to any User VM, and we'd want our User VM to always use as many as are available, regardless of whether this is an RTVM or a standard User VM, wouldn't we?

Thanks,
Geoffroy


Re: How to get the 2nd vCPU running in the Industry scenario?

Geoffroy Van Cutsem
 

On Thu, 2019-11-28 at 02:04 +0000, Liu, Fuzhong wrote:
Hi Tonny
You should copy
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_hard_rt_vm.sh
for RTVM; Not maxcpus parameter in it.
Not
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_uos.sh
Is there any value at all in having this maxcpus parameter *anywhere*?
My thinking is that it's ACRN that determines how many vCPUs are
visible to any User VM, and we'd want our User VM to always use as many
as are available, regardless of whether this is an RTVM or a standard
User VM, wouldn't we?

Thanks,
Geoffroy


Re: How to get the 2nd vCPU running in the Industry scenario?

Liu, Fuzhong
 

From: acrn-users@... <acrn-users@...> On Behalf Of Tzeng, Tonny
Sent: Thursday, November 28, 2019 9:21 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Fuzhong,

 

You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊

 

Regards,

Tonny

 

From: acrn-users@... <acrn-users@...> On Behalf Of Liu, Fuzhong
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny

About the secondary vCPU is in “Init” mode after I launch  user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?

 

ACRN:\>vcpu_list(without maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Running

 

ACRN:\>vcpu_list(with maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

 

BR.

Fuzhong

From: acrn-users@... <acrn-users@...> On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny,

This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.

In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.

or you can modify the launch script by manual:

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

+ # do not offline the CPU which not belong to the UOS

+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi

        online=`cat $i/online`

BR,

Victor

 

On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


Re: How to get the 2nd vCPU running in the Industry scenario?

Victor Sun
 

Thanks Fuzhong to correct my misunderstanding!

 

BR,

Victor

 

From: acrn-users@... <acrn-users@...> On Behalf Of Tzeng, Tonny
Sent: Thursday, November 28, 2019 9:21 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Fuzhong,

 

You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊

 

Regards,

Tonny

 

From: acrn-users@... <acrn-users@...> On Behalf Of Liu, Fuzhong
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny

About the secondary vCPU is in “Init” mode after I launch  user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?

 

ACRN:\>vcpu_list(without maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Running

 

ACRN:\>vcpu_list(with maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

 

BR.

Fuzhong

From: acrn-users@... <acrn-users@...> On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny,

This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.

In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.

or you can modify the launch script by manual:

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

+ # do not offline the CPU which not belong to the UOS

+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi

        online=`cat $i/online`

BR,

Victor

 

On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


Re: How to get the 2nd vCPU running in the Industry scenario?

Tzeng, Tonny <tonny.tzeng@...>
 

Hi Fuzhong,

 

You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊

 

Regards,

Tonny

 

From: acrn-users@... <acrn-users@...> On Behalf Of Liu, Fuzhong
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny

About the secondary vCPU is in “Init” mode after I launch  user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?

 

ACRN:\>vcpu_list(without maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Running

 

ACRN:\>vcpu_list(with maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

 

BR.

Fuzhong

From: acrn-users@... <acrn-users@...> On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny,

This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.

In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.

or you can modify the launch script by manual:

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

+ # do not offline the CPU which not belong to the UOS

+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi

        online=`cat $i/online`

BR,

Victor

 

On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


Re: How to get the 2nd vCPU running in the Industry scenario?

Liu, Fuzhong
 

Hi Tonny

About the secondary vCPU is in “Init” mode after I launch  user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?

 

ACRN:\>vcpu_list(without maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Running

 

ACRN:\>vcpu_list(with maxcpus=1)

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

 

BR.

Fuzhong

From: acrn-users@... <acrn-users@...> On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?

 

Hi Tonny,

This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.

In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.

or you can modify the launch script by manual:

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

+ # do not offline the CPU which not belong to the UOS

+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi

        online=`cat $i/online`

BR,

Victor

 

On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


Re: How to get the 2nd vCPU running in the Industry scenario?

Victor Sun
 

Hi Tonny,

This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.

In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.

or you can modify the launch script by manual:

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

+ # do not offline the CPU which not belong to the UOS

+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi

        online=`cat $i/online`

BR,
Victor

On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


How to get the 2nd vCPU running in the Industry scenario?

Tzeng, Tonny <tonny.tzeng@...>
 

Hi,

 

It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:

 

ACRN:\>vcpu_list

 

VM ID    PCPU ID    VCPU ID    VCPU ROLE    VCPU STATE

=====    =======    =======    =========    ==========

  0         0          0       PRIMARY      Running

  2         2          0       PRIMARY      Running

  2         3          1       SECONDARY    Init

 

Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.

 

Regards,

Tonny


ACRN Project Technical Community Meeting Minutes - 11/27/2019

Wang, Hongbo
 

 
ACRN Project TCM - 27th Nov 2019
Location
Agenda
  1. ACRN project update 
  • Latest ACRN v1.4 version has been released with improved quality of Guest Windows, CPU sharing scheduler framework, RTVM performance improved, etc.
  1. “Enable Ubuntu/Debian OS Distros on ACRN” by LIU, Fuzhong
Download foil from ACRN Presentation->ACRN_TCM->WW48’19
Short description: In this talk, we'll share BKMs on how to use Ubuntun/Debian on ACRN, either as Service VM or Guest VM. It's based on current Getting Setup Guide and issues reported from community.
 
  1. All: Community open discussion.
 
  1. Next meeting agenda proposal:
 
WW Topic Presenter Status
WW02 TPM2.0 virtualization in ACRN DENG, Wei 1/9
WW03 Polling mode Virtio and its advantage for RT VM DENG, Jie 1/16
WW04 Buffer sharing from UOS to SOS, HyperDMA usage LIU, Xinyun 1/23
WW05 USB HUB Virtualization WU, Xiaoguang 1/30
WW07 ACRN Device Model QoS Design LIU, Long 2/13
WW08 ACRN Debug Tips CHEN, Jason 2/20
WW09 GVT-g debug trace tool GONG, Zhipeng 2/27
WW10 Kata Container Architecture: First Steps with ACRN Dhanraj, Vijay  3/6
WW11 One ACRN hypervisor to support multi-platform WU, Xiangyang 3/13
WW12 Power button key mediator design in ACRN LIU, Yuan 3/20
WW13 Local APIC Virtualization Enhancement for Intel KBL platform LI, Fei 3/27
WW14 Safety VM Support YIN, FengWei 4/3
WW15 How to customize GPIO in ACRN LIU, Yuan 4/10
WW16 ACRN Cache QoS support based on CAT TAO, Yuhong 4/17
WW17 ACRN Real-Time measurement Methodology LI, Wilson 4/24
WW19 I2C Virtualization CHEN, Conghui 5/8
WW20 SGX Virtualization in ACRN WU, Binbin 5/15
WW21 Logger Improvement on acrn-dm CAO, Minggui 5/22
WW22 AcrnGT Virtual Display Deep Dive HE, Min 5/29
WW23 Local APIC Emulation and Pass-through Grandhi, Sainath 6/5
WW25
 
ACRN Functional Safety: Understanding and Mitigating Inter-VM Interference MAO, Junjie 6/19
WW26 Enable VwWorks as RTVM on ACRN FU, Kaige 6/26
WW27 ACRN 2.0 New Architecture Sharing - 1/2 REN, Jack 7/3
WW28 ACRN 2.0 New Architecture Sharing- 2/2 REN, Jack 7/10
WW29 How to enable open vSwitch on ACRN LIU, Yuan 7/17
WW30 ACRN Configuration Design Tool SUN, Victor 7/24
WW31 Design of GOP Driver for GVT-g HE, Min 7/31
WW32 Restricting Dynamic Resources from functional safety perspective MAO, Junjie 8/7
WW33 Android Virtual Secure Boot and key enrollment QI, Yadong/Zhao Shirley 8/14
WW34 Split ACRN’s Device Model CHEN, Jason CJ 8/21
WW35 ACRN Continuous Integration System Introduction ZHANG, Wenling 8/28
WW36 BKC for ACRN RT and vmexit analysis YAN, Like 9/4
WW37 ACRN Windows As A Guest (WaaG) Overview WANG, Yu1 9/11
WW38 ACRN Fuzzing Test HUANG, Yonghua 9/18
WW39 Implementation of GOP driver with AcrnGT LIU, Xinyun 9/25
WW41 Banish the Dead: Identifying and Removing Dead Code for Functional Safety MAO, Junjie 10/9
WW42 ACRN Memory Bandwidth Allocation (MBA) Dhanraj, Vijay 10/16
WW43 Enable OVMF for Service VM Wang, Qian 10/23
WW44 Windows As A Guest and HLK Introduction SHEN, Fangfang 10/29
WW45 Performance Monitoring Unit Introduction WU, Binbin 11/6
WW46 ACRN Schedule Framework Introduction LIU, Shuo 11/13
WW47 How to Enable ACRN on New Hardware Board SUN, Victor/Zheng, Shuang 11/20
Ww48 Enable Ubuntu/Debian OS Distros on ACRN LIU, Fuzhong 11/27
 
Marketing/Events
  1.  
Resources
  1. Project URL: 
  1. Portal: https://projectacrn.org   
  2. Source code: https://github.com/projectacrn   
  3. email: info@... 
  4. Technical Mailing list: acrn-dev@... 
  1. Recommended Hardware platform (reference):
  1. Apollo Lake (SoC) UP2 (with serial port): AAEON UPS-APLC2-A10-0232 
  2. Apollo Lake (SoC) NUC (without serial port): NUC6CAYHL (at least 8G memory)
  3. Kabylake (Core) NUC (with serial port): NUC7i5DNHE
 
=======================
 
 
 
Best regards.
Hongbo
Tel: +86-21-6116 7445
MP: +86-1364 1793 689
 
 


ACRN Project Technical Community Meeting (2019/7~2019/12): @ Weekly Wednesday 11AM (China-Shanghai), Tuesday 7PM (US-West Coast), Wednesday 3AM (Europe-London)

Wang, Hongbo
 

Notice: Join ACRN’s TCM meeting with WebEx till Nov. 2019
Due to Zoom’s connection issue in PRC mainland recently, we have to use WebEx to replace Zoom for ACRN TCM meeting temporarily. We’ll monitor Zoom’s availability closely and switch back to Zoom as it comes back to normal. Sorry for the inconvenience!
Cisco WebEx: https://intel.webex.com/intel/j.php?MTID=md8485ef1ef04eeee01805a7cb323801b  (More details is at the bottom of the meeting request)
 
 
Date: 11/27
Topic:  Enable Ubuntu/Debian OS Distros on ACRN
Description: In this talk, we'll share BKMs on how to use Ubuntun/Debian on ACRN, either as Service VM or Guest VM. It's based on current Getting Setup Guide and issues reported from community.
 
WW Topic Presenter Status
WW02 TPM2.0 virtualization in ACRN DENG, Wei 1/9
WW03 Polling mode Virtio and its advantage for RT VM DENG, Jie 1/16
WW04 Buffer sharing from UOS to SOS, HyperDMA usage LIU, Xinyun 1/23
WW05 USB HUB Virtualization WU, Xiaoguang 1/30
WW07 ACRN Device Model QoS Design LIU, Long 2/13
WW08 ACRN Debug Tips CHEN, Jason 2/20
WW09 GVT-g debug trace tool GONG, Zhipeng 2/27
WW10 Kata Container Architecture: First Steps with ACRN Dhanraj, Vijay  3/6
WW11 One ACRN hypervisor to support multi-platform WU, Xiangyang 3/13
WW12 Power button key mediator design in ACRN LIU, Yuan 3/20
WW13 Local APIC Virtualization Enhancement for Intel KBL platform LI, Fei 3/27
WW14 Safety VM Support YIN, FengWei 4/3
WW15 How to customize GPIO in ACRN LIU, Yuan 4/10
WW16 ACRN Cache QoS support based on CAT TAO, Yuhong 4/17
WW17 ACRN Real-Time measurement Methodology LI, Wilson 4/24
WW19 I2C Virtualization CHEN, Conghui 5/8
WW20 SGX Virtualization in ACRN WU, Binbin 5/15
WW21 Logger Improvement on acrn-dm CAO, Minggui 5/22
WW22 AcrnGT Virtual Display Deep Dive HE, Min 5/29
WW23 Local APIC Emulation and Pass-through Grandhi, Sainath 6/5
WW25
 
ACRN Functional Safety: Understanding and Mitigating Inter-VM Interference MAO, Junjie 6/19
WW26 Enable VwWorks as RTVM on ACRN FU, Kaige 6/26
WW27 ACRN 2.0 New Architecture Sharing - 1/2 REN, Jack 7/3
WW28 ACRN 2.0 New Architecture Sharing- 2/2 REN, Jack 7/10
WW29 How to enable open vSwitch on ACRN LIU, Yuan 7/17
WW30 ACRN Configuration Design Tool SUN, Victor 7/24
WW31 Design of GOP Driver for GVT-g HE, Min 7/31
WW32 On Dynamic Resource Allocation Mao, Junjie 8/7
WW33 ACRN virtual secure boot and key enrollment Wang, Kai 8/14
WW34 Split ACRN’s Device Model CHEN, Jason CJ 8/21
WW35 ACRN Continuous Integration System Introduction ZHANG, Wenling 8/28
WW36 BKC for ACRN RT and vmexit analysis YAN, Like 9/4
WW37 ACRN Windows As A Guest (WaaG) Overview CHEN, Jianjun 9/11
WW38 ACRN Fuzzing Test HUANG, Yonghua 9/18
WW39 Implementation of GOP driver with AcrnGT LIU, Xinyun 9/25
WW41 Banish the Dead: Identifying and Removing Dead Code for Functional Safety MAO, Junjie 10/9
WW42 ACRN Memory Bandwidth Allocation (MBA) Vijay Dhanraj 10/16
WW43 Enable OVMF for Service VM WANG, Qian 10/23
WW44 WaaG and Its HLK SHEN, Fangfang 10/30
WW45 Performance Monitoring Unit Introduction WU, Binbin 11/6
WW46 ACRN Schedule Framework Introduction LIU, Shuo 11/13
WW47 How to Deploy ACRN on New Hardware Board SUN, Victor 11/20
WW48 Enable Ubuntu/Debian OS Distros on ACRN LIU, Fuzhong 11/27
 
 
 
Project ACRN: A flexible, light-weight, open source reference hypervisor for IoT devices
 
We're still in the early stages of forming this TSC, so instead we invite you to attend a weekly "Technical Community" meeting where we'll meet community members and talk about the ACRN project and plans. As we explore community interest and involvement opportunities, we'll (re)schedule these meetings at a time convenient to most attendees:
  • -- Do not delete or change any of the following text. --  
  • When it's time, join your Webex meeting here.
 
 
Meeting number (access code): 590 576 334
Meeting password: ShFp3MC@ 
 
 
Join
 
 
 
 
Join by phone 
Tap to call in from a mobile device (attendees only) 
+1-210-795-1110 US Toll 
+1-866-662-9987 US Toll Free 
Global call-in numbers  |  Toll-free calling restrictions  
 
Join from a video system or application
Dial 590576334@... 
You can also dial 173.243.2.68 and enter your meeting number.  
 
 
 
 
  • Meeting Notes:
 
 
Best regards.
Hongbo
Tel: +86-21-6116 7445
MP: +86-1364 1793 689
 
 
 
 
 
 
 
 
 
 
 


Re: ACRN on CoffeeLake

Wang, Hongbo
 

More inputs to clarify kernel difference between acrn-kernel (https://github.com/projectacrn/acrn-kernel) and Clear Linux’s E2E kernel:

  1. Clear Linux E2E kernel is the official and release version for ACRN and E2E (ACRN+Service VM+Guest VM)
  2. ACRN-kernel in Github is used as ACRN’s development kernel not for official release.

 

 

Best regards.

Hongbo

Tel: +86-21-6116 7445

MP: +86-1364 1793 689

Mail: hongbo.wang@...

Ally Nation Email Signature Image

 

From: acrn-users@... <acrn-users@...> On Behalf Of Liu, Fuzhong
Sent: 20191124 9:25
To: acrn-users@...
Cc: Sun, Victor <victor.sun@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hi Rajagopal

GVT-g patch dedicated for CoffeeLake(873ac6395609 - (2019-10-21 13:34:19 +0800) drivers/i915: Treat COFFEELAKE as KABYLAKE to enable gvt-g on 0x3EA0 GPU device) is merged into in ACRN -kernel on 2019-10-21, but not in Clear Linux E2E kernel; since 4.19 kernel is PV, not accept patch any more.

Please have a try with latest acrn-kernel:

https://github.com/projectacrn/acrn-kernel

 

If still can’t fix GVT-g issue on your platform with the latest acrn-kernel; please run “lshw” in sos console.

And share the info with us.

Thanks!

 

BR.

Fuzhong

 

From: acrn-users@... <acrn-users@...> On Behalf Of Rajagopal Aravindan
Sent: Saturday, November 23, 2019 9:10 PM
To: acrn-users@...
Cc: Sun, Victor <victor.sun@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hello Fuzhong,

 

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

It worked. I am now able to boot my UOS without GUI on using above iasl.

 

>>Is GVT-g patches included in your SOS kernel?

What / how to check ?

I guess this would be needed to boot UOS with GUI, right ?

 

Thanks,

Rajagopal

 

 

 

On Thu, Nov 21, 2019 at 7:27 PM Liu, Fuzhong <fuzhong.liu@...> wrote:

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."


Re: ACRN on CoffeeLake

Liu, Fuzhong
 

Hi Rajagopal

GVT-g patch dedicated for CoffeeLake(873ac6395609 - (2019-10-21 13:34:19 +0800) drivers/i915: Treat COFFEELAKE as KABYLAKE to enable gvt-g on 0x3EA0 GPU device) is merged into in ACRN -kernel on 2019-10-21, but not in Clear Linux E2E kernel; since 4.19 kernel is PV, not accept patch any more.

Please have a try with latest acrn-kernel:

https://github.com/projectacrn/acrn-kernel

 

If still can’t fix GVT-g issue on your platform with the latest acrn-kernel; please run “lshw” in sos console.

And share the info with us.

Thanks!

 

BR.

Fuzhong

 

From: acrn-users@... <acrn-users@...> On Behalf Of Rajagopal Aravindan
Sent: Saturday, November 23, 2019 9:10 PM
To: acrn-users@...
Cc: Sun, Victor <victor.sun@...>
Subject: Re: [acrn-users] ACRN on CoffeeLake

 

Hello Fuzhong,

 

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

It worked. I am now able to boot my UOS without GUI on using above iasl.

 

>>Is GVT-g patches included in your SOS kernel?

What / how to check ?

I guess this would be needed to boot UOS with GUI, right ?

 

Thanks,

Rajagopal

 

 

 

On Thu, Nov 21, 2019 at 7:27 PM Liu, Fuzhong <fuzhong.liu@...> wrote:

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."


[Announce] ACRN Open Source Ver1.4 Release Notes

Wang, Hongbo
 

Hi all,

 

We are very pleased to announce Version 1.4 release of ACRN. You can see the release blog from https://projectacrn.org/blog/ and detailed Release Notes in website https://projectacrn.github.io/latest/release_notes/release_notes_1.4.html.

Version 1.4 features:

  • ACRN now conforms to the Microsoft* Hypervisor Top-Level Functional Specification (TLFS).
  • ACRN scheduler framework re-architected.
  • WaaG (Windows as a guest) stability and performance improved.
  • Real-time performance of the RTVM (preempt-RT kernel-based) improved.

Besides new features, in this release, there’re several reference documents available, including industrial scenario GSG, ACRN configuration tool, building in Docker, Guest Ubuntu/Debian guidance, etc.

 

To learn more about ACRN: ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. Check out the ACRN project portal (https://projectacrn.org/) for more information.

 

 

 

 

Best regards.

Hongbo

Tel: +86-21-6116 7445

MP: +86-1364 1793 689

Mail: hongbo.wang@...

 


Re: ACRN on CoffeeLake

Rajagopal Aravindan
 

Hello Fuzhong,

>>Please use the one in Clear build 31670(iasl version 20191018).
It worked. I am now able to boot my UOS without GUI on using above iasl.

>>Is GVT-g patches included in your SOS kernel?
What / how to check ?
I guess this would be needed to boot UOS with GUI, right ?

Thanks,
Rajagopal



On Thu, Nov 21, 2019 at 7:27 PM Liu, Fuzhong <fuzhong.liu@...> wrote:

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."


Re: ACRN on NUC5CPYH

Rajagopal Aravindan
 

Hello Victor,

>>If DMAR still can not present, you need to contact bios vendor.
This has turned out to be the case. Looking at ways to contact VisualBios vendor.


>>Also, please check the result of "virt-host-validate" in native
All checks PASS except the below one
QEMU: Checking for device assignment IOMMU support: WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)

Thanks,
Rajagopal


From: acrn-users@... <acrn-users@...> on behalf of Victor Sun <victor.sun@...>
Sent: Friday, November 15, 2019 7:31 AM
To: acrn-users@... <acrn-users@...>
Subject: Re: [acrn-users] ACRN on NUC5CPYH
 

hi Rajagopal,

Please try below:

disable vt-d in bios, do cold power boot, re-enable vt-d in bios, do cold power boot again.

If DMAR still can not present, you need to contact bios vendor.


Also, please check the result of "virt-host-validate" in native, if DMAR doesn't present, then you also have problem to run KVM/Xen...

BR,

Victor


On 11/15/2019 1:40 AM, Rajagopal Aravindan wrote:
Hello Victor,

>> Yes, DMAR table might not exist if vt-d is disabled in BIOS.
On our NUC, we have VT-d enabled in VisualBIOS but, there is NO option for IPU.
How do we get DMAR tables in this case ?

Thanks,
Rajagopal

On Fri, Nov 8, 2019 at 6:13 AM Victor Sun <victor.sun@...> wrote:

Yes, DMAR table might not exist if vt-d is disabled in BIOS.

BR,

Victor

On 11/8/2019 1:57 AM, Dubravko Moravski | Exor Embedded S.r.l. wrote:
Hello Rajagopal,

I'm not an expert but just a user of ACRN; we've had a similar issue on one of our boards. To enable DMAR table in ACPI, ensure in BIOS settings that IPU is disabled, and VT-d instructions are enabled. If you still have the same error, you'll have to ask your BIOS provider to add the DMAR table.

Regards,
Dubravko


From: acrn-users@... <acrn-users@...> on behalf of Rajagopal Aravindan via Lists.Projectacrn.Org <a.rajagopal.81=gmail.com@...>
Sent: Thursday, November 7, 2019 4:43 PM
To: victor.sun@... <victor.sun@...>
Cc: acrn-dev@... <acrn-dev@...>; acrn-users@... <acrn-users@...>
Subject: [acrn-users] ACRN on NUC5CPYH
 
Hello Victor,

We are also trying to run ACRN on NUC5CPYH.
PFA the following ...
  1. screenshot of the error while running board_parser.py
  2. o/p of cat /proc/cpuinfo
  3. screenshot of VisualBios details, currently configured to UEFI-only mode
Can you please help us get past this ?

Thanks,
Rajagopal

Dubravko Moravski
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000
w: exorint.com 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy
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."


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."


Re: ACRN on CoffeeLake

Rajagopal Aravindan
 

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."


Re: ACRN on CoffeeLake

Liu, Fuzhong
 

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."


Re: ACRN on CoffeeLake

Rajagopal Aravindan
 

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."