Commit Graph

5887 Commits

Author SHA1 Message Date
fuzhongl
2e947496c2 Doc: release_notes_2.3 update
Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2020-12-02 17:13:45 -08:00
David B. Kinder
5cd9eb43a9 doc: update v2.3 release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-02 09:43:05 -08:00
Shuang Zheng
b87814ba36 doc: update the doc to setup openstack with ACRN
update ACRN version, update kernel boot args, and fix the issue in
the steps to set up libvirt.

Signed-off-by: Shuang Zheng <shuang.zheng@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-02 09:12:48 -08:00
Yonghua Huang
4759735c99 doc: Setup secureboot with GRUB
Add guide to enable grub secure boot on ACRN.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-02 08:59:52 -08:00
fuzhongl
124752fcf7 Doc: Update GSG and Build ACRN from Source for v2.3
Update Getting Started Guide for ACRN Industry Scenario with Ubuntu Service VM;
and Getting Started Guide for ACRN logical partition mode.
Also update Build ACRN from Source for EFI related part since it is
removed form v2.3

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
Reviewed-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com
2020-12-02 08:52:50 -08:00
Peter Fang
3db34b3164 doc: add documentation for graceful system shutdown
Tracked-On: #5411
Signed-off-by: Peter Fang <peter.fang@intel.com>
2020-12-02 08:51:11 -08:00
Yang,Yu-chu
e6dc6dfe0d acrn-config: remove hardcoded device in launch script
The "virtio-hyper_dmabuf" is no longer needed for PREEMPT-RT LINUX.
Remove it from launch script.

Tracked-On: #5565
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2020-12-02 13:45:57 +08:00
Geoffroy Van Cutsem
e2590d88aa hv: fix formatting for cfg.log output
Fix the formatting for the cfg.log (build/hypervisor/cfg.log) generation. The
'echo' command uses '-e' but that gets put as-is into the log file. Removing
the '-e' argument fixes it.

Tracked-On: #5561
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-12-02 13:45:39 +08:00
David B. Kinder
ad8a0cf737 doc: doc cleanup for v2.3 release
Remove some stray Clear Linux references, document labels, and update
the known issue filter patterns.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-01 15:37:06 -08:00
Yonghua Huang
eb4f335dab doc: update 'enable_ivshmem'
Add notification (doorbell) usage for ivshmem devices.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-01 09:12:29 -08:00
Yonghua Huang
a95e019045 doc: update 'asa.rst' for 2.3 release
update fixed security issue for 2.3 release.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-01 09:04:38 -08:00
Tao Yuhong
e8c20e7a63 Doc: pci-vuart-guide
update tutorials/vuart_configuration.rst, add pci-vuart guide

Signed-off-by: Tao Yuhong <yuhong.tao@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-30 18:35:19 -08:00
Yang,Yu-chu
73cd9e939c doc: update configuration tool description of vuarts
Acrn introduces pci based vuart. Update the existing vuarts and add the
pci based vuart description

1. rename existing vuarts to legacy_vuart
2. add console and communication vuarts general desciption
  - the console vuart is similar to legacy_vuart0 but only contains subtag "base"
  - the communication vuart is similar to legacy_vuart1 but only contains subtags
    "base", "target_vm_id" and "target_uart_id"

Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-30 18:14:02 -08:00
wenlingz
4a4f97525c version:2.4-unstable
Signed-off-by: wenlingz <wenling.zhang@intel.com>
2020-12-01 09:30:15 +08:00
David B. Kinder
b028e9f9a3 doc: add v2.3 release notes draft
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-30 17:18:31 -08:00
Geoffroy Van Cutsem
79892f911d misc: adjust code for gcc-10
The latest gcc 10.x changes the default to '-fno-common'. This causes a couple
of build failures in ACRN. This patch changes the default behaviour to
'-fcommon' for the 'acrnprobe' tool and fixes the 'hv_prebuild' codebase.

More details on that change can be found here:
https://gcc.gnu.org/gcc-10/porting_to.html

Tracked-On: #5553
Tracked-On: #5549
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-11-30 14:45:27 +08:00
Shiqing Gao
6f10bd00bf hv: coding style clean-up related to Boolean
While following two styles are both correct, the 2nd one is simpler.
	bool is_level_triggered;
	1. if (is_level_triggered == true) {...}
	2. if (is_level_triggered) {...}

This patch cleans up the style in hypervisor.

Tracked-On: #861
Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2020-11-28 14:51:32 +08:00
Jie Deng
74203e39d9 dm: virtio_console: read only when the virtqueue is ready.
The read should not continue if the virtqueue is not ready.

