The following changes since commit f0737158b483e7ec2b2512145aeab888b85cc1f7:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2025-05-20 10:26:30 -0400)
are available in the Git repository at:
https://gitlab.com/bonzini/qemu.git tags/for-upstream
for you to fetch changes up to 9bd24d8d2756a0771b6677b02c7f9b603ef6afe9:
target/i386/tcg/helper-tcg: fix file references in comments (2025-05-28 19:35:55 +0200)
----------------------------------------------------------------
* target/i386/kvm: Intel TDX support
* target/i386/emulate: more lflags cleanups
* meson: remove need for explicit listing of dependencies in hw_common_arch and
target_common_arch
* rust: small fixes
* hpet: Reorganize register decoding to be more similar to Rust code
* target/i386: fixes for AMD models
* target/i386: new EPYC-Turin CPU model
----------------------------------------------------------------
Babu Moger (6):
target/i386: Update EPYC CPU model for Cache property, RAS, SVM feature bits
target/i386: Update EPYC-Rome CPU model for Cache property, RAS, SVM feature bits
target/i386: Update EPYC-Milan CPU model for Cache property, RAS, SVM feature bits
target/i386: Add couple of feature bits in CPUID_Fn80000021_EAX
target/i386: Update EPYC-Genoa for Cache property, perfmon-v2, RAS and SVM feature bits
target/i386: Add support for EPYC-Turin model
Chao Peng (1):
i386/tdx: load TDVF for TD guest
Fiona Ebner (1):
target/i386/tcg/helper-tcg: fix file references in comments
Isaku Yamahata (5):
i386/tdx: Make sept_ve_disable set by default
i386/tdx: Support user configurable mrconfigid/mrowner/mrownerconfig
i386/tdvf: Introduce function to parse TDVF metadata
i386/tdx: Add TDVF memory via KVM_TDX_INIT_MEM_REGION
i386/tdx: Don't synchronize guest tsc for TDs
Lei Wang (1):
i386: Remove unused parameter "uint32_t bit" in feature_word_description()
Paolo Bonzini (4):
rust: hpet: rename hpet module to "device"
target/i386/emulate: more lflags cleanups
rocker: do not pollute the namespace
rust: make declaration of dependent crates more consistent
Pierrick Bouvier (7):
meson: build target libraries with common dependencies
hw/arm: remove explicit dependencies listed
target/arm: remove explicit dependencies listed
meson: apply target config for picking files from lib{system, user}
meson: merge lib{system, user}_ss with {system, user}_ss
meson: remove lib{system, user}_ss aliases
meson: merge hw_common_arch in target_common_system_arch
Xiaoyao Li (49):
i386: Introduce tdx-guest object
i386/tdx: Implement tdx_kvm_type() for TDX
i386/tdx: Implement tdx_kvm_init() to initialize TDX VM context
i386/tdx: Get tdx_capabilities via KVM_TDX_CAPABILITIES
i386/tdx: Introduce is_tdx_vm() helper and cache tdx_guest object
kvm: Introduce kvm_arch_pre_create_vcpu()
i386/tdx: Initialize TDX before creating TD vcpus
i386/tdx: Add property sept-ve-disable for tdx-guest object
i386/tdx: Wire CPU features up with attributes of TD guest
i386/tdx: Validate TD attributes
i386/tdx: Set APIC bus rate to match with what TDX module enforces
i386/tdx: Implement user specified tsc frequency
i386/tdx: Parse TDVF metadata for TDX VM
i386/tdx: Don't initialize pc.rom for TDX VMs
i386/tdx: Track mem_ptr for each firmware entry of TDVF
i386/tdx: Track RAM entries for TDX VM
headers: Add definitions from UEFI spec for volumes, resources, etc...
i386/tdx: Setup the TD HOB list
i386/tdx: Call KVM_TDX_INIT_VCPU to initialize TDX vcpu
i386/tdx: Finalize TDX VM
i386/tdx: Enable user exit on KVM_HC_MAP_GPA_RANGE
i386/tdx: Handle KVM_SYSTEM_EVENT_TDX_FATAL
i386/tdx: Wire TDX_REPORT_FATAL_ERROR with GuestPanic facility
kvm: Check KVM_CAP_MAX_VCPUS at vm level
i386/cpu: introduce x86_confidential_guest_cpu_instance_init()
i386/tdx: implement tdx_cpu_instance_init()
i386/cpu: Introduce enable_cpuid_0x1f to force exposing CPUID 0x1f
i386/tdx: Force exposing CPUID 0x1f
i386/tdx: Set kvm_readonly_mem_enabled to false for TDX VM
i386/tdx: Disable SMM for TDX VMs
i386/tdx: Disable PIC for TDX VMs
i386/tdx: Set and check kernel_irqchip mode for TDX
i386/tdx: Only configure MSR_IA32_UCODE_REV in kvm_init_msrs() for TDs
i386/apic: Skip kvm_apic_put() for TDX
cpu: Don't set vcpu_dirty when guest_state_protected
i386/cgs: Rename *mask_cpuid_features() to *adjust_cpuid_features()
i386/tdx: Implement adjust_cpuid_features() for TDX
i386/tdx: Add TDX fixed1 bits to supported CPUIDs
i386/tdx: Add supported CPUID bits related to TD Attributes
i386/tdx: Add supported CPUID bits relates to XFAM
i386/tdx: Add XFD to supported bit of TDX
i386/tdx: Define supported KVM features for TDX
i386/cgs: Introduce x86_confidential_guest_check_features()
target/i386: Print CPUID subleaf info for unsupported feature
i386/tdx: Fetch and validate CPUID of TD guest
i386/tdx: Don't treat SYSCALL as unavailable
i386/tdx: Make invtsc default on
i386/tdx: Validate phys_bits against host value
docs: Add TDX documentation
Zhao Liu (3):
hw/timer/hpet: Reorganize register decoding
rust: Fix Zhao's email address
rust: Fix the typos in doc
docs/system/confidential-guest-support.rst | 1 +
docs/system/i386/tdx.rst | 161 +++
docs/system/target-i386.rst | 1 +
configs/devices/i386-softmmu/default.mak | 1 +
meson.build | 122 +--
qapi/qom.json | 35 +
qapi/run-state.json | 31 +-
hw/i386/tdvf-hob.h | 26 +
hw/net/rocker/rocker.h | 14 +-
hw/net/rocker/rocker_hw.h | 20 +-
include/hw/i386/tdvf.h | 45 +
include/standard-headers/uefi/uefi.h | 187 ++++
include/system/kvm.h | 1 +
target/i386/confidential-guest.h | 44 +-
target/i386/cpu.h | 44 +
target/i386/host-cpu.h | 1 +
target/i386/kvm/kvm_i386.h | 15 +
target/i386/kvm/tdx.h | 65 ++
target/i386/tcg/helper-tcg.h | 4 +-
accel/kvm/kvm-all.c | 11 +-
hw/i386/kvm/apic.c | 5 +
hw/i386/pc.c | 29 +-
hw/i386/pc_sysfw.c | 7 +
hw/i386/tdvf-hob.c | 130 +++
hw/i386/tdvf.c | 189 ++++
hw/i386/x86-common.c | 6 +-
hw/net/rocker/rocker_of_dpa.c | 40 +-
hw/timer/hpet.c | 166 ++--
system/runstate.c | 65 ++
target/arm/kvm.c | 5 +
target/i386/cpu.c | 522 +++++++++-
target/i386/emulate/x86_flags.c | 16 +-
target/i386/host-cpu.c | 2 +-
target/i386/kvm/kvm.c | 110 ++-
target/i386/kvm/tdx-stub.c | 20 +
target/i386/kvm/tdx.c | 1289 +++++++++++++++++++++++++
target/i386/sev.c | 12 +-
target/loongarch/kvm/kvm.c | 4 +
target/mips/kvm.c | 5 +
target/ppc/kvm.c | 5 +
target/riscv/kvm/kvm-cpu.c | 5 +
target/s390x/kvm/kvm.c | 5 +
accel/tcg/meson.build | 8 +-
gdbstub/meson.build | 4 +-
hw/arm/meson.build | 4 +-
hw/core/meson.build | 4 +-
hw/i386/Kconfig | 6 +
hw/i386/meson.build | 1 +
plugins/meson.build | 4 +-
rust/hw/char/pl011/meson.build | 12 +-
rust/hw/char/pl011/src/device.rs | 4 +-
rust/hw/timer/hpet/src/{hpet.rs => device.rs} | 2 +-
rust/hw/timer/hpet/src/fw_cfg.rs | 2 +-
rust/hw/timer/hpet/src/lib.rs | 4 +-
rust/meson.build | 16 +
rust/qemu-api-macros/meson.build | 14 +-
rust/qemu-api/meson.build | 4 +-
rust/qemu-api/src/bitops.rs | 2 +-
rust/qemu-api/src/qom.rs | 4 +-
rust/qemu-api/src/timer.rs | 2 +-
rust/qemu-api/src/vmstate.rs | 2 +-
rust/qemu-api/tests/vmstate_tests.rs | 2 +-
system/meson.build | 2 +-
target/arm/meson.build | 2 +-
target/i386/kvm/meson.build | 2 +
tcg/meson.build | 4 +-
66 files changed, 3231 insertions(+), 346 deletions(-)
create mode 100644 docs/system/i386/tdx.rst
create mode 100644 hw/i386/tdvf-hob.h
create mode 100644 include/hw/i386/tdvf.h
create mode 100644 include/standard-headers/uefi/uefi.h
create mode 100644 target/i386/kvm/tdx.h
create mode 100644 hw/i386/tdvf-hob.c
create mode 100644 hw/i386/tdvf.c
create mode 100644 target/i386/kvm/tdx-stub.c
create mode 100644 target/i386/kvm/tdx.c
rename rust/hw/timer/hpet/src/{hpet.rs => device.rs} (99%)
--
2.49.0