Commit Graph

4018 Commits

Author SHA1 Message Date
Yuan Liu
f1b71d983a dm: expand default WaaG memory to 4G
This patch is used to expand WaaG memory from 2G to 4G in launch script.

Tracked-On: #3576
Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-08-14 16:10:03 +08:00
Shiqing Gao
062fe19800 hv: move vmx_rdmsr_pat/vmx_wrmsr_pat from vmcs.c to vmsr.c
This patch moves vmx_rdmsr_pat/vmx_wrmsr_pat from vmcs.c to vmsr.c,
so that these two functions would become internal functions inside
vmsr.c.
This approach improves the modularity.

v1 -> v2:
 * remove 'vmx_rdmsr_pat'
 * rename 'vmx_wrmsr_pat' with 'write_pat_msr'

Tracked-On: #1842
Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-08-14 10:51:35 +08:00
David B. Kinder
9144c56771 doc: incorporate new scenario-based hardware doc
Changing from just describing the supported hardware to a new hardware
support matrix based on the usage scenarios.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-13 18:30:25 -07:00
Tianhua Sun
9c48fc4ac5 hv: fix failed to build release version build with Kconfig setting
Hardcode "RELEASE=0" will cause the value of "CONFIG_RELEASE"
to be 'n' in kconfig.mk, it will be overwritten "CONFIG_RELEASE"
with Kconfig setting.

Tracked-On: #3565
Signed-off-by: Tianhua Sun <tianhuax.s.sun@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2019-08-14 08:52:59 +08:00
yunzha4x
bbf4df7bf7 doc: update Getting started guide for Intel NUC software setup
Signed-off-by: yunzha4x <yunx.zhang@intel.com>
2019-08-13 14:59:00 -07:00
yunzha4x
02073a2d72 doc: update Getting started guide for Intel NUC software setup
Signed-off-by: yunzha4x <yunx.zhang@intel.com>
2019-08-13 14:59:00 -07:00
yunzha4x
b06c84ba1f doc:update Getting started guide for Intel NUC software setup
Signed-off-by: yunzha4x <yunx.zhang@intel.com>
2019-08-13 14:59:00 -07:00
Lei Lu
bf1a162c3e doc: update Using SBL on UP2 Board
1. The origin clearlinux version 29070 in this doucment example is not
   workable with acrn latest code, update the clearlinux version.
2. Replace the sos_console_login.png with vm_console_login.png

Signed-off-by: Lei Lu <leix.lu@intel.com>
2019-08-13 14:30:16 -07:00
Shiqing Gao
c3001e61a2 doc: add limitation for UEFI services
- add limitation for UEFI services

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2019-08-13 14:29:20 -07:00
Tonny Tzeng
0a067a833f make: white-list SBL firmware boards
The top-level Makefile white-lists BOARDs require to generate UEFI
executable, but more UEFI BOARDs have been supported since then.
As a result, the build instructions in existing documents may not be
sufficient for those new BOARD targets, if the reader misses to supply
the FIRMWARE variable while building the hypervisor.

Instead of adding new UEFI BOARD types using the original long if-else
statements, I'd like to propose to white-list SBL BOARD types, and add
the new SBL BOARD types to the list while needed.

Tracked-On: #3541
Signed-off-by: Tonny Tzeng <tonny.tzeng@intel.com>
Reviewed-by: Binbin Wu <binbin.wu@intel.com>
2019-08-12 11:24:55 +08:00
Li, Fei1
d82a00a128 hv: vpci: remove pBDF configure for emulated device
Since now we use vBDF to search the device for PCI vdev.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-08-12 10:00:44 +08:00
Li, Fei1
90480db553 hv: vpci: split vPCI device from SOS for post-launched VM
When assgined a PCI PTDev to post-launched VM from SOS, using a pointer to point to
the real struct pci_vdev. When post-launched VM access its PTDev configure space in
SOS address space, using this real struct pci_vdev.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-08-12 10:00:44 +08:00
Deb Taylor
13de9a4cf6 Formatting for new Hardware Support page 2019-08-09 16:58:20 -07:00
lirui34
70e1e8d154 doc: hybrid mode scenario introduction
Add introduction about how to enable hybrid mode scenario.

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-08-09 16:32:13 -07:00
Li, Fei1
4c8e60f1d0 hv: vpci: add each vdev_ops for each emulated PCI device
Add a field (vdev_ops) in struct acrn_vm_pci_dev_config to configure a PCI CFG
operation for an emulated PCI device. Use pci_pt_dev_ops for PCI_DEV_TYPE_PTDEV
by default if there's no such configure.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-08-09 14:19:49 +08:00
Li, Fei1
ff54fa2325 hv: vpci: add emulated PCI device configure for SOS
Add emulated PCI device configure for SOS to prepare for add support for customizing
special pci operations for each emulated PCI device.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-08-09 14:19:49 +08:00
Mingqiang Chi
973ba5b63f hv:fix need to make twice in hypervisor folder
now the dependency is like this in Makefile:
  acrn.bin << xxxx.a << xxxx.obj
