Commit Graph

7908 Commits

Author SHA1 Message Date
Conghui
12bfa98a37 hv: support asyncio request
Current IO emulation is synchronous. The user VM need to wait for the
completion of the the I/O request before return. But Virtio Spec
introduces introduces asynchronous IO with a new register in MMIO/PIO
space named NOTIFY, to be used for FE driver to notify BE driver, ACRN
hypervisor can emulate this register by sending a notification to vCPU
in Service VM side. This way, FE side can resume to work without waiting
for the full completion of BE side response.

Tracked-On: #8209
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-27 10:26:42 +08:00
Conghui
9cf9606e56 hv: extend sbuf hypercall
Extend sbuf hypercall to support other kinds of share buffer.

Tracked-On: #8209
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-27 10:26:42 +08:00
Conghui
efb01db779 hv: change sbuf to a common infrastructure
sbuf is now only used for debug purpose, but later, it will be used as a
common interfaces. So, move the sbuf related code out of the debug directory.

Tracked-On: #8209
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-27 10:26:42 +08:00
Reyes, Amy
fcc8edac38 doc: add 3.1 to /latest header note
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-26 10:07:26 -07:00
Reyes, Amy
9f52c5c32a doc: Update v3.1 release notes
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-26 10:04:24 -07:00
Minggui Cao
6d4ca4b3a1 hv: improve smp call to support debugging RTVM
Improve SMP call to support ACRN shell to operate RTVM.
before, the RTVM CPU can't be kicked off by notification IPI,
so some shell commands can't support it, like rdmsr/wrmsr,
memory/registers dump. So INIT will be used for RTVM, which
LAPIC is pass-thru.

Tracked-On: #8207
Signed-off-by: Minggui Cao <minggui.cao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-26 13:28:02 +08:00
Minggui Cao
bc4c773cf8 hv: add param to control INIT used to kick pCPU
By default, notification IPI used to kick sharing pCPU, INIT
used to kick partition pCPU. If USE_INIT_IPI flag is passed to
hypervisor, only INIT will be used to kick pCPU.

Tracked-On: #8207
Signed-off-by: Minggui Cao <minggui.cao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-26 13:28:02 +08:00
Minggui Cao
2c140addaf hv: use kick-mode in per-cpu to control kick pCPU
INIT signal has been used to kick off the partitioned pCPU, like RTVM,
whose LAPIC is pass-through. notification IPI is used to kick off
sharing pCPU.

Add mode_to_kick_pcpu in per-cpu to control the way of kicking
pCPU.

Tracked-On: #8207
Signed-off-by: Minggui Cao <minggui.cao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-26 13:28:02 +08:00
Reyes, Amy
39cdf6f7a6 doc: add 3.1 release docs to menu choice
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-23 22:01:45 -07:00
Reyes, Amy
88c78c9e43 doc: Editorial changes to v3.1 release notes
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-23 14:42:20 -07:00
Reyes, Amy
ed9baa64ea doc: Update S5 tutorial
- Update the S5 tutorial to align with new template and GSG scenario

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-23 09:37:29 -07:00
zhangrouyu
76d8fea2ff doc: Upgrade the information about Release Notes
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-23 08:26:22 -07:00
zhangrouyu
4844ae4772 Update the version infomation of sample app guide
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-23 08:18:47 -07:00
Zhao Yakui
d0720096b0 ACRN:HV:VPCI: Forward access of PCI ROM bar_reg to DM for passthru device
The access to PCI config_space is handled in HV for Passthrough pci
devices. And it also provides one mechanism to forward cfg_access of
some registers to DM. For example: the opregion reg for GPU device.

This patch tried to add the support of emulated PCI ROM bar for the
device. And it doesn't handle the phys PCI ROM bar of phys PCI devices.
At the same time the rom firmware is provided in DM and pci rom bar_reg
is also emulated in DM, this leverages the quirk mechanism so that the
access to PCI rom bar_reg is forwarded to DM.

Tracked-On: #8175
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
Acked-by: Wang Yu <yu1.wang@intel.com>
2022-09-23 18:12:01 +08:00
Zhao Yakui
3c01a6a0cf ACRN:DM:PT: Add romfile option for rombar on GPU passthrough device
Add the option of "romfile=file_location" to specify the rom file for rombar

Tracked-On: #8175
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Wang Yu <yu1.wang@intel.com>
2022-09-23 18:12:01 +08:00
Zhao Yakui
db7be2c6f6 ACRN:DM:PCI: Add the emulation of PCI rom bar register for passthru device
The pci_reg 0x30 of PCI config_space is used to check whether the PCI rom
bar is supported. When the PCI rom is supported for the device in guest vm,
the 0x30 pci_reg is emulated and it can return the addr/enable bit.

