VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/OvmfPkg/IntelTdx/README.md@ 107064

Last change on this file since 107064 was 105670, checked in by vboxsync, 6 months ago

Devices/EFI/FirmwareNew: Merge edk2-stable-202405 and make it build on aarch64, bugref:4643

  • Property svn:eol-style set to native
File size: 3.8 KB
Line 
1TDVF Overview
2-------------
3
4**Intel Trust Domain Extension (TDX)** is Intel Architecture extension
5to provide trusted, isolated VM execution by removing CSP software
6(hypervisor etc) from the TCB. **TDX Virtual Firmware (TDVF)** is an
7EDK II based project to enable UEFI support for TDX based Virtual
8Machines. It provides the capability to launch a TD.
9
10The **Intel TDX Virtual Firmware Design Guide** is at
11https://www.intel.com/content/dam/develop/external/us/en/documents/tdx-virtual-firmware-design-guide-rev-1.01.pdf.
12
13More information can be found at:
14https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html
15
16
17Configurations and Features
18----------------------------
19
20There are 2 configurations for TDVF.
21
22**Config-A:**
23 - Merge the *basic* TDVF feature to existing **OvmfPkgX64.dsc**. (Align
24 with existing SEV)
25 - Threat model: VMM is **NOT** out of TCB. (We don't make things worse)
26 - The OvmfPkgX64.dsc includes SEV/TDX/normal OVMF basic boot capability.
27 The final binary can run on SEV/TDX/normal OVMF.
28 - No changes to existing OvmfPkgX64 image layout.
29 - No need to remove features if they exist today.
30 - PEI phase is **NOT** skipped in either TD or Non-TD.
31 - RTMR based measurement (CC_MEASUREMENT) is supported as an optional requirement.
32 - External inputs from Host VMM are measured, such as TdHob, CFV.
33 - Other external inputs are measured, such as FW_CFG data, os loader,
34 initrd, etc.
35
36**Config-B:**
37 - Add a standalone **IntelTdxX64.dsc** to a TDX specific directory
38 (**OvmfPkg/IntelTdx**) for a *full* feature TDVF.(Align with existing SEV)
39 - Threat model: VMM is out of TCB. (We need necessary change to prevent
40 attack from VMM)
41 - IntelTdxX64.dsc includes TDX/normal OVMF basic boot capability. The final
42 binary can run on TDX/normal OVMF.
43 - It might eventually merge with AmdSev.dsc, but NOT at this point of
44 time. And we don't know when it will happen. We need sync with AMD in
45 the community after both of us think the solutions are mature to merge.
46 - RTMR based measurement (CC_MEASUREMENT) is supported as a mandatory requirement.
47 - External inputs from Host VMM are measured, such as TdHob, CFV.
48 - Other external inputs are measured, such as FW_CFG data, os loader,
49 initrd, etc.
50 - PEI phase is skipped to remove unnecessary attack surface.
51 - DXE FV is split into 2 FVs (DXEFV & NCCFV) to remove the unnecessary attack
52 surface in a TD guest..
53 - When launching a TD guest, only drivers in DXEFV are loaded.
54 - When launching a Non-TD guest, dirvers in both DXEFV and NCCFV are
55 loaded.
56
57Build
58------
59- Build the TDVF (Config-A) target:
60```
61cd /path/to/edk2
62source edksetup.sh
63
64## without CC_MEASUREMENT enabled
65build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b RELEASE
66
67## CC_MEASUREMENT enabled
68build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -D CC_MEASUREMENT_ENABLE=TRUE -b RELEASE
69```
70
71- Build the TDVF (Config-B) target:
72```
73cd /path/to/edk2
74source edksetup.sh
75build -p OvmfPkg/IntelTdx/IntelTdxX64.dsc -a X64 -t GCC5 -b RELEASE
76```
77
78Usage
79-----
80
81Assuming TDX-QEMU/TDX-KVM are already built, one can start a TD virtual
82machine as [launching-td-guest](https://github.com/intel/qemu-tdx/blob/tdx-qemu-upstream-rfc-v3/docs/system/i386/tdx.rst#launching-a-td-tdx-vm):
83
84`qemu_system_x86 \`
85` -machine ...,confidential-guest-support=tdx0 \`
86` -object tdx-guest,id=tdx0,[sept-ve-disable=off] \`
87` -drive if=pflash,format=raw,unit=0,file=/path/to/OVMF_CODE.fd \`
88` -drive if=pflash,format=raw,unit=1,file=/path/to/OVMF_VARS.fd \`
89
90Note:
91TDX-QEMU/TDX-KVM are still in upstreaming progress. Please refer to:
92 - kvm : https://github.com/intel/tdx/tree/kvm-upstream
93 - qemu : https://github.com/intel/qemu-tdx/blob/tdx-qemu-upstream-rfc-v3
94
95Once above 2 upstreaming are completed a minimum qemu/kvm version will be updated here.
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette