Stanislav Shwartsman
1e4f1624c8
remove trailing whitespace from source files
2022-08-23 21:46:04 +03:00
Stanislav Shwartsman
b946570838
implemented VMX Monitor Trap Flag handling
2022-08-16 21:17:05 +03:00
Stanislav Shwartsman
97a2cdd85f
update VMEXIT reasons according to published docs
...
update list of trap-like VMEXITs
2022-08-13 23:25:10 +03:00
Stanislav Shwartsman
f44f4ae753
MBE (Mode Based Execution Control) emulation ( #22 )
...
* MBE (Mode Based Execution Control) emulation
2022-07-30 15:26:47 +03:00
Stanislav Shwartsman
94503e7a0b
cpu/vmx definitions ( #20 )
...
* update vmx.h with recently published definition
* update actions after conflicts
2022-07-27 20:51:25 +03:00
Stanislav Shwartsman
1bf18b8aae
! CPUID: Added TigerLake CPU definition (features CET and CLWB support)
...
- CPU code refactor, remove uses of bx_bool datatype and use C++ classic bool instead.
This enable better compiler optimizations and reduce binary size
2021-01-30 08:35:35 +00:00
Stanislav Shwartsman
d540e5b040
rename VMCS control enum
2020-05-29 12:55:56 +00:00
Stanislav Shwartsman
4023b640d6
Protection Keys: Implemented Supervisor-Mode Protection Keys (PKS)
2020-05-29 12:35:30 +00:00
Stanislav Shwartsman
8e4a29fb0e
reorg vmcs fields enabling based on their numeric order
2020-05-15 19:27:45 +00:00
Stanislav Shwartsman
ea6b0c766c
added more VMX reasons to enum according to Intel SDM
2020-01-03 17:35:02 +00:00
Stanislav Shwartsman
edcdce927c
added ability to configure hidden VMCS field mapping through CPUID
2019-12-22 18:53:07 +00:00
Stanislav Shwartsman
f90e5f4f44
Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071
...
Only missing items (to be added soon):
- Supervisor Shadow Stack EPT Control is not implemented yet
- SMM placing for SSP
Currently have to be added manually to some CPUID model, for example to ICL-U
To enable configure with --enable-cet
2019-12-20 07:42:07 +00:00
Stanislav Shwartsman
12d228abde
split vmx initialization to multiple methods for better code readability, improve VMX error messages
2019-12-08 20:46:51 +00:00
Stanislav Shwartsman
85780d939a
extract MONITOR/MWAIT stuff to separate trsnlation unit
2019-05-25 18:32:17 +00:00
Stanislav Shwartsman
55d2dc6b0c
add some CPUID and VMCS definitions from latest SDM
2019-05-22 18:22:22 +00:00
Stanislav Shwartsman
eff201773f
convert some defines to enums and const expressions
2018-11-17 12:45:44 +00:00
Stanislav Shwartsman
afc2ee6bfd
Implemented SPP: EPT-Based Subpage Protection. Cleaned code duplication between FXSAVE/FXRSTORE and XSAVE/XRSTOR (save/restore of SSE code is the same)
2018-01-27 21:20:33 +00:00
Stanislav Shwartsman
69f27439db
added new cpuid flags mentioned in new Intel SDM future extensions rev030 doc
2017-10-13 20:27:52 +00:00
Stanislav Shwartsman
b2fdbd1274
added Skylake-X model to CPUDB -> with EVEX and AVX512 support
2017-08-09 20:36:17 +00:00
Stanislav Shwartsman
555bb8f8b6
updates to prev commit
2017-06-01 08:41:41 +00:00
Stanislav Shwartsman
6ab4fd597b
implement another form of AR field packing used in SKL, in addition on present NHM format
2017-06-01 08:31:20 +00:00
Stanislav Shwartsman
15d9b068a3
fix msvc warnings
2017-03-17 17:35:15 +00:00
Stanislav Shwartsman
3a033fa6db
implemented xsaves/xrstors extensions (supported by Intel Skylake core and AMD Ryzen)
2017-03-15 21:44:15 +00:00
Stanislav Shwartsman
1543034fb7
in the latest intel docs PCOMMIT CPUID bit doesn't exists anymore
2016-10-02 11:56:18 +00:00
Stanislav Shwartsman
adc143684b
implemented Intel architecture extensions published in recently published SDM 058:
...
! Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
! Implemented RDPID instruction
Bugfixes in RDPKRU/WRPKRU instructions implementation (Protection Keys feature)
2016-04-15 11:35:32 +00:00
Stanislav Shwartsman
8d13b61319
implemented TSC Scaling VMX feature according to timestamp-counter for virtualization whitepaper published by Intel
2015-09-30 18:44:01 +00:00
Stanislav Shwartsman
e9f9f824be
return value from clear/set_mapping functions
2015-07-06 20:16:34 +00:00
Stanislav Shwartsman
28c19ecec7
more interfaces to VMCS Mapping class
2015-07-06 20:14:56 +00:00
Stanislav Shwartsman
5fe1423ab6
introducr new class for VMCS mapping so it can be customized per cpuid
2015-07-06 18:46:57 +00:00
Stanislav Shwartsman
3fef7f32f6
added new bits definitions recently published
2015-06-29 19:53:56 +00:00
Stanislav Shwartsman
0d79c5f986
Implemented Page Modification Logging VMX feature
2015-05-06 19:55:44 +00:00
Stanislav Shwartsman
2185d21eb7
fixed comments for PML acronym
2015-05-05 19:52:05 +00:00
Stanislav Shwartsman
c9fba73a69
added defines about new VMX bits and controls related to Page Miss Logging (PML) EPT feature
2015-05-05 19:35:39 +00:00
Stanislav Shwartsman
080ceb8293
don't crash when running on 386 with no FPU model
2015-03-27 21:39:24 +00:00
Stanislav Shwartsman
c360ddf60c
correctly report memory type for EPT page table accesses
...
TODO: support memory type for guest physical access under EPT
TODO: support memory type for SVM nested paging
TODO: check what happens when PAT is not enabled in CPU configuration
2015-03-23 20:27:36 +00:00
Stanislav Shwartsman
987e2ad223
Added definitions from recently published Intel Architecture
...
Instruction Set Extensions Programming Reference rev22.
Implemented CLWB instruction
2014-11-01 13:12:24 +00:00
Stanislav Shwartsman
5eb781e45f
cleanup after cpu features interface rework
2014-08-31 19:22:41 +00:00
Stanislav Shwartsman
550e6bd307
moved (c) to year 2014 for few files
2014-02-06 17:06:25 +00:00
Stanislav Shwartsman
aea9ae1976
added definitions (CPUID bit, VMX fields and VMXEXIT reasons, etc) from recently published Intel SDM rev049
2014-02-06 17:05:20 +00:00
Stanislav Shwartsman
e1012f1165
add vmcs revision id interface to CPUID class
2013-10-14 18:35:56 +00:00
Stanislav Shwartsman
a277d60d89
implemented vmentering to non-active cpu state
2013-04-09 15:43:15 +00:00
Stanislav Shwartsman
8708d05bea
rename some VMX controls to match intel docs. added missed VMX consistency check
2013-02-24 20:22:22 +00:00
Stanislav Shwartsman
64df073617
implemented virtualization exception feature
2013-01-28 16:30:25 +00:00
Stanislav Shwartsman
d38fce8218
preparation for future extension in translate_linear - I would like to return data to caller through tlbEntry
2013-01-27 19:27:30 +00:00
Stanislav Shwartsman
3ab0331307
implemented VMCS shadowing (Intel SDM rev045)
2013-01-21 19:55:00 +00:00
Stanislav Shwartsman
4bed791ccb
Added year 2013 to Copyright in all files already modified in new year
2013-01-19 20:45:03 +00:00
Stanislav Shwartsman
c337b7babb
Intel Software Developers Manual rev45 was released
...
Added CPUID bits and preparations for newly documented VMX features
2013-01-16 16:57:48 +00:00
Stanislav Shwartsman
d93607cfe6
implemented pause threshold count in SVN + bugfix in SMAP
2013-01-08 21:03:22 +00:00
Stanislav Shwartsman
574b69c81e
fixed MSDEV warnings
2012-11-27 15:40:45 +00:00
Stanislav Shwartsman
8d32f2e305
fixed another compilaton err in vapic
2012-10-28 18:32:58 +00:00