Commit Graph

4346 Commits

Author SHA1 Message Date
lirui34 ad9b96579f doc: instruction of enabling the laag secure boot
Add tutorial about how to enable the laag secure boot.

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-11-07 14:10:51 -05:00
Yonghua Huang d3cf6a55f2 doc: add hld-security guest secure boot description
1. add guest secure boot with OVMF.
  2. delete obsolete content.
  3. SOS -> Service VM and UOS -> User VM.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2019-11-07 14:09:46 -05:00
Li, Fei1 c3b4518357 doc: update timer hld
Add two new APIs interfaces design

Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-11-07 14:08:39 -05:00
Li, Fei1 8a99a66bd5 doc: update memory management hld
1. Some security features are added into ACRN HV memory management.
2. Dynamic memory allocation is removed. Instead, static memory page allocation is added.
3. The guest to host mapping is not static any more for Service OS after it begins running
since the Service OS support PCI BAR re-pregramming now.

Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-11-07 14:08:39 -05:00
Deb Taylor f59932e3db Added entry for waag-secure-boot tutorial (added in #3883)
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2019-11-07 13:26:27 -05:00
lkanx 95f485db51 doc:update acrn_configuration_tool
Signed-off-by: lkanx <lix.kan@intel.com>
2019-11-07 07:08:24 -05:00
Yuan Liu 434a746ccb doc: add waag secure boot enabling
Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
2019-11-07 07:05:29 -05:00
Deb Taylor e68326dbe5 Clean up language in the acrn_quick_setup script.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2019-11-07 06:50:51 -05:00
Kaige Fu 20c1ad1b3a HV: correct the formatting flag of hypcall_id
hypcall_id has a type of uint64_t and should use 'llx' as
formatting flag instead of '%d'. Otherwise, we will get a
confusing error log when not-allowed hypercall occurs.

Without this patch:
[96707209us][cpu=1][sev=3][seq=2386]:hypercall -2147483548 is only allowed from SOS_VM!

With this patch:
[84613395us][cpu=1][sev=3][seq=2136]:hypercall 0x80000064 is only allowed from SOS_VM!

So, we can figure out which not-allowed hypercall has been triggered more conveniently.

BTW, this patch adds hypcall_id which triggered from non-ring0 into error log.

Tracked-On: #4012
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-11-07 15:01:21 +08:00
Li Fei1 af886fee8c efi-stub: reserve unconfigure high memory
Now ACRN support more and more platforms. However, the default configuration only
support board which memory is less than 16 GB. If a board memory is large than
16 GB, the developer needs to configure the memory configuration according to his
board. Otherwise, the boot will fail. This's because UEFI BIOS will use the high
memory as possible.
This patch try to allocate the memory as eraly as possible. So that the BIOS will
not access this region.

Tracked-On: #4007
Signed-off-by: Li Fei1 <fei1.li@intel.com>
2019-11-07 08:47:02 +08:00
Li Fei1 8189d1f01c hv: mmu: fliter e820 which is over top address space
Now the default board memory size is 16 GB. However, ACRN support more and more boards
which may have memory size large than 16 GB. This patch try to filter e820 table which
is over top address space.

Tracked-On: #4007
Signed-off-by: Li Fei1 <fei1.li@intel.com>
2019-11-07 08:47:02 +08:00
Li Fei1 620a1c5215 hv: mmu: rename e820 to hv_e820
Now the e820 structure store ACRN HV memory layout, not the physical memory layout.
Rename e820 to hv_hv_e820 to show this explicitly.

Tracked-On: #4007
Signed-off-by: Li Fei1 <fei1.li@intel.com>
2019-11-07 08:47:02 +08:00
Jason Chen CJ 33eea943a1 doc: schedule_vcpu was removed
schedule_vcpu should be replaced by launch_vcpu

Tracked-On: #3963
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-11-06 17:05:00 -05:00
lirui34 f835fdef05 doc: Remove apl gsg and merge contents into rt gsg
Change APL getting started guide to KBL getting started guide;
Merge some of the contents into preempt-rt getting started guide;
Move the modified kbl getting started guide to the behind of the configuration tutorials;
Fix issues for acrn_quick_setup.sh script.

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-11-05 15:09:49 -05:00
Gao Junhao 90cf27aa5f dm: remove cfc/cf8 pio handler
The acrn vhm driver will convert all PCI configure space access to
PCI_CFG type, so the pci_emul_cfgaddr and pci_emul_cfgdata will nerver
be invoked. Remove these useless functions.

Tracked-On: #3999
Signed-off-by: Gao Junhao <junhao.gao@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-11-05 16:07:38 +08:00
Yonghua Huang 8227804b09 hv:Unmap AP trampoline region from service VM's EPT
AP trampoline code should be accessible
 to hypervisor only, this patch is to unmap
 this region from service VM's EPT for security
 reason.

Tracked-On: #3992
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-11-05 15:14:13 +08:00
Yonghua Huang d74497eb17 hv:refine modify_or_del_pte/pde/pdpte()function
1. Print warning message instead of ASSERT when
     the caller try to modify the attribute for
     memory region that is not present.
  2. To avoid above warning  message for memory region
     below 1M,its attribute may be updated by Service
     VM when updating MTTR setting.

Tracked-On: #3992
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-11-05 15:14:13 +08:00
Yonghua Huang 6ae2d9f22b hv: refine 'get_direct_boot_ap_trampoline()'
Currently, memory with size of 'CONFIG_LOW_RAM_SIZE' will be
  allocated when 'get_direct_boot_ap_trampoline()' is called.

  This patch refine the implementation of of above function, it
  returns the base address of trampoline buffer when called, and
  the memory is allocated when vboot module is initialized.

Tracked-On: #3992
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
2019-11-05 15:14:13 +08:00
Tonny Tzeng fd8b9c58ee doc: remove redundant copy of ovmf.fd firmware
Remove redundant copy of ovmf.fd firmware as the lunach script now
instructs the DM to user the OVMF.fd firmware directly from the rootfs.

Tracked-On: #3972
Signed-off-by: Tonny Tzeng <tonny.tzeng@intel.com>
2019-11-04 08:58:23 -05:00
Tonny Tzeng bd23e50642 doc: remove the guest cpu number option '-c' from the document
This commit updates the DM parameters reference document to reflect
the removal of the guest cpu number option '-c' implementation.

Tracked-On: #3989
Signed-off-by: Tonny Tzeng <tonny.tzeng@intel.com>
2019-11-04 08:56:15 -05:00
Yang, Yu-chu 086ec45725 doc: OVMF high level description
Add OVMF HLD and boot flow graph

Signed-off-by: Yang, Yu-chu <yu-chu.yang@intel.com>
2019-11-04 08:55:25 -05:00
wenlingz 18d5dd2fe9 Revert "OVMF release v1.4"
This reverts commit 84e5a8e894.
2019-11-04 11:15:00 +08:00
Kaige Fu c22f899a5e HV: Fix poweroff issue of hard RTVM
We should use INIT signal to notify the vcpu threads when
powering off the hard RTVM. To achive this, we should set
the vcpu->thread_obj.notify_mode as SCHED_NOTIFY_INIT.

Patch (27163df9 hv: sched: add sleep/wake for thread object)
tries to set the notify_mode according `is_lapic_pt_enabled(vcpu)`
in function prepare_vcpu. But at this point, the is_lapic_pt_enabled(vcpu)
will always return false. Consequently, it will set notify_mode
as SCHED_NOTIFY_IPI. Then leads to the failure of powering off
hard RTVM.

This patch fixes it by:
  - Initialize the notify_mode as SCHED_NOTIFY_IPI in prepare_vcpu.
  - Set notify_mode as SCHED_NOTIFY_INIT after guest is trying to
    enable x2apic mode of passthru lapic.

Tracked-On: #3975
Reviewed-by: Yin Fengwei <fengwei.yin@intel.com>
Reviewed-by: Yan, Like <like.yan@intel.com>
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-11-04 10:28:16 +08:00
Li, Fei1 9d26dab6d6 hv: mmio: add a lock to protect mmio_node access
After adding PCI BAR remap support, mmio_node may unregister when there's others
access it. This patch add a lock to protect mmio_node access.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-11-01 14:44:11 +08:00
Li, Fei1 21cb120bcc hv: vpci: add a global PCI lock for each VM
Concurrent access on PCI device may happened if UOS try to access PCI configuration
space on different vCPUs through IO port. This patch just adds a global PCI lock for
each VM to prevent the concurrent access.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-11-01 14:44:11 +08:00
Li, Fei1 f711d3a639 hv: vpci: define PCI CONFIG_ADDRESS Register as its physical layout
Refine PCI CONFIG_ADDRESS Register definition as its physical layout.
In this case, we could read/write PCI CONFIG_ADDRESS Register atomically.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-11-01 14:44:11 +08:00
wenlingz c8fa8e15f8 Modify KBL-NUC/SDC for default build
Tracked-On: #3968
Signed-off-by: wenlingz <wenling.zhang@intel.com>
2019-11-01 09:06:45 +08:00
Yin Fengwei 98fa9a81cd Doc: Update system power management doc
Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>
2019-10-31 18:54:51 -04:00
Yin Fengwei 3a4af4b096 doc: Update hv power management doc
Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>
2019-10-31 18:52:20 -04:00
Jason Chen CJ b2ef980260 document: update HLD for hypervisor overview
updated this chapter based on latest master
some part still need update:
- vSBL need be replaced by OVMF after removed all vSBL stuff

Tracked-On: #3882
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-10-31 18:44:27 -04:00
Jason Chen CJ 700d54e817 document: update HLD for cpu virtualization
updated this chapter based on latest master

Tracked-On: #3882
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-10-31 18:41:31 -04:00
Li, Fei1 6f310d1ab2 hv: mmio: move EPT operation out of register_mmio_emulation_handler
register_mmio_emulation_handler should only register handler for mmio emulation.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-10-31 11:46:10 +08:00
Li, Fei1 4f6653dc9c hv: vpci: do unmap/map in vdev_pt_write_vbar explicitly
Unmap old mappings in vdev_pt_write_vbar explicitly before set_vbar_base.
Then map new mappings explicitly in vdev_pt_write_vbar.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-10-31 11:46:10 +08:00
Huihuang Shi 5d662ea11f hv: fixed by replace ull to ul.
ul is used as immediate integer suffix with type uint64_t.

Tracked-On: #3214
Signed-off-by: Huihuang Shi <huihuang.shi@intel.com>
2019-10-31 09:02:59 +08:00
Jian Jun Chen 46b157008c dm: file lock should be held till all mmap is done
Lock should be held till all the mmap operations are done. This is to
avoid the mmap failure when multiple guests are created concurrently.
For example consider the following case in which vm1 and vm2 are
created by acrnd concurrently:
- vm1 is created with 4G+2M memory.
- 4G+2M memory is reserved in hugetlb now and vm1 continues to
  allocate memory for the lowmem without lock held.
- 2G memory is allocated by vm1 for its lowmem, and 2G+2M memory
  is available in hugetlb.
- At this time vm2 is created with 1G+2M memory. It finds that enough
  memory is reserved (2G+2M), so it does not try to reserve more
  memory.
- vm2 allocates some memory for its lowmem/highmem/ovmf.
- vm1 tries to allocate memory for its highmem/ovmf, the allocation
  will fail. vm1 creation failed in this case.

Tracked-On: #3947
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Reviewed-by: Yin Fengwei <fengwei.yin@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-30 11:37:44 +08:00
David B. Kinder 52304348d6 doc: doc build errors not being reported
PR #3665 moved all the doc build artifacts into the _build folder and
updated scripts and Makefile to account for this, except missed a fix in
the script that checks for known issues. This patch fixes that but shows
we've got a bunch of issues that have not been being reported so we'll
need to fix those problems to resolve failing doc builds.

Also fixed process of the VERSION file in conf.py since the path to that
file was changed by PR #3665 as well and was raising an exeception that
was being masked.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-10-29 17:28:26 -07:00
David B. Kinder c1cc3040a4 doc: fix remaining masked doc build errors
This should get us back to a clean doc build now...

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-10-29 17:26:21 -07:00
David B. Kinder a7a0852faa doc: fix doc build errors previously masked
As reported in PR #3959, doc build errors were being masked by a script
error.  This PR fixes a chunk of them.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-10-29 17:11:02 -07:00
Deb Taylor 04d88e4b7d Doc: remove broken links in RNs.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2019-10-29 20:06:25 -04:00
David B. Kinder 5a7237b3ff doc: fix broken include paths
PR #3665 moved the doc build folder, so files referenced via directives
had an incorrect path (need to add an additional ../../ to the front of
relative paths that were referencing files outside of the doc folder).

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-10-29 16:38:45 -07:00
David B. Kinder be91d87d36 doc: fix vuart-virt-hld errors
Fix "duplicate label" error (name of a figure collided with the name of
a document).  Also fixed very long lines, cleaned up some stray extra
spaces that were breaking up words, and some grammar issues.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-10-29 16:38:24 -07:00
Li, Fei1 2c158d5ad4 hv: io: add unregister_mmio_emulation_handler API
Since guest could re-program PCI device MSI-X table BAR, we should add mmio
emulation handler unregister.
However, after add unregister_mmio_emulation_handler API, emul_mmio_regions
is no longer accurate. Just replace it with max_emul_mmio_regions which records
the max index of the emul_mmio_node.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
2019-10-29 14:49:55 +08:00
Li, Fei1 dc1e2adaec hv: vpci: add PCI BAR re-program address check
In theory, guest could re-program PCI BAR address to any address. However, ACRN
hypervisor only support [0, top_address_space) EPT memory mapping. So we need to
check whether the PCI BAR re-program address is within this scope.

Tracked-On: #3475
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-10-29 14:49:55 +08:00
lirui34 dab14856c2 doc: Add industry argument for auto setup script
Also fix efibootmgr not set correct issue.

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-10-29 10:24:24 +08:00
Wei Liu 85b362fbeb acrn-config: modify vxworks uos id for industry launch config
As vm3 for industry scenario was removed from scenario config, so
modify the uos id to proper id.

Tracked-On: #3854
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-29 08:38:25 +08:00
Wei Liu 941d5ad308 acrn-config: parse rootfs_img and refine virtio-blk
1. Parse item of 'rootfs_img' from launch config xml.
2. Refine virtio-blk device for launch config.

Tracked-On: #3931
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
2019-10-29 08:38:25 +08:00
Wei Liu 8cd7c34580 acrn-config: modify board name to uos name
We should use launch_$(uos type) for launch function name instead of using
launch_$(board name).

Tracked-On: #3931
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-29 08:38:25 +08:00
Wei Liu 812d8af65a acrn-config: add mem_size for launch vm
add mem_size parameter for acrn-dm while generating launch script.

Traked-On: #3932
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-29 08:38:25 +08:00
Wei Liu f46d8a9669 acrn-config: add the '"' character for launch script
1. Add the character of quotation marks for launch vm script.
2. Audio codec should put together with audio devcie and pass to
 vm , otherwise report an error message to webUI.

Tracked-On: #3937
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-29 08:38:25 +08:00
Gao Junhao 4d8ca9c54a doc: add atkbdc emulation doc
add AT keyboard controller emulation doc and entry

Signed-off-by: Gao Junhao <junhao.gao@intel.com>
2019-10-28 18:06:36 -04:00