Commit Graph

4439 Commits

Author SHA1 Message Date
Jian Jun Chen 1d194ede61 hv: support reference time enlightenment
Two time related synthetic MSRs are implemented in this patch. Both of
them are partition wide MSR.
- HV_X64_MSR_TIME_REF_COUNT is read only and it is used to return the
  partition's reference counter value in 100ns units.
- HV_X64_MSR_REFERENCE_TSC is used to set/get the reference TSC page,
  a sequence number, an offset and a multiplier are defined in this
  page by hypervisor and guest OS can use them to calculate the
  normalized reference time since partition creation, in 100ns units.

Tracked-On: #3831
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2019-10-22 10:09:16 +08:00
wenwumax 048155d3d6 hv: support minimum set of TLFS
This patch implements the minimum set of TLFS functionality. It
includes 6 vCPUID leaves and 3 vMSRs.

- 0x40000001 Hypervisor Vendor-Neutral Interface Identification
- 0x40000002 Hypervisor System Identity
- 0x40000003 Hypervisor Feature Identification
- 0x40000004 Implementation Recommendations
- 0x40000005 Hypervisor Implementation Limits
- 0x40000006 Implementation Hardware Features

- HV_X64_MSR_GUEST_OS_ID Reporting the guest OS identity
- HV_X64_MSR_HYPERCALL Establishing the hypercall interface
- HV_X64_MSR_VP_INDEX Retrieve the vCPU ID from hypervisor

Tracked-On: #3832
Signed-off-by: wenwumax <wenwux.ma@intel.com>
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2019-10-22 10:09:16 +08:00
Wei Liu 009d835bba acrn-config: modify board info of block device info
As the blkid info contains 'UUID' information, which easy to lead to
confuse with the vm 'UUID'. So refine the format for block device.

v1-v2:
    1). align the style in BLOCK_DEVICE_INFO tag
    2). add 'mmcblk1p3' in BLOCK_DEVICE_INFO tag

v2-v3:
    1). correct the commit message.
    2). refine the api of handle_block_dev

Tracked-On: #3754
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 09:30:28 +08:00
Wei Liu 96dede43ad acrn-config: modify ipu/ipu_i2c device launch config of apl-up2
Correct the default settings of ipu/ipu_i2c device for apl-up2.

Tracked-On: #3863
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 08:58:04 +08:00
Wei Liu 001c929dd4 acrn-config: correct launch config info for audio/wifi defice of apl-mrb
The audio and Wifi device info in apl-mrb config xmls is wrong, fix it.

Tracked-On: #3863
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 08:58:04 +08:00
Wei Liu 2a647fa164 acrn-config: define vm name for Preempt-RT Linux in launch script
The vm name for Preempt-RT Linux is not defined in launch script,
causing Preempt RT linux launch failed.
This patch refine the vm name and define the vm name for Preempt-RT
Linux to fix such kinds of issues.

Tracked-On: #3852
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 08:57:47 +08:00
Wei Liu a2430f1313 acrn-config: refine board name with undline_name api
Sometimes character '-' or space need to be converted to '_' to make string format uniformed.
Add this common api to satisfy such requirment and refine the code for board name generating.

Tracked-On: #3852
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 08:57:47 +08:00
Wei Liu 95b9ba36b0 acrn-config: acrn-config: add white list to skip item check
Some acrn-dm arguments are not needed when launch some vm, but the
item check fucntion still has strict check on the arguments, which
result in the script generating failure.
This patch add whilte list to skip the check.

Tracked-On: #3852
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-22 08:57:47 +08:00
Yonghua Huang fc40ee4c83 vm-manager: fix improper return value check for "strtol()"
The return value of 'strtol()' is not checked properly
 in _get_vmname_pid() @acrn_vm_ops.c and parse_opt()@acnrd.c,
 the return type of 'strtol' is 'long int', but it is assigned
 to a variable with type of 'int' and compared to "LONG_MAX"
 and "LONG_MIN", which is always false.

 This patch is to fix above error case.

Tracked-On: #3859
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Yan, Like <like.yan@intel.com>
Acked-by: Yan, Like <like.yan@intel.com>
2019-10-22 08:57:03 +08:00
Deb Taylor 9c67d9b9c5 grammar edits for the hld security document 2019-10-21 18:31:09 -04:00
Yonghua Huang 15e8130fcb doc: hld-security hypervisor enhancement section update
Update some content for hypervisor enhancement section
 to keep it consistent with the design.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2019-10-21 14:13:45 -04:00
