Commit Graph

1223 Commits

Author SHA1 Message Date
David B. Kinder
fd7f0e2c45 doc: update v2.5 release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-23 20:23:28 -07:00
Kunhui-Li
25c677dc39 doc: fix documentation's issue
1. Update the necessary libraries to consistent with the "Build ACRN From Source"
document in the "Getting Started Guide" document.
2. Delete the related introduction with acrngt.conf and launch_uos_id1.sh files in
"Getting Started Guide" document.
3. Update WHL-IPC-I7 board's processor in Supported HW document.
4. Add cpu_affinity element's description in ACRN Configuration Data.
5. Update the description for shm_region in Launch XML format.
6. Update configurable/readonly attributes values.
7. Update the description for hv.CAPACITIES.MAX_MSIX_TABLE_NUM in schema/config.xsd.

Tracked-On: #5692
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2021-06-23 19:25:22 -07:00
David B. Kinder
00fbe949df doc: update v2.5 release notes highlights
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-23 19:23:46 -07:00
Zide Chen
9dc43de733 doc: update nested virtualization user guide
Tracked-On: #5923
Signed-off-by: Zide Chen <zide.chen@intel.com>
2021-06-23 13:43:15 -07:00
David B. Kinder
6cd8bcafdc doc: edit efi-stub tutorial
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-23 09:06:02 -07:00
Nishioka, Toshiki
5fffcdcbd9 doc: add acrn efi-stub user guide
Add user guide for ACRN EFI application for Secure Boot.

Tracked-On: #6078
Signed-off-by: Toshiki Nishioka <toshiki.nishioka@intel.com>
2021-06-23 09:00:32 -07:00
David B. Kinder
8e7f1dbac8 doc: release notes edits
Fix some minor formatting/layout issues and wording

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-22 18:49:33 -07:00
Junjie Mao
a9af948993 doc: update release notes for v2.5 on configuration upgrades
This patch updates recommendations to upgrade from a prior ACRN version for
v2.5.

v2:
 * Apply suggestions from review.
 * Remove descriptions on the scenario XML upgrade tool.

Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2021-06-22 18:39:25 -07:00
Yonghua Huang
5399602d5a doc: update security advisory for 2.5 release
update fixed security vulnerabilities for 2.5 release.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-22 10:06:43 -07:00
David B. Kinder
bc20d0c423 doc: fix broken links in redirect list
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-21 22:46:23 -07:00
David B. Kinder
ccb1bf18dc doc: update changed does in release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-21 15:55:44 -07:00
David B. Kinder
e2c9bdb8ca doc: resove conflicting edits to supported hardware
Resolve different edits to the supported hardware doc from
PRs #6228 and #6229

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-21 14:53:39 -07:00
David B. Kinder
f3dd19dea7 doc: fix renaming of getting started guide
Tweak references to account for renaming the getting started guide in
PR #6226 and create a redirect link from the previous filename.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-21 13:48:34 -07:00
Geoffroy Van Cutsem
6b6efed7eb doc: updates to the Getting Started Guide
Updates to the Getting Started Guide:
* Update title to simply be "Getting Started Guide"
* Simplify and remove instructions that are redundant
* Add a note explaining the difference between 'nuc11tnbi5' and
  'nuc11tnhi5'

Tracked-On: #6225
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-06-21 11:24:12 -07:00
Geoffroy Van Cutsem
8f8fe5c18c doc: update the "Supported Hardware" document
Update the ACRN documentation with regards to the supported HW:
* Remove outdated reference to Apollo Lake and Kaby Lake
* Re-order HW platforms in "Supported HW" to be consistent throughout
  the document
* Use the '|copy|' and '|trade|' replacements
* Update the recommendation for creating nnon-existant $(BOARD).xml

Tracked-On: #6227
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-06-21 07:57:00 -07:00
Kunhui-Li
4d0f453dfc doc: update GSG with NUC11TNHi5
1. Update the rt_industry_ubuntu GSG file from WHL Maxtang to NUC11TNHi5.
2. Update the ACRN-hypervisor branch and ACRN-Kernel version to release_2.5.
3. Update the BIOS setting for NUC11TNHi5.
4. Update the rt-ind-ubun-hw-1.png and rt-ind-ubun-hw-2.png images for NUC11TNHi5;
   And add the native-ubuntu-on-NVME-3.png and native-ubuntu-on-SATA-3.png pictures.