Tracked-On: #8175
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2022-09-23 18:12:01 +08:00
Zhao Yakui
64ecf193e4 ACRN:DM:PCI: Load rom_file and map it into PCI ROMbar
PCI ROM is the firmware specific to PCI device and it is provided by
the device vendor. The PCI rom resides in 0x30 offset of PCI config space.
This can be used to check whether the PCI rom exists. And when it exists,
it can load the firmware from the addr that is obtained from ROM bar addr.

For the user-vm, it will try to load the rom_file for the given PCI device and
enable the VM to access the firmware that is defined in rom_file.

BTW: The emulated rom_file is converted from efi image by using EfiRom. It has
no dependency on the ROM bar of physical PCI devices. Of course if the physical
PCI devices supports the ROM bar, the rom_file can also be dumped from the PCI
rom.

Now this is limited to PCI display device.

V2->V3: Add the function of pci_load_rombar/pci_release_rombar to handle the
	rombar in course of passthrough_init/deinit.

Tracked-On: #8175
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Wang Yu <yu1.wang@intel.com>
2022-09-23 18:12:01 +08:00
Zhao Yakui
270aaf82d8 ACRN:DM:PCI: Add the support of allocating resource for PCI ROM bar
Now the device model only supports the 0..5 PCI bar for PCI/PCIE devices.
This tries to allocate the PCI_MEM32 resource for PCI ROM bar.

V1->V2: Use the PCI_ROMBAR as bar index and PCIBAR_ROM bar type when calling
the pci_emul_alloc_bar to allocate the guest physical addr for PCI ROM bar.
And it will allocate the resource from PCIBAR_MEM32 region.

V2->V3: Add more comments that describes the parameter of pci_emul_alloc_bar.

Tracked-On: #8175
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Wang Yu <yu1.wang@intel.com>
2022-09-23 18:12:01 +08:00
Chuang Ke
50cdcb3660 [config_tool] Message when CAT not supported
use better wording instead the message when CAT not supported

Tracked-On: #8136
Signed-off-by: Chuang-Ke <chuangx.ke@intel.com>
2022-09-22 23:14:01 +08:00
Reyes, Amy
dc6fccfa0d doc: Editorial changes to hypercall hld
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-21 09:18:37 -07:00
Junjie Mao
245951f8ea doc: add hypercall ABI in the HLD
The application binary interface (ABI) is an important aspect of
hypercalls. But unfortunately it is not yet defined anywhere in the current
HLD.

This patch adds the current ABI specification to the hypercall section of
HLD.

Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-09-21 08:16:56 -07:00
Chuang Ke
a35f3c0d65 [config_tool] vCAT widget behavior
let vCAT chunk no longer  fixed-drag

Tracked-On: #8187
Signed-off-by: Chuang-Ke <chuangx.ke@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-09-21 16:51:03 +08:00
Junjie Mao
3a4b84e078 config_tools: handle multiple xs:documentation properly
With multiple xs:documentation nodes under the same xs:annotation, xs2js
will convert the XML into a dict where the key `xs:documentation` maps to a
list rather than a string. This patch enhances the converter.py to handle
such case properly.

Tracked-On: #8098
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-09-21 15:15:38 +08:00
Conghui
91cc0d5bf8 dm: iothread: fix bug in iothread handler
Fix the bug in iothread handler, the event should be read out so that the
next epoll_wait not return directly as the fd can still readable.

Tracked-On: #8181
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-09-21 12:29:07 +08:00
Conghui
fcd92f1c2f dm: virtio-blk: fix parameter err
Fix the truncate issue for virtio block parameter.

Tracked-On: #8162
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-09-21 12:29:07 +08:00
Reyes, Amy
c6cbd6b6df doc: Update sample app
- Minor editorial changes
- Improve image quality

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-20 13:18:09 -07:00
Wu Zhou
6a430de814 hv: remove CPU frequency control from guests
The design of ACRN CPU performance management is to let hardware
do the autonomous frequency selection(or set to a fixed value),
and remove guest's ability to control CPU frequency.

This patch is to remove guest's ability to control CPU frequency by
removing the guests' HWP/EIST CPUIDs and blocking the related MSR
accesses. Including:
  - Remove CPUID.06H:EAX[7..11] (HWP)
  - Remove CPUID.01H:ECX[7] (EIST)
  - Inject #GP(0) upon accesses to MSR_IA32_PM_ENABLE,
    MSR_IA32_HWP_CAPABILITIES, MSR_IA32_HWP_REQUEST,
    MSR_IA32_HWP_STATUS, MSR_IA32_HWP_INTERRUPT,
    MSR_IA32_HWP_REQUEST_PKG
  - Emulate MSR_IA32_PERF_CTL. Value written to MSR_IA32_PERF_CTL
    is just stored for reading. This is like how the native
    environment would behavior when EIST is disabled from BIOS.
  - Emulate MSR_IA32_PERF_STATUS by filling it with base frequency
    state. This is consistent with Windows, which displays current
    frequency as base frequency when running in VM.
  - Hide the IA32_MISC_ENABLE bit 16 (EIST enable) from guests.
    This bit is dependent to CPUID.01H:ECX[7] according to SDM.
  - Remove CPID.06H:ECX[0] (hardware coordination feedback)
  - Inject #GP(0) upon accesses to IA32_MPERF, IA32_APERF