Yonghua Huang 2727263422 doc: hld-security memory management enhancement update
Remove some obsolete descriptions and update content
  that is not consistent with the design.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2019-10-21 14:10:49 -04:00
Yonghua Huang 81a7666292 doc: hld-security introduction update
update the 'Introduction' section.

Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2019-10-21 14:03:48 -04:00
Gao Junhao 38d706902d doc: add description for usb-virt-hld
add description of supporting WaaG USB camera and headset.

Signed-off-by: Gao Junhao <junhao.gao@intel.com>
2019-10-21 13:57:17 -04:00
Kaige Fu 8a2a56e87d Doc: Update hld-trace-log.rst
1) removed the earlylog section as we have remove
     the earlylog support from acrn hypervisor.
  2) updated SOS ACRN Log Module section as the size
     and base address of acrn log buffer are configured
     by kernel option now instead of hardcoding.

Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-10-21 13:55:09 -04:00
Wei Liu 96b4a6dbff acrn-config: add 'boot_audio_option' while auido/audio_codec set
Fixed the issue that parameter of 'boot_audio_option' is lost when
audio/auido codec device is configured.

Tracked-On: #3853
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-21 16:49:35 +08:00
Wei Liu 1326eec4eb acrn-config: refine the tools for audio/audio_codec
There are 2 scenarios to pass through audio/audio_codec:
1. Only pass through audio device to vm.
2. Pass through audio and audio codec device to vm.
The improvement is to generate proper boot audio option for each
scenario.

Tracked-On: #3853
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-21 16:49:35 +08:00
Wei Liu 950e3aa224 acrn-config: refine parameters for media_pt function
some parameters for media_pt function are not needed any more,
remove these redundant parameters.

Tracked-On: #3853
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-21 16:49:35 +08:00
Mingqiang Chi 292d1a15f9 hv:Wrap some APIs related with guest pm
-- change some APIs to static
-- combine two APIs to init_guest_pm

Tracked-On: #1842
Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com>
2019-10-21 10:13:02 +08:00
lirui34 988c1e483b doc: Align CL version for RT GSG and NUC GSG
Align CL version for RT GSG and NUC GSG

Signed-off-by: lirui34 <ruix.li@intel.com>
2019-10-18 15:42:21 -04:00
Yonghua Huang e7ef57a9f1 dm: fix mutex lock issue in tpm_rbc.c
In function crb_reg_write() in tpm_rbc.c
 'tpm_vdev->request_mutex' will potentially kept
 in locked state after crb_reg_write() returns.

Tracked-On: #3825
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Yadong Qi <yadong.qi@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-18 15:36:18 +08:00
Wei Liu 73ac285ec3 acrn-config: add 'run_container' back to the launch script
'run_container' starts to run the container which contains the
clearlinux rootfs. store it in the same launch script with clearlinux.

Tracked-On: #3811
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-18 15:35:10 +08:00
Wei Liu 55e4f0aff9 acrn-config: remove '-V' option from launch config
Remove '-V' option of launch type while generating launch script.

Tracked-On: #3811
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-18 15:35:10 +08:00
Wei Liu aee3bc3622 acrn-config: enable item check for launch config tool
1. enable item check for acrn-dm args which set from webUI input.
2. remove 'cpu_num' tag from launch config xml.

v1-v2:
    1). add method to check 'cpu_num'/'mem_size' in config xml.

v2-v3:
    1). as 'vcpu_num' configured in scenario, the parameter for acrn-dm is no
longer needed, remove 'cpu_num' tag and its handler from launch config.
    2). add 'poweroff_channel' tag for generic config.

Tracked-On: #3811
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-18 15:35:10 +08:00
fuzhongl 98dc755ef1 dm: NVME bdf info update on KBLNUC7i7DNH
Wrong NVMe bdf info of KBLNUC7i7DNH is modified by mistake; so change it back.

Tracked-On: #3827
Reviewed-by: binbin.wu@intel.com

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2019-10-18 15:33:46 +08:00
Deb Taylor 712dfa9589 minor content edits to virtio-rnd doc
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2019-10-17 22:49:27 -04:00
Gao Junhao 89ec29e1ee doc: merge random device doc to virtio-rnd doc
deleted random device virtualization document, and merge it to
virtio-rnd document.

