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