Tracked-On: #5544
Signed-off-by: Jie Deng <jie.deng@intel.com>
2020-11-27 15:01:14 +08:00
Peter Fang
4dbf30fcad misc: add the s5_trigger.sh script
s5_trigger.sh is part of the system shutdown flow, coordinating with the
lifecycle manager in each VM.

Tracked-On: #5411
Signed-off-by: Peter Fang <peter.fang@intel.com>
2020-11-26 21:00:10 +08:00
Peter Fang
e69750dd43 misc: life_mngr: prevent log flooding after SOS socket is closed
After the SOS socket is closed, read() returns instantly with a return
value of 0. This causes life_mngr to flood the log file with the
following messages:

    received msg []
    received msg []
    received msg []
    ...

Exit the program directly now if this is detected.

Tracked-On: #5429
Signed-off-by: Peter Fang <peter.fang@intel.com>
2020-11-26 14:10:12 +08:00
Junming Liu
1cd932e568 hv: refine code style
refine code style

Tracked-On: #4020

Signed-off-by: Junming Liu <junming.liu@intel.com>
2020-11-26 12:56:28 +08:00
Junming Liu
56eb859ea4 hv: vmexit: refine xsetbv_vmexit_handler API
From SDM Vol.2C - XSETBV instruction description,
If CR4.OSXSAVE[bit 18] = 0,
execute "XSETBV" instruction will generate #UD exception.

From SDM Vol.3C 25.1.1,#UD exception has priority over VM exits,
So if vCPU execute "XSETBV" instruction when CR4.OSXSAVE[bit 18] = 0,
VM exits won't happen.

While hv inject #GP if vCPU execute "XSETBV" instruction
when CR4.OSXSAVE[bit 18] = 0.
It's a wrong behavior, this patch will fix the bug.

Tracked-On: #4020

Signed-off-by: Junming Liu <junming.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2020-11-26 12:56:28 +08:00
Yang,Yu-chu
2767eb0d29 acrn-config:refine the ivshmem for pre-launched vm
1. Discard the method to find unused vbar bases from system ram, find
unused mmio windows from 2G to 4G range.
2. Refine the ivshmem devices declaration.

Tracked-On: #5530
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2020-11-24 16:30:26 +08:00
Yang Yu-chu
b6a18fa0fb acrn-config: update default pci_dev.c
update all default pci_dev.c under
misc/vm_configs/scenarios/<scenario>/<platform> for non-xml compilation

Tracked-On: #5425
Signed-off-by: Yang Yu-chu <yu-chu.yang@intel.com>
2020-11-24 16:29:40 +08:00
Yonghua Huang
62d51dff3d hv: fix nr_bars for hv-land ivshmem devices
Memory BAR of ivshmem device is 64-bit, 2 BAR registers
 are used, counting in one 32-bit MMIO bar and and one
 32-bit vMSIX table bar, number of bars "nr_bars" shall
 be 4 instead of 3.

Tracked-On: #5490
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-11-24 13:13:48 +08:00
Geoffroy Van Cutsem
36e42c9fdf doc: correct typo (missing space)
Add missing space in the document describing how to use Ubuntu as a User VM OS.
2020-11-23 17:02:13 -08:00
Geoffroy Van Cutsem
3ae00e1b22 doc: correct 'gvtg' parameters for acrn-dm
Correct the GVT-g parameters description in the 'ACRN Device Model parameters'
document. The order was the wrong way around.

Tracked-On: #5528
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-11-23 00:08:07 -08:00
Yang,Yu-chu
dc86cd8bff doc: update the steps of enable ivshmem
To enable the hv_land ivshmem for post-launched vm, the lanch script
needs to be cofigured accordingly.

Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2020-11-23 00:07:12 -08:00
David B. Kinder
f2546384c8 doc: fix breathe config for C vs CPP
Breathe and doxygen work best for C++, but we're using C.  This shows up
as API documentaiton having a C++ flavor (modules and classes) instead
of the expected C flavor.  We really need to upgrade the versions of
doxygen and breathe to newer versions, and this configuration tweak
prepares for this.  (It will need CI coordination to update these tools,
but the changes in this PR are compatible with the current older tools.)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-23 00:06:01 -08:00
fuzhongl
bb4fcae1b8 Doc: update document to remove CL Service VM dependency
Some document refer Clear Linux as Service VM; update them
to Ubuntu Service VM.

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
Reviewed-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-11-23 00:02:58 -08:00
Liu Long
b37442564b DM: Add the return value check in case cause Null pointer exception
paddr_guest2host may return NULL, this patch checks the return value
to avoid null pointer dereference.