Signed-off-by: Gao Junhao <junhao.gao@intel.com>
2019-10-17 20:12:27 -04:00
Gao Junhao f2fb227b05 doc: detail change for hld-devicemodel
update code in hld-devicemodel to latest.

Signed-off-by: Gao Junhao <junhao.gao@intel.com>
2019-10-17 20:07:40 -04:00
Geoffroy Van Cutsem d204fdee84 doc: add 'rsync' to the ACRN builder container
'rsync' is missing from the ACRN Builder Container (in 'doc/getting-started/Dockerfile').
Add it and also add the 'devpkg-graphviz' bundle specifically although it is
automatically included via the 'desktop-apps' (it does not use any additional
space and makes clearer that it is needed).

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2019-10-17 20:06:16 -04:00
Yonghua Huang d8deaa4b16 dm: close filepointer before exiting acrn_load_elf()
In acrn_load_elf(), file pointer 'fp' is kept in
 open state before exiting if 'load_elf32()' is executed,
 this patch is to fix this bug.

Tracked-On: #3817
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2019-10-17 13:13:06 +08:00
Gao Junhao b5f77c0769 doc: add socket console backend for virtio-console
add new console backend of socket for virtio-console

Signed-off-by: Gao Junhao <junhao.gao@intel.com>
2019-10-16 20:37:08 -04:00
fuzhongl d3ac30c639 hv: modify SOS i915 plane setting for hybrid scenario
Change i915.domain_plane_owners and i915.avail_planes_per_pipe for
hybrid scenario;because some User vm(like:Ubuntu/Debian and WaaG)
doesn't support plane restriction; it will use PipeA by default.

Tracked-On: #3840

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2019-10-16 22:02:45 +08:00
Victor Sun c74a197c24 acrn-config: modify SOS i915 plane setting for hybird xmls
Change i915.domain_plane_owners and i915.avail_planes_per_pipe for
hybrid scenario;because kvm based User vm will use PipeA.

Tracked-On: #3840
Signed-off-by: Victor Sun <victor.sun@intel.com>
2019-10-16 21:14:13 +08:00
Jian Jun Chen e1a2ed1727 hv: fix a bug that tpr threshold is not updated
Consider the following case when TPR shadow is used with vlapic
basic mode:
1) 2 interrupts are pending in vlapic. INTa's priority > TPR and
   INTb's priority <= TPR.
2) TPR threshold is set to zero and INTa is injected to guest.
3) Guest set TPR to the priority of INTa.
4) EOI of INTa. PPR is updated to TPR which equals INTa's priority.
   INTb cannot be injected because its priority <= PPR.
5) Guest set TPR to zero. Because TPR threshold is still zero, there is
   no TPR threshold vmexit. But since both TPR and ISRV are zero at
   this time, the PPR is zero as well. INTb still cannot be injected.
   This is a bug.

By adding vcpu_make_request(vlapic->vcpu, ACRN_REQUEST_EVENT) in EOI,
TPR threshold will be updated before vm_resume.

Tracked-On: #3795
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-10-16 16:40:29 +08:00
Shuang Zheng afb3608b81 acrn-config: add confirmation for commit of generated source in config app
add a confirmation interface to let user to commit changes into local tree
or not commit after generated source codes in config app.

Tracked-On: #3834
Signed-off-by: Shuang Zheng <shuang.zheng@intel.com>
Reviewed-by: Victor Sun <victor.sun@intel.com>
2019-10-16 15:37:30 +08:00
Wei Liu 8eaee3b09b acrn-config: add "enable_commit" parameter for config tool
Config tool will generate files for board/scenaro/launch, some files are
part of souce code for specify board. Git add/commit these files should
be one optional of user experience. Add "--enable_commit" parameter to
enable git add/commit.

usage:
--enable_commit: flag of whether to do git commit the config file changes
to current git branch. Do commit with this flag and not do without the flag.

Tracked-On: #3834
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-10-16 15:37:30 +08:00
xiaojin2 780a53a175 tools: acrn-crashlog: refine crash complete code
This patch is to remove unused info in server.c

