Commit Graph

318 Commits

Author SHA1 Message Date
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
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
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
Benjamin Fitch 8c8df1afb9 doc: copy edits in the developer reference
Signed-off-by: Benjamin Fitch <benjamin.fitch@intel.com>
2021-05-10 14:59:26 -07:00
David B. Kinder f596b6df13 doc: tweaks for latexpdf build
Update missing captions on figures to remove remaining broken references
during latexpdf building.  Also, require doing a "make html" before
doing a "make latexpdf" to build all the artifacts needed for running
the latexpdf build.  (We might change that later if needed.)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-04-22 11:12:07 -07:00
Junjie Mao 42fd1b1d5c doc: discourage modifications to predefined scenario XMLs
This patch modifies the instructions that lead users to modify predefined
scenario XMLs under ``misc/config_tools/data`` which is not a preferred
way. It is recommended to make and edit a local copy, instead.

Also fixes a few references to ``misc/vm_configs`` which has been moved.

v2:
 * fix typos in paths
 * explain on the candidate values of ``port_base`` and ``irq`` fields

Tracked-On: #5644
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2021-03-09 09:10:10 -08:00
Junjie Mao 5df65eeb19 doc: update compile-time configuration HLD
Starting from v2.4, ACRN configuration uses solely XML files to store
configuration data and customized scripts to manipulate
configurations. This patch updates the HLD of compile-time configuration to
reflect this properly.

As the refinement to the configuration toolset itself is still ongoing,
this patch only adds brief introduction to the key generated files involved
in ACRN configuration. More details will be added after the refinement
completes.

Tracked-On: #5644
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Signed-off-by: Benjamin Fitch <benjamin.fitch@intel.com>
2021-03-08 15:52:52 -08:00
Geoffroy Van Cutsem 6020759f5b doc: update ACRN Device Model arguments
Update the list of arguments and parameters that the ACRN
Device Model ('acrn-dm') can take.

Tracked-On: #5781
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-03-02 16:49:16 +08:00
Geoffroy Van Cutsem 359f4ee6ea doc: update another few mis-handled titles
After grand update of all titles to use title-case, we found some more
that needed a manual tweak.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2021-02-24 15:14:53 -08:00
David B. Kinder 33866a1335 doc: update a few mis-handled titles
After grand update of all titles to use title-case, we found a few that
needed a manual tweak.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-02-17 16:42:56 -08:00
David B. Kinder 0bd384d41b doc: fix all headings to use title case
While we hoped to make the headings consistent over time while doing
other edits, we should instead just make the squirrels happy and do them
all at once or they'll likely never be made consistent.

A python script was used to find the headings, and then a call to
https://pypi.org/project/titlecase to transform the title.  A visual
inspection was used to tweak a few unexpected resulting titles.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-02-13 12:37:49 -08:00
David B. Kinder c741468b9c doc: remove Kconfig reference documentation
With the new ACRN configuration architecture, we no longer use Kconfig
files.  Remove the Kconfig option documentation scripting (genrest.py)
Python dependencies, and Makefile commands, and change references in the
documentation from the Kconfig option (such as
:option:`CONFIG_MEM_LOGLEVEL`) to the new schema definition-based option
documentation (:option:`hv.DEBUG_OPTION.MEM_LOGLEVEL`).

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-02-03 09:01:40 -08:00
David B. Kinder cbed125028 doc: fix misspelling in hv-dev-passthrough
Tracked-On: #5647

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2021-01-30 11:21:27 -08:00
David B. Kinder 69b207ac6a doc: spelling fixes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-28 15:02:06 -08:00
David B. Kinder 35aba4ff21 doc: remove stray x attrib on png and rst files
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-12-21 09:57:19 -08:00
Yonghua Huang 914ac534c0 doc: update HLD of HV-Land Ivshmem
Add a figure for HLD of HV-land doorbell design.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-12-05 11:25:31 -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
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
Shiqing Gao 76017ec67f doc: update coding guidelines
- add a rule for function parameter limit

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2020-10-30 08:36:21 -07:00
Shiqing Gao c51a96a11b doc: update coding guidelines
- add a rule for "U" suffix
 - release the restrictions about function documentation

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2020-10-26 09:20:18 -07:00
Yonghua Huang 62a36ce34b doc: update 'hv-virt-interrupt.rst'
Update this file as 'vlapic_intr_msi()' is renamed.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-10-26 08:44:13 +08:00
David B. Kinder 5289a3eb97 doc: more spelling and grammar fixes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-10-03 09:11:19 -07:00
David B. Kinder 576a3b5947 doc: spelling and grammar improvements
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-10-01 18:08:00 -07:00
David B. Kinder dd0fe54141 doc: Spelling and grammar tweaks
Did a partial run of ACRN documents through Acrolinx to catch additional
spelling and grammar fixes missed during regular reviews.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-09-26 08:50:49 -07:00
Yuan Liu 12557d2e2b doc: add ivhshmem hv-land introduction
Ivshmem hv-land solution emulates the ivshmem device in hypervisor
and the shared memory is reserved in the hypervisor's memory space.
And it can provide inter-vm communication for both pre-launched and
post-launched VMs.