if excute 'make' in hypervsior fold for the first time,
it can generate acrn.bin, if excute 'make' for second
time, it can not do the final link because there are
the same timestamp for acrn.bin and xxxx.a generated by
previous build, add PHONY to fix this issue.

Tracked-On: #3542
Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2019-08-09 11:28:23 +08:00
Junming Liu
4dfd5d6ae6 dm:gvt:keep LaaG aperture size consistent with the host
Keep LaaG aperture size consistent with the host bios setting,
if we statically set LaaG aperture 256MB,
it may not have memory space for LaaG aperture.
We get host aperture size from cfg port 0x62.

Tracked-On: #3537
Signed-off-by: Junming Liu <junming.liu@intel.com>
Reviewed-by: Xinyun Liu <xinyun.liu@intel.com>
2019-08-09 10:29:42 +08:00
Yifan Luo
f65ba2154f HV: shell: fix temp_str out of bounds buffer access
String buffer temp_str is defined with size TEMP_STR_SIZE(60U) but accessed with MAX_STR_SIZE(256U). Better to limit the access bound to TEMP_STR_SIZE to prevent potential issue.

Tracked-On: #3549
Signed-off-by: Yifan Luo <luoyifan@cmss.chinamobile.com>
2019-08-09 10:26:38 +08:00
Yifan Luo
50e0a932a2 dm: virtio-i2c: fix native_adapter memory leak
If failed to create native_adapter, free allocated native_adapter memory before return.

Tracked-On: #3543
Signed-off-by: Yifan Luo <luoyifan@cmss.chinamobile.com>
2019-08-08 10:36:46 +08:00
Li, Fei1
5471473f60 hv: vpci: create iommu domain in vpci_init for all guests
Create an iommu domain for all guest in vpci_init no matter if there's a PTDev
in it.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
Reviewed-by: Dongsheng Zhang <dongsheng.x.zhang@intel.com>
2019-08-06 11:51:02 +08:00
Li, Fei1
599a058403 hv: vpci: refine init_vdevs
Now almost the vPCI device information could be obtain from PCI device configure
in VM configure. init_vdevs could make things more easier.
And rename init_vdevs to vpci_init_vdevs, init_vdev to vpci_init_vdevs to avoid
MISRA-C violations.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
Reviewed-by: Dongsheng Zhang <dongsheng.x.zhang@intel.com>
2019-08-06 11:51:02 +08:00
Li, Fei1
eb21f205e4 hv: vm_config: build pci device configure for SOS
Align SOS pci device configure with pre-launched VM and filter pre-launched VM's
PCI PT device from SOS pci device configure.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-08-06 11:51:02 +08:00
Li, Fei1
adbaaaf6cb hv: vpci: rename ptdev_config to pci_dev_config
pci_dev_config in VM configure stores all the PCI devices for a VM. Besides PT
devices, there're other type devices, like virtual host bridge. So rename ptdev
to pci_dev for these configure.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-08-06 11:51:02 +08:00
fuyanX
83e887dbb3 memmap:reserve phys-addr for hvlog
acrn.conf:add memmap phys-addr 2M for hvlog,
not mapped by kernel.