5. Update the PCI device IDs and busses in /usr/share/acrn/launch_hard_rt_vm.sh
   for this new platform.

Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2021-06-20 17:16:02 -07:00
David B. Kinder
414f871bd9 doc: update supported hardware document
Fixes: #5741

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-20 17:13:53 -07:00
Kunhui-Li
294f38212e config_tools: clean up the board folders
1. Remove apl-up2, apl-up2-n3350, apl-mrb, nuc6cayh board
   folders from the latest code base.
2. Copy tgl-rvp.xml to generic_board.xml.
3. Update the related documentation because we remove apl-up2,
   apl-up2-n3350, apl-mrb, nuc6cayh board folders.

Tracked-On: #6175

Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2021-06-20 14:36:34 -07:00
David B. Kinder
9c228dafce doc: clarify doc guidelines
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-20 14:21:33 -07:00
David B. Kinder
ac88793c3b doc: update TCC feature names in hld overview
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-20 14:17:50 -07:00
Geoffroy Van Cutsem
db88a529c5 doc: update the ACRN on QEMU tutorial with latest kernel config
Update the "Enable ACRN Over QEMU/KVM" tutorial:
* Remove the steps explaining how to add the Virtio blk driver
  to the Service VM kernel. It is now part of the default
  configuration
* Add a note to make it more obvious that the tutorial assumes
  that the compilation of ACRN and its kernel is done *inside*
  the QEMU VM that will serve as the Service VM for ACRN

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-06-16 10:46:10 -07:00
David B. Kinder
3a3dbfa08c doc: tweaks to nvmx virtualization doc
Additional clarity and formatting edits to #6198

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-16 10:25:47 -07:00
David B. Kinder
cb9ef67429 doc: draft for 2.5 release notes contribution
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-16 10:06:37 -07:00
ZideChen0
e90fd8bc98 Update doc/tutorials/nvmx_virtualization.rst
Co-authored-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-06-16 09:50:12 -07:00
ZideChen0
fee56f15ca Update doc/tutorials/nvmx_virtualization.rst
Co-authored-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-06-16 09:50:12 -07:00
Zide Chen
f41cc4ae35 doc: add nested virtualization user guide
Tracked-On: #5923
Signed-off-by: Zide Chen <zide.chen@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-16 09:50:12 -07:00
David B. Kinder
48c5fc5124 doc: update ivshmem user guide
Refine the guide to set up ivshmem for both hv-land and dm-land usage.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-14 14:32:32 -07:00
David B. Kinder
4ea0d49a74 doc: update doc guidlines for ACRN config options
Explain how ACRN configuration options are documented and generated

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

Tracked-On: #5911
2021-06-10 19:03:52 -04:00
Yang,Yu-chu
5ec5d9f578 doc: add missing parameters description of launch script xml
Add allow_trigger_s5, enable_ptm, console_vuart and communication_vuart
descriptions.

Tracked-On: #6138
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
2021-06-09 17:28:28 -04:00
Kunhui Li
2ce0b38486 doc: update the content about generating board xml
Update the content about getting board xml from native
enviroment in acrn_configuration_tool.rst and README.

Tracked-On: #6134
Signed-off-by: Kunhui Li <kunhuix.li@intel.com>
2021-06-09 17:17:09 -04:00
Liang Yi
400d31916a doc: update timer HLD doc after modularization
Replace rdstc() and get_tsc_khz() with their architectural agnostic
counterparts cpu_ticks() and cpu_tickrate().