Tracked-On: #5514
Signed-off-by: Liu Long <long.liu@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2020-11-18 09:51:42 +08:00
Tomas Winkler
9ab1110f80 dm: mei: vmei_proc_tx check buffer length before accessing the memory
Prevent memory and information leaks by checking boundaries of
the incoming buffers from the hypervisor.

1. We check that the buffer is sufficent to hold a valid header.
2. We that each hbm message has valid size
   vmei_hbm_handler() now returns -EINVAL if the size too small.
3. hdr->length < data_length.

Tracked-On: #5451
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2020-11-17 10:01:36 +08:00
Geoffroy Van Cutsem
14ea52c42f dm: update acrn-dm built-in list and description of args
Update and light clean-up of the buit-in list of arguments from 'acrn-dm'
* Added options in the top part (list with no explanation)
* Remove a couple of arguments that are no longer valid ('vmcfg' and 'dump')

Tracked-On: #5445
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-11-17 09:58:51 +08:00
Yonghua Huang
49a773ab54 hv: bugfix for hv-emulated device de-init
- fix bug in 'hcall_destroy_vdev()', the availability of
   vpci device shall be checked on 'target_vm".

 - refine 'vpci_update_one_vbar()' to avoid potential NULL
   pointer access.

Tracked-On: #5490
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-11-13 11:43:47 +08:00
Peter Fang
68dc8d9f8f hv: pm: avoid duplicate shutdowns on RTVM
It is possible for more than one vCPUs to trigger shutdown on an RTVM.
We need to avoid entering VM_READY_TO_POWEROFF state again after the
RTVM has been paused or shut down.

Also, make sure an RTVM enters VM_READY_TO_POWEROFF state before it can
be paused.

v1 -> v2:
- rename to poweroff_if_rt_vm for better clarity

Tracked-On: #5411
Signed-off-by: Peter Fang <peter.fang@intel.com>
2020-11-11 14:05:39 +08:00
Tao Yuhong
e6ca39406a TGL: Fix sos can't boot with 6 pci-vuarts
Increase CONFIG_MAX_EMULATED_MMIO_REGIONS to 32, for more pci-vuarts.
Each pci-vuart vdev need 2 mmio BARs, if there are 8 pci-vuarts, they
need emulate 16 mmio regions.

But by default CONFIG_MAX_EMULATED_MMIO_REGIONS=16, that is not enough.

Tracked-On: #5491
Signed-off-by: Tao Yuhong <yuhong.tao@intel.com>
2020-11-11 09:53:58 +08:00
Peter Fang
121e015095 doc: add an example for OVMF split images
Add an example to use "code=" and "vars=" in the dm parameters to launch
with OVMF split images.

Tracked-On: #5487
Signed-off-by: Peter Fang <peter.fang@intel.com>
Acked-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-11-11 09:53:28 +08:00
Peter Fang
3d99082411 dm: support OVMF split images
In addition to a single OVMF image (OVMF.fd), split images
(OVMF_CODE.fd, OVMF_VARS.fd) can be used to facilitate VM management.

From the OVMF Whitepaper:

  The variable store and the firmware executable are also available in
  the build output as separate files entitled: "OVMF_VARS.fd" and
  "OVMF_CODE.fd". This enables central management and updates of the
  firmware executable, while each virtual machine can retain its own
  variable store.

An example to launch acrn-dm with the split images:

  --ovmf code=/usr/share/acrn/bios/OVMF_CODE.fd, \
  vars=/usr/share/acrn/bios/OVMF_VARS.fd

v1 -> v2:
- use memory-mapped file I/O for writeback
- use fcntl to lock OVMF image files

Tracked-On: #5487
Signed-off-by: Peter Fang <peter.fang@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2020-11-11 09:53:28 +08:00
Yonghua Huang
5c3f6819d2 doc: update ivshmem feature HLD
With ivshmem doorbell feature enabled, HDL of it shall be updated.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-11-10 16:47:32 -08:00
Yang,Yu-chu
5bdc932d65 acrn-config: insert vbdf in hex format and vuart vbdf logic
Bug fix:
1. The bdf were inserted in decimal. Fix it with hexadecimal
format.
2. The vuart vbdf will only take the dev which no used bdf has
the same dev. For example: If 00:01.1 is in used but not 00:01.0,
vuart vbdf will skip 00:01.0 and look for 00:02.0, 00:03.0 and so on.

Tracked-On: #5482
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2020-11-09 08:54:01 +08:00
Yang,Yu-chu
3c86de8fb9 acrn-config: insert legacy vuart0 base by its enablement status
The legacy vuart0 of any VMs inserts its base address declaration
anyway without checking whether it's disabled or enabled, and the
com base is hardcoded no matter what is specified in xmls.