Tracked-On: projectacrn/acrn-hypervisor#3533
Signed-off-by: YanX Fu <yanx.fu@intel.com>
Reviewed-by: Yin Fengwei <fengwei.yin@intel.com>
2019-08-05 18:27:38 +08:00
David B. Kinder
70fdde4230 doc: add the SDC2 scenario doc into the navigation
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 17:24:54 -07:00
David B. Kinder
f0ecf8291f doc: incorporate scenario-based doc update
PR #3516 was submitted during a documentation reorganization and
resulted in merge conflicts with files that no longer exist.  We closed
that PR and opened this one with those changes applied to the right
files.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 15:38:23 -07:00
David B. Kinder
9580a2131b doc: apply edits to SDC2 scenario doc
Update merged PR #3463 with format and wording improvements.
(Not linked yet into the document navigation)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 12:59:00 -07:00
Tonny Tzeng
0ab14fab39 doc: adding guide to launch 2 Linux UOSes using SDC2 scenario
Tracked-On: #3462
Signed-off-by: Tonny Tzeng <tonny.tzeng@intel.com>
Reviewed-by: Fuzhong Liu <fuzhong.liu@intel.com>
Reviewed-by: Nanlin Xie <nanlin.xie@intel.com>
2019-08-02 10:27:02 -07:00
David B. Kinder
0085348f36 doc: update v1.0.1 release notes
Fix some wording, table formatting, and links to issues and commits from
the original PR #3515

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 10:23:13 -07:00
lirui34
3b00ab160e doc: release notes v1.0.1
Add release notes v1.0.1

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-08-02 09:55:19 -07:00
David B. Kinder
abd8b710a4 doc: improve CSS for home page grid
Update the ACRN logo size to remove specifics in the CSS.  (Grid images
should be ~100px high for the grid.)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 09:53:34 -07:00
David B. Kinder
a1cc860d5d doc: fix image proportions on home page for ie
The ACRN icon on the new graphical home page looked fine with firefox,
edge, and chrome browsers, but not on IE.  This PR fixes that

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 07:56:42 -07:00
David B. Kinder
cd232f4442 doc: fix broken links after content reorg
Home page "button" links needed to be manually updated (because of the
raw html usage) after content around.

Move partition mode docs from try to develop persona pages.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-02 07:34:25 -07:00
David B. Kinder
0d07dad5cb doc: additional doc navigation restructuring
Adjust doc navigation organization based on additional feedback.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-01 21:30:22 -07:00
David B. Kinder
2ccd652607 doc: simplify navigation with restored doc org
A few more tweaks to the site navigation since we moved the content back
to its original folder structure.

Remove the temporary "doc reorg in progress" banner.

Add reference to hardware in the "try" section.

Add link to the documentation home page in left nav pane.

Add additional redirects to handle external links to moved content.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-01 16:22:50 -07:00
David B. Kinder
e2d3653976 doc: continue doc restructuring
Changing the folder structure will cause too many broken links for
external references (from other sites). So, let's put the content back
where it was before the reorg, and instead use the new persona-based
navigation to point to documents in the original locations.

Also, introduce redirects for some documents that no longer exits.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-08-01 14:07:22 -07:00
Victor Sun
901a65cb53 HV: inject exception for invalid vmcall
For non-trusty hypercalls, HV should inject #GP(0) to vCPU if they are
from non-ring0 or inject #UD if they are from ring0 of non-SOS. Also
we should not modify RAX of vCPU for these invalid vmcalls.

Tracked-On: #3497

Signed-off-by: Victor Sun <victor.sun@intel.com>
2019-08-01 16:07:57 +08:00
Conghui Chen
c4f6681045 softirq: disable interrupt when modify timer_list
In current code, the timer_list for per cpu can be accessed both in
vmexit and softirq handler. There is a case that, the timer_list is
modifying in vmexit, but an interrupt occur, the timer_list is also
modified in softirq handler. So the time_list may in unpredictable
state. In some platforms, the hv console may hang as its timer handler
is not invoked because of the corruption for timer_list.
So, to fix the issue, disable the interrupt before modifying the
timer_list.

Tracked-On: #3512
Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>
Signed-off-by: Conghui Chen <conghui.chen@intel.com>
Reviewed-by: Li, Fei1 <fei1.li@intel.com>
2019-08-01 15:45:02 +08:00
Victor Sun
f49ab66b65 HV: fix highest severity flag in hybrid mode
In hybrid mode, pre-launched VM should have the highest severity to
handle platform reset, the flag should not be set in SOS VM;

Tracked-On: #3505

Signed-off-by: Victor Sun <victor.sun@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2019-08-01 15:42:25 +08:00
David B. Kinder
11d4f4159f doc: Reorganize documentation site content
Take the existing ACRN technical documentation and reorganize its
presentation to be persona and use-case based, in preparation for adding
new scenario/use-case based architecture introduction and getting
started documents.