Tracked-On: #5920
Signed-off-by: Yi Liang <yi.liang@intel.com>
2021-06-09 17:11:25 -04:00
David B. Kinder
42dc49902b doc: add enabling PTM tutorial and PTM hld discussion
Tracked-On: #5915

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-09 17:10:34 -04:00
David B. Kinder
a061ce1aef doc: fix config option display
Seperate options with simple types with a heading so they don't get
hidden under the previous options that are part of a complex type.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-06-09 14:47:17 -04:00
Geoffroy Van Cutsem
2ec0ee74e1 doc: update the ACRN on QEMU tutorial to v2.5
Update the "Running ACRN on QEMU" tutorial to be based on ACRN
v2.5 and Ubuntu 20.04.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
Co-authored-by: David Kinder <david.b.kinder@intel.com>
2021-06-09 11:37:33 -04:00
Shuo A Liu
387ea23961 hv: Rename get_ept_entry() to get_eptp()
get_ept_entry() actually returns the EPTP of a VM. So rename it to
get_eptp() for readability.

Tracked-On: #5923
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-06-09 10:07:05 +08:00
Kunhui-Li
ad7b8fa3e8 doc: add the content of hugepages/hugepagesz in generic kernel parameters
Add hugepages/hugepagesz parameters description in generic kernel
parameters because we remove the “hugepage/hugepagesz” setting
in HV code in v2.5 and the only user interface to this parameter
is to modify the two parameter in grub.

Tracked-On: #5815
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2021-06-08 16:13:19 -04:00
Geoffroy Van Cutsem
db2e986673 doc: update ACRN version QEMU tutorial
We missed a section during our last update to the QEMU tutorial
that references which version (tag) of ACRN to use.

Tracked-On: #5928
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-05-28 18:25:55 -04:00
Geoffroy Van Cutsem
68e4c66175 Update doc/tutorials/using_hybrid_mode_on_nuc.rst
Co-authored-by: David Kinder <david.b.kinder@intel.com>
2021-05-24 14:06:50 -04:00
Geoffroy Van Cutsem
a9c4fb2039 Update doc/tutorials/using_hybrid_mode_on_nuc.rst
Co-authored-by: David Kinder <david.b.kinder@intel.com>
2021-05-24 14:06:50 -04:00
Geoffroy Van Cutsem
d7c29968f0 doc: add more details to GSG for the hybrid scenario
Add a number of steps and details that were not called
out in the "Getting Started Guide for ACRN Hybrid Mode". Those
are not obvious to the first-time or novice user so the user
guide was hard to follow and confusing. At a high-level:
* How to build Zephyr
* How to install ACRN
* How to install the ACRN kernel

The hybrid scenario overview diagram has been updated too.

Tracked-On: #5992
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-05-24 14:06:50 -04:00
Peter Fang
b068656e71 doc: add documentation for allow_trigger_s5 in pm_notify_channel
Tracked-On: #6034
Signed-off-by: Peter Fang <peter.fang@intel.com>
2021-05-21 12:08:24 -04:00
David B. Kinder
b8ef1a87be doc: fix indenting issues in tutorial
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-05-20 17:18:44 -04:00
Benjamin Fitch
2c4249fb96 doc: copy editing in the hld topics
Signed-off-by: Benjamin Fitch <benjamin.fitch@intel.com>
2021-05-20 09:15:35 -07:00
Benjamin Fitch
c0fef0b1fb doc: editing in using_serial_port.rst
Signed-off-by: Benjamin Fitch <benjamin.fitch@intel.com>
2021-05-18 15:49:33 -07:00
fuzhongl
d8443bedb0 Doc: update using serial port
Add PCIe serial port enabling part on NUC; which doesn't
have the internal serial console header.

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2021-05-18 11:38:56 -07:00
Liang Yi
3547c9cd23 hv/mod_timer: make timer into an arch-independent module
x86/timer.[ch] was moved to the common directory largely unchanged.

x86 specific code now resides in x86/tsc_deadline_timer.c and its
interface was defined in hw/hw_timer.h. The interface defines two
functions: init_hw_timer() and set_hw_timeout() that provides HW
specific initialization and timer interrupt source.

Other than these two functions, the timer module is largely arch
agnostic.

Tracked-On: #5920
Signed-off-by: Rong Liu <rong2.liu@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2021-05-18 16:43:28 +08:00
Liang Yi
51204a8d11 hv/mod_timer: separate delay functions from the timer module
Modules that use udelay() should include "delay.h" explicitly.