Pull the legacy vuart enablement status based on scenario xml.

This reverts commit a8fe9b906a

Tracked-On: #5470
Signed-off-by: Yang, Yu-chu <yu-chu.yang@intel.com>
2020-11-09 08:53:36 +08:00
Peter Fang
5a13237b1f hv: remove vm_lock in hcall_destroy_vm()
Hypercall handlers for post-launched VMs automatically grab the vm_lock
in dispatch_sos_hypercall(). Remove the use of vm_lock inside the
handler.

Tracked-On: #5411
Signed-off-by: Peter Fang <peter.fang@intel.com>
2020-11-06 15:11:15 +08:00
Tomas Winkler
188ab4f85b dm: virtio: check for paddr_guest2host return value
paddr_guest2host can return NULL, but code paths in virtio
are not checking the return value.
_vq_record() initializes iov_base pointer using paddr_guest2host()
but there is nothing in the flow that checks for NULL.
Chane _vq_record to return -1 in case the address translation
has failed.

Tracked-On: #5452
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2020-11-06 15:08:30 +08:00
David B. Kinder
a2167ae93a doc: add extension to create files and raw links
Links to files in the GitHub repo's master branch should be to the files
within the branch being generated.  For example, in the v2.1
documentation, links should be to the v2.1 branch contents.  (Previously
links were being made to the master branch in all our archived content.)
This creates a problem when we want to remove an obsolete file in the
master branch but can't because older documentaiton incorrectly depends
on it.

This new extension defines a :acrn_file: and :acrn_raw: role that will
create links to the given file within the current commit branch.

This PR also replaces docs with hard-coded links to files in the master
branch with uses of these new roles to create links to files.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-05 09:17:05 -08:00
David B. Kinder
6b45fc5517 doc: add sphinx-generated index to leftnav
Sphinx generates a full-site index (headings, terms, function names,
etc.) but we haven't been linking to it.  This is a tricky way to get
the site index added to the left nav that appears to work, by creating a
genindex.rst that we can link to in the site toctree so it shows up in
the leftnav, but the generated genindex.html for the dummy genindex.rst
will be overwritten by the sphinx created genindex.html with the
full-site index.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-11-05 09:16:45 -08:00
Sun Peng
73f21a41ad DM: gvt: Identical mapping for GPU DSM
Windows graphic driver obtains DSM address from in-BAR mmio register
which has passthroughed. Not like the other platforms obtained from
pci configure space register which has virtualized. So TGL has to
keep identical mapping to avoid trap mmio BAR to do the emulation.

To keep simple, this patch hardcode the TGL DSM region in vE820
table, this will cause memory waste here. In the near future, we
need refine the entire vE820 logic as it is hard to maintained
due to many reserved regions have introduced in recently.

Signed-off-by: Sun Peng <peng.p.sun@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
Tracked-On: #5461
2020-11-04 11:24:49 +08:00
Yang,Yu-chu
b02776a9d4 acrn-config: removed_nested returns None instead return Error
qemu xml has no devices list. Tool will receive the empty devices
list while parsing the "platform" xml. Remove the error of resolved
nested mmio address window that the input couldn't be None. Simply
return an None list.

Tracked-On:#5454
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2020-11-04 10:38:40 +08:00
Liu Long
853a50a2da ACRN:DM:xHCI Fix the unsigned integer conversion bug
When libusb_control_transfer function return a negative number, because
 the function clear_uas_desc's argument is unsigned int this will cause
 unsigned integer conversion.

Tracked-On: #5463
Signed-off-by: Liu Long <long.liu@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2020-11-04 10:35:38 +08:00
Shuang Zheng
0cd71f2cf2 acrn-config: remove PSRAM_PASSTHROUGH_PRE_RTVM and disable PSRAM config
remove PSRAM_PASSTHROUGH_PRE_RTVM config which is not used in
PSRAM config and disable psram config.

Tracked-On: #5418

Signed-off-by: Shuang Zheng <shuang.zheng@intel.com>
Reviewed-by: Victor Sun <victor.sun@intel.com>
2020-11-04 10:34:59 +08:00
dongshen
ca5683f78d hv: add support for shutdown for pre-launched VMs
Currently, ACRN only support shutdown when triple fault happens, because ACRN
doesn't present/emulate a virtual HW, i.e. port IO, to support shutdown. This
patch emulate a virtual shutdown component, and the vACPI method for guest OS
to use.

Pre-launched VM uses ACPI reduced HW mode, intercept the virtual sleep control/status
registers for pre-launched VMs shutdown

Tracked-On: #5411
Signed-off-by: dongshen <dongsheng.x.zhang@intel.com>
2020-11-04 10:33:31 +08:00