Introduce a more graphical home page and theme color tweaks.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-07-31 18:29:22 -07:00
Xiaoguang Wu
e188e1f245 DM USB: xHCI: fix an error in PORTSC emulation
When DM receives the Disable Slot command, according to xHCI spec,
the PP bit in PORTSC register should not be cleared.

Tracked-On: #3486
Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-08-01 09:28:01 +08:00
Xiaoguang Wu
55a5876eba DM USB: xHCI: workaround for USB SSD which supports UAS protocol
The USB mediator doesn't support USB Attached SCSI (UAS) protocol
due to no proper implementation for USB Stream. This patch will
use USB Bulk transfer to workaround until formal implentation for
UAS is ready.

Tracked-On: #3486
Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-08-01 09:28:01 +08:00
Xiaoguang Wu
0e2cfd2dee DM USB: add native info in control transfer logging code
Add native bus and port information in the control transfer logging code.

Tracked-On: #3486
Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-08-01 09:28:01 +08:00
Peter Fang
87cafaea33 OVMF release v1.2
- Add support for VRING_USED_F_NO_NOTIFY in virtio devices
- Revert "Initialize EmuVariable NV storage memory with varstore from
  ROM"
- Add AcrnEmuVariableFvbRuntimeDxe to support NV storage
- Enable ahci driver.

Secure boot is supported from this release onwards.

Tracked-On: #3506
Signed-off-by: Peter Fang <peter.fang@intel.com>
2019-08-01 09:24:52 +08:00
lirui34
52618d0a23 doc: Update WaaG tutorial launch script and OVMF binary
Change WaaG launch script to the default ``launch_win.sh``,
and also provide one OVMF.fd binary in order to launch WaaG.
Change SOS / UOS to Service VM / Guest VM.

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-07-31 13:08:05 -07:00
Alex Merritt
8f65bfe68d README: Fix Getting Started URL
Signed-off-by: Alex Merritt <mail@alexmerritt.us>
2019-07-31 13:01:35 -07:00
Victor Sun
363daf6aa2 HV: return extended info in vCPUID leaf 0x40000001
In some case, guest need to get more information under virtual environment,
like guest capabilities. Basically this could be done by hypercalls, but
hypercalls are designed for trusted VM/SOS VM, We need a machenism to report
these information for normal VMs. In this patch, vCPUID leaf 0x40000001 will
be used to satisfy this needs that report some extended information for guest
by CPUID.

Tracked-On: #3498

Signed-off-by: Victor Sun <victor.sun@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-07-31 14:13:39 +08:00
Kaige Fu
accdadce98 HV: Enable vART support by intercepting TSC_ADJUST MSR
The policy of vART is that software in native can run in
VM too. And in native side, the relationship between the
ART hardware and TSC is:

  pTSC = (pART * M) / N + pAdjust

The vART solution is:
  - Present the ART capability to guest through CPUID leaf
    15H for M/N which identical to the physical values.
  - PT devices see the pART (vART = pART).
  - Guest expect: vTSC = vART * M / N + vAdjust.
  - VMCS.OFFSET = vTSC - pTSC = vAdjust - pAdjust.

So to support vART, we should do the following:
  1. if vAdjust and vTSC are changed by guest, we should change
     VMCS.OFFSET accordingly.
  2. Make the assumption that the pAjust is never touched by ACRN.

For #1, commit "a958fea hv: emulate IA32_TSC_ADJUST MSR" has implementation
it. And for #2, acrn never touch pAdjust.

--
 v2 -> v3:
   - Add comment when handle guest TSC_ADJUST and TSC accessing.
   - Initialize the VMCS.OFFSET = vAdjust - pAdjust.

 v1 -> v2
   Refine commit message to describe the whole vART solution.

Tracked-On: #3501
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-07-31 13:29:51 +08:00
Nikhil Rane
4adc8102fd Makefile: Add install for uefi firmware
Add to include acrn.32.out during cl rpm
 generation as acrn.(board).32.out
This is required for Hybrid mode bringup in multios

Tracked-On:#3487
Signed-off-by: Nikhil Rane <nikhil.rane@intel.com>
2019-07-31 11:41:40 +08:00