Tracked-On: #5920
Signed-off-by: Rong Liu <rong2.liu@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2021-05-18 16:43:28 +08:00
Liang Yi
5a2b89b0a4 hv/mod_timer: split tsc handling code from timer.
Generalize and split basic cpu cycle/tick routines from x86/timer:
- Instead of rdstc(), use cpu_ticks() in generic code.
- Instead of get_tsc_khz(), use cpu_tickrate() in generic code.
- Include "common/ticks.h" instead of "x86/timer.h" in generic code.
- CYCLES_PER_MS is renamed to TICKS_PER_MS.

The x86 specific API rdstc() and get_tsc_khz(), as well as TSC_PER_MS
are still available in arch/x86/tsc.h but only for x86 specific usage.

Tracked-On: #5920
Signed-off-by: Rong Liu <rong2.liu@intel.com>
Signed-off-by: Yi Liang <yi.liang@intel.com>
2021-05-18 16:43:28 +08:00
Yonghua Huang
32d6a72ea2 doc: clean legacy software SRAM names
psram is legacy name of SSRAM, rename it to ssram

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2021-05-17 15:34:57 +08:00
Junjie Mao
ea4eadf0a5 hv: hypercalls: refactor permission-checking and dispatching logic
The current permission-checking and dispatching mechanism of hypercalls is
not unified because:

  1. Some hypercalls require the exact vCPU initiating the call, while the
     others only need to know the VM.
  2. Different hypercalls have different permission requirements: the
     trusty-related ones are enabled by a guest flag, while the others
     require the initiating VM to be the Service OS.

Without a unified logic it could be hard to scale when more kinds of
hypercalls are added later.

The objectives of this patch are as follows.

  1. All hypercalls have the same prototype and are dispatched by a unified
     logic.
  2. Permissions are checked by a unified logic without consulting the
     hypercall ID.

To achieve the first objective, this patch modifies the type of the first
parameter of hcall_* functions (which are the callbacks implementing the
hypercalls) from `struct acrn_vm *` to `struct acrn_vcpu *`. The
doxygen-style documentations are updated accordingly.

To achieve the second objective, this patch adds to `struct hc_dispatch` a
`permission_flags` field which specifies the guest flags that must ALL be
set for a VM to be able to invoke the hypercall. The default value (which
is 0UL) indicates that this hypercall is for SOS only. Currently only the
`permission_flag` of trusty-related hypercalls have the non-zero value
GUEST_FLAG_SECURE_WORLD_ENABLED.

With `permission_flag`, the permission checking logic of hypercalls is
unified as follows.

  1. General checks
     i. If the VM is neither SOS nor having any guest flag that allows
        certain hypercalls, it gets #UD upon executing the `vmcall`
        instruction.
    ii. If the VM is allowed to execute the `vmcall` instruction, but
        attempts to execute it in ring 1, 2 or 3, the VM gets #GP(0).
  2. Hypercall-specific checks
     i. If the hypercall is for SOS (i.e. `permission_flag` is 0), the
        initiating VM must be SOS and the specified target VM cannot be a
        pre-launched VM. Otherwise the hypercall returns -EINVAL without
        further actions.
    ii. If the hypercall requires certain guest flags, the initiating VM
        must have all the required flags. Otherwise the hypercall returns
        -EINVAL without further actions.
   iii. A hypercall with an unknown hypercall ID makes the hypercall
        returns -EINVAL without further actions.

The logic above is different from the current implementation in the
following aspects.

  1. A pre-launched VM now gets #UD (rather than #GP(0)) when it attempts
     to execute `vmcall` in ring 1, 2 or 3.
  2. A pre-launched VM now gets #UD (rather than the return value -EPERM)
     when it attempts to execute a trusty hypercall in ring 0.
  3. The SOS now gets the return value -EINVAL (rather than -EPERM) when it
     attempts to invoke a trusty hypercall.
  4. A post-launched VM with trusty support now gets the return value
     -EINVAL (rather than #UD) when it attempts to invoke a non-trusty
     hypercall or an invalid hypercall.

v1 -> v2:
 - Update documentation that describe hypercall behavior.
 - Fix Doxygen warnings

Tracked-On: #5924
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-05-12 13:43:41 +08:00