Tracked-On: #3787
Signed-off-by: xiaojin2 <xiaojing.liu@intel.com>
Reviewed-by: Liu, Xinwu <xinwu.liu@intel.com>
Acked-by: CHEN Gang <gang.c.chen@intel.com>
2019-10-16 10:41:46 +08:00
Gao Junhao 43b2327eb8 dm: validation for input to public functions
slot value should be checked in range before used to access
bi->slotinfo[].

Tracked-On: #3822
Signed-off-by: Gao Junhao <junhao.gao@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-16 10:26:50 +08:00
Gao Junhao 477f8331eb dm: modify DIR handler reference postion
DIR handler is referenced after release, need to be adjusted before
released.

Tracked-On: #3821
Signed-off-by: Gao Junhao <junhao.gao@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-16 10:26:23 +08:00
Shuo A Liu de157ab96c hv: sched: remove runqueue from current schedule logic
Currently we are using a 1:1 mapping logic for pcpu:vcpu. So don't need
a runqueue for it. Removing it as preparation work to abstract scheduler
framework.

Tracked-On: #3813
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
Signed-off-by: Yu Wang <yu1.wang@intel.com>
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-10-16 10:25:53 +08:00
Shuo A Liu 837e4d8788 hv: sched: rename schedule related structs and vars
prepare_switch_out -> switch_out
prepare_switch_in -> switch_in
prepare_switch -> do_switch
run_thread_t -> thread_entry_t
sched_object -> thread_object
sched_object.thread -> thread_object.thread_entry
sched_obj -> thread_obj
sched_context -> sched_control
sched_ctx -> sched_ctl

Tracked-On: #3813
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
Signed-off-by: Yu Wang <yu1.wang@intel.com>
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-10-16 10:25:53 +08:00
Wei Liu 89f53a409a acrn-config: supply optional passthrough device for vm
To match launch config xml, supply more optional passthrough device to
vm.

Tracked-On: #3812
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
2019-10-16 10:24:23 +08:00
Geoffroy Van Cutsem 826094638a doc: Clear Linux "ACRN builder" container image
* Optimize the size of the Clear Linux container that can be used to build ACRN.
  This patch reduces the size of the container from approx. 10.8GB down to about
  3.8GB.
* Add tools required to build the ACRN documentation
* Add paragraph on how to build the ACRN documentation using Docker

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2019-10-15 07:36:11 -04:00
lirui34 44d2a56ba2 doc: fix missing words issue in acrn configuration tool doc
Signed-off-by: lirui34 <ruix.li@intel.com>
2019-10-15 07:23:16 -04:00
Binbin Wu d19592a33e hv: vmsr: disable prmrr related msrs in vm
PRMRR related MSRs need to be configured by platform BIOS / bootloader.
These settings are not allowed to be changed by guest.
VMs currently have no requirement to access these MSRs even when vSGX is enabled.
So, this patch disables PRMRR related MSRs in VM.

Tracked-On: #3739
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-10-15 15:13:11 +08:00
Mingqiang Chi de0a5a48d6 hv:remove some unnecessary includes
--remove unnecessary includes
--remove unnecssary forward-declaration for 'struct vhm_request'

Tracked-On: #861
Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com>
2019-10-15 14:40:39 +08:00
Junhao Gao 72232daafe dm: reduce potential crash caused by LIST_FOREACH
When removing node in list, list_foreach_safe will be safer than
LIST_FOREACH.

Tracked-On: #3778
Signed-off-by: Junhao Gao <junhao.gao@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-15 14:37:39 +08:00
Gao Junhao e6e0e27788 dm: refine the check of return value of snprintf
int snprintf(char *str, size_t size, const char *format, ...)
The functions snprintf() write at most size bytes (including the
terminating null byte('\0')) to str.
only when returned value of snprintf is non-negative and less than size,
the string has been completely written.

Tracked-On: #3789
Signed-off-by: Junhao Gao <junhao.gao@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-10-15 13:53:58 +08:00
Shuang Zheng 44c11ce6c4 acrn-config: fix the issue some select boxes disappear after edited
fix the issue: some select boxes disappear unexpectly after edited

Tracked-On: #3809
Signed-off-by: Shuang Zheng <shuang.zheng@intel.com>
Reviewed-by: Victor Sun <victor.sun@intel.com>
2019-10-15 13:18:20 +08:00
Deb Taylor c7ecdf4764 Corrected number issue in GSG for ACRN Ind Scenario file
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2019-10-14 17:47:37 -04:00