Also DM do not need to generate _PSS/_PPC for post-launched VMs
anymore. This is done by letting hypercall HC_PM_GET_CPU_STATE sub
command ACRN_PMCMD_GET_PX_CNT and ACRN_PMCMD_GET_PX_DATA return (-1).

Tracked-On: #8168
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-21 03:48:58 +08:00
Reyes, Amy
f0eddc6a4c doc: Update acrnctrl readme
- Update broken link and minor editorial changes

Tracked-On: #8172

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-20 09:09:47 -07:00
Reyes, Amy
42be836301 doc: Minor editorial update to GVT-d tutorial
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-19 10:21:55 -07:00
zhangrouyu
67a161c13e gtvd
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-19 10:04:33 -07:00
zhangrouyu
5a1e1fd6b4 supplement to revision
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-19 09:42:48 -07:00
zhangrouyu
7aa3df8d7d Add configuration files for ASRock system, with Intel(R) 12th Gen Core(TM)CPU(formerly known as Alder Lake) and 32G memory.
Tracked-On: #8163
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-19 21:48:17 +08:00
zhangrouyu
8d0131e7fb improve the document of acrnd
Tracked-On:#8148
Signed-off-by: zhangrouyu <rouyu.zhang@intel.com>
2022-09-19 12:10:59 +08:00
Reyes, Amy
96baec68c0 doc: Minor GSG edits
- Minor editorial changes
- Improve image quality
- Delete unused image

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-16 15:38:11 -07:00
zhangrouyu
34776484df GSG document revision 2022-09-16 13:28:14 -07:00
zhangrouyu
ef41f87171 improve the document of acrnd 2022-09-16 13:28:14 -07:00
Reyes, Amy
98886ae2a0 doc: Update CPU sharing tutorial
- Clarify blocked state

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-16 09:12:41 -07:00
Yang,Yu-chu
0d7527ce2f config-tools: diable real_time_vcpu for non real-time VM
Reset the real_time_vcpu to 'n' if the VM is not a real-time VM.

Tracked-On: #8145
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-09-16 10:18:01 +08:00
Reyes, Amy
d579a0be47 doc: Improve image quality - configurator
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-15 15:22:33 -07:00
Reyes, Amy
78609b0ba1 doc: Improve image quality - ivshmem
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-15 11:47:09 -07:00
Reyes, Amy
d7404bb976 doc: Improve image quality
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-15 11:34:59 -07:00
Reyes, Amy
2238452c1d doc: Improve image quality
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-15 11:20:48 -07:00
Reyes, Amy
eda363f28a doc: Update CPU sharing tutorial to match v3.1 Configurator
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-15 08:11:40 -07:00
Reyes, Amy
38294e6b81 doc: Minor edit to RDT tutorial
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-14 17:24:11 -07:00
Reyes, Amy
7c7326e166 doc: Update supported HW
Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-14 17:23:54 -07:00
Jian Jun Chen
1bf984890b hv: tsc: start HPET counter before calibration
HPET is used to calibrate the tsc frequency if system fails to
get the accurate frequency from CPUID 0x15. But on some platforms
(for example: the emulated ACRN on QEMU) HPET is not started
by default, which causes the failure of calibration TSC by HPET.

Tracked-On: #8113
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-09-15 03:14:01 +08:00
Reyes, Amy
13aa50b508 doc: Remove note about v3.0 Configurator issue
The issue has been fixed in v3.1.

Signed-off-by: Reyes, Amy <amy.reyes@intel.com>
2022-09-14 09:47:42 -07:00
Chenli Wei
71ccd8a5e5 doc: update vUART tutorials
The ACRN Configurator release 3.1 following the release 3.0 logic, so
the COM2 still used for S5.

This patch modify the "The release v3.0 ACRN Configurator assigns… …"
to "The release v3.0+ ACRN Configurator assigns… …" and refine a typo
issue.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-09-14 09:47:14 -07:00
Chenli Wei
122e97e5a1 misc: add assertion to check the BDF value
The BDF of user setting should skip the slot '00', '01', '02', '1f', all
these slots should select one of the 03~1e.

This patch add an assertion to check the above policy.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-09-14 18:15:29 +08:00
Yang,Yu-chu
c17c8e321c config-tools: fix typos of UI and README
1. In the title "Create a new Scenario", capitalize the "N" in "new".
2. Fix the file path to the installer.

Tracked-On: #8137
Signed-off-by: Yang,Yu-chu <yu-chu.yang@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-09-14 08:44:57 +08:00