This patch introduces the ivshmem hv-land solution including what
ivshmem hv-land is and how to use it.

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
2020-09-14 10:20:39 -07:00
David B. Kinder cd18a22faf doc: update virtio-i2c inclusive language
A previous update changed "slave" to "secondary", but the code comments
were changed to use "client", so update the documentation to match.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-09-02 14:35:14 -07:00
David B. Kinder fc1fc0eb8d doc: update inclusive language terms in docs
Replace white/black master/slave terms with alternatives.  We're not
changing "master" when used in the context of GitHub branches.  GitHub
advises they have a plan to help this transition.  In the text body we
rever to the "master" branch as the "main" branch, but leave any urls or
code-block commands still using "master".

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-09-01 10:47:42 -07:00
Zide Chen f945fe27ab doc: remove UEFI/de-privilege boot mode from docs
Also clear Linux is no longer supported either as SOS or post-launched VM kernel.

- When it mentions clear Linux, mostly replaced by Ubuntu.
- remove all contents re/lated to "UEFI boot".
- remove the term de-privilege mode, and direct mode as well.

Tracked-On: #5197
Signed-off-by: Zide Chen <zide.chen@intel.com>
2020-08-26 16:37:41 -07:00
Zide Chen 456dd43187 doc: remove the vboot module design example from sw_design_guidelines.rst
Since de-privilege boot mode is removed and vboot module is completely
rewritten.

Tracked-On: #5197
Signed-off-by: Zide Chen <zide.chen@intel.com>
2020-08-25 14:42:26 -07:00
David B. Kinder e74cf71eb7 doc: spelling and grammar fixes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-08-20 08:09:21 -07:00
Shiqing Gao 24b89eb8c4 doc: update coding guidelines
- add a rule for pointer arithmetic operation
 - add a rule about ABI conformance
 - update GCC reference

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2020-08-19 15:49:35 -07:00
David B. Kinder 99c855dd63 doc: use kbd consistently and fix misspellings
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-08-06 16:40:53 -07:00
David B. Kinder 97603adb0a doc: fix references to misc/vm_configs folder
As noticed in PR #5134 scenario configurations were moved out of the
hypervisor folder over to the misc folder (within the acrn-hypervisor
repo).  Fix references and make them all consistent (referencing
misc/vm_configs)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-08-05 13:39:31 -07:00
Vijay Dhanraj deec563361 doc: update virtio-net documentation with macvtap support.
Tracked-On: #4945
Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-07-28 15:00:18 -07:00
David B. Kinder a26a663041 doc: add mmio-dev-passthrough to TOC
Doc was merged but not included in the TOC (CI indicated a pass on that
PR even though doc build failed).  This fixes that undetected error.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-07-28 14:38:04 -07:00
Li Fei1 e967fb327f doc: add mmio device passthrough introduction
Besides PCI passthru, ACRN can support passthru of a set of page-aligned
MMIO resources. One example is to passthru a TPM device which includes
a set of page aligned MMIO resources.

Signed-off-by: Li Fei1 <fei1.li@intel.com>
2020-07-28 13:29:11 -07:00
Vijay Dhanraj cd1b133ac5 doc: update documentation for configuring ACRN RDT features
Given the recent changes in the way ACRN configures RDT features,
this patch updates the documentation as well to provide clear
guidelines to the user.

Tracked-On: #5063
Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
2020-07-28 13:27:46 -07:00
Mostafa Naeem e43b6c7854 doc: Update Inter-VM Communication with Security Hardening Guidelines
ACRN 2.0 introduced Inter-VM communication feature by enabling the ivshmem v1.0 protocol/channel to communication
between VMs. To support the community's application Security Development Lifecycle (SDL), we provide a security hardening
guideline with some pointers to consider when using this channel by userspace application in case of additional security
requirments for Confidentiality, Integrity, or Authenticity.

Signed-off-by: Mostafa Naeem <mostafa.elsaid@intel.com>
2020-07-10 13:50:24 -07:00
David B. Kinder aa45937860 doc: Update contribution guide instructions
While changes to documentation can be submitted directly as PRs, changes
to code must be first submitted for approval to the developer mailing
list.  Update the contribution guidelines to talk about this.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-07-08 10:52:57 -07:00
Yuan Liu 215829fd7e doc: refine ivshmem architecture diagram
refine the dm-land and hypervisor-land flows

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
2020-06-22 11:30:21 -07:00
David B. Kinder 922129cad4 doc: consistent spelling of passthrough
Attempt to replace all the variations of "pass-thru", "pass thru", "pass
through", and "pass-through" to be "passthrough" (except for doc labels
and in code or API uses)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-18 12:46:26 -07:00
David B. Kinder 137f7d67e7 doc: v2.0 release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-17 20:34:22 -07:00
Deb Taylor 315b7f3c00 Doc: Grammatical edits to Shared mem based inter-VM comm doc
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-06-12 16:23:27 -04:00
Geoffroy Van Cutsem 5d08f2518f doc: update the 'ivshmem' HLD
Update the 'ivshmem' document to clarify the existence of two similar
mechanisms to expose this device to User VMs. One is implemented in the ACRN
Device Model and another (future) is implemented in the hypervisor.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-06-12 13:45:53 -04:00
David B. Kinder 60d16feda6 doc: update ivshmem examples
Update edits from PR #4921

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-10 11:44:22 -04:00
Yuan Liu 279a3995b6 doc: add inter-vm communication example
Add the example for two post-launched VMs communication

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
2020-06-09 14:37:59 -07:00
David B. Kinder 63d7bec3d1 doc: more updates to ivshmem image and doc
Update image and doc with additional review comments

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-08 20:38:15 -07:00
David B. Kinder e94922dfdc doc: update ivshmem image with corrections
Fixed spelling errors in the include image

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-07 19:17:34 -07:00
David B. Kinder 3d4cc0bff5 doc: edit ivshmem hld doc
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2020-06-05 16:08:08 -07:00