- target/riscv/cpu.c: fix Zvkb extension config - target/i386: Add new Hygon 'Dharma' CPU model - target/i386: Add Hygon Dhyana-v3 CPU model - ui/gtk: Fix mouse/motion event scaling issue with GTK display backend - hw/ufs: Fix buffer overflow bug - arm/virt: Set vcpus_count of CPU as 1 to compatible with libvirt - ppc/pnv: I2C controller is not user creatablei Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
134 lines
4.6 KiB
Diff
134 lines
4.6 KiB
Diff
From f4d31d640491c66bb1277e12d3c1d0e7ebc7cae5 Mon Sep 17 00:00:00 2001
|
|
From: Yanjing Zhou <zhouyanjing@hygon.cn>
|
|
Date: Wed, 15 May 2024 13:50:17 +0800
|
|
Subject: [PATCH] target/i386: Add new Hygon 'Dharma' CPU model
|
|
|
|
Add the following feature bits compare to Dhyana CPU model:
|
|
stibp, ibrs, umip, ssbd
|
|
|
|
Signed-off-by: Yanjing Zhou <zhouyanjing@hygon.cn>
|
|
---
|
|
target/i386/cpu.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 99 insertions(+)
|
|
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
|
index f4c22f32c6..711370d9b8 100644
|
|
--- a/target/i386/cpu.c
|
|
+++ b/target/i386/cpu.c
|
|
@@ -2162,6 +2162,56 @@ static const CPUCaches epyc_genoa_cache_info = {
|
|
},
|
|
};
|
|
|
|
+static const CPUCaches dharma_cache_info = {
|
|
+ .l1d_cache = &(CPUCacheInfo) {
|
|
+ .type = DATA_CACHE,
|
|
+ .level = 1,
|
|
+ .size = 32 * KiB,
|
|
+ .line_size = 64,
|
|
+ .associativity = 8,
|
|
+ .partitions = 1,
|
|
+ .sets = 64,
|
|
+ .lines_per_tag = 1,
|
|
+ .self_init = 1,
|
|
+ .no_invd_sharing = true,
|
|
+ },
|
|
+ .l1i_cache = &(CPUCacheInfo) {
|
|
+ .type = INSTRUCTION_CACHE,
|
|
+ .level = 1,
|
|
+ .size = 32 * KiB,
|
|
+ .line_size = 64,
|
|
+ .associativity = 8,
|
|
+ .partitions = 1,
|
|
+ .sets = 64,
|
|
+ .lines_per_tag = 1,
|
|
+ .self_init = 1,
|
|
+ .no_invd_sharing = true,
|
|
+ },
|
|
+ .l2_cache = &(CPUCacheInfo) {
|
|
+ .type = UNIFIED_CACHE,
|
|
+ .level = 2,
|
|
+ .size = 512 * KiB,
|
|
+ .line_size = 64,
|
|
+ .associativity = 8,
|
|
+ .partitions = 1,
|
|
+ .sets = 1024,
|
|
+ .lines_per_tag = 1,
|
|
+ },
|
|
+ .l3_cache = &(CPUCacheInfo) {
|
|
+ .type = UNIFIED_CACHE,
|
|
+ .level = 3,
|
|
+ .size = 16 * MiB,
|
|
+ .line_size = 64,
|
|
+ .associativity = 16,
|
|
+ .partitions = 1,
|
|
+ .sets = 16384,
|
|
+ .lines_per_tag = 1,
|
|
+ .self_init = true,
|
|
+ .inclusive = true,
|
|
+ .complex_indexing = true,
|
|
+ },
|
|
+};
|
|
+
|
|
/* The following VMX features are not supported by KVM and are left out in the
|
|
* CPU definitions:
|
|
*
|
|
@@ -5038,6 +5088,55 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
|
.model_id = "AMD EPYC-Genoa Processor",
|
|
.cache_info = &epyc_genoa_cache_info,
|
|
},
|
|
+ {
|
|
+ .name = "Dharma",
|
|
+ .level = 0xd,
|
|
+ .vendor = CPUID_VENDOR_HYGON,
|
|
+ .family = 24,
|
|
+ .model = 4,
|
|
+ .stepping = 0,
|
|
+ .features[FEAT_1_EDX] =
|
|
+ CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX | CPUID_CLFLUSH |
|
|
+ CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA | CPUID_PGE |
|
|
+ CPUID_MTRR | CPUID_SEP | CPUID_APIC | CPUID_CX8 | CPUID_MCE |
|
|
+ CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE | CPUID_DE |
|
|
+ CPUID_VME | CPUID_FP87,
|
|
+ .features[FEAT_1_ECX] =
|
|
+ CPUID_EXT_RDRAND | CPUID_EXT_F16C | CPUID_EXT_AVX |
|
|
+ CPUID_EXT_XSAVE | CPUID_EXT_AES | CPUID_EXT_POPCNT |
|
|
+ CPUID_EXT_MOVBE | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 |
|
|
+ CPUID_EXT_CX16 | CPUID_EXT_FMA | CPUID_EXT_SSSE3 |
|
|
+ CPUID_EXT_MONITOR | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
|
|
+ .features[FEAT_8000_0001_EDX] =
|
|
+ CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_PDPE1GB |
|
|
+ CPUID_EXT2_FFXSR | CPUID_EXT2_MMXEXT | CPUID_EXT2_NX |
|
|
+ CPUID_EXT2_SYSCALL,
|
|
+ .features[FEAT_8000_0001_ECX] =
|
|
+ CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH |
|
|
+ CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM |
|
|
+ CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM |
|
|
+ CPUID_EXT3_TOPOEXT | CPUID_EXT3_PERFCORE,
|
|
+ .features[FEAT_8000_0008_EBX] =
|
|
+ CPUID_8000_0008_EBX_CLZERO | CPUID_8000_0008_EBX_XSAVEERPTR |
|
|
+ CPUID_8000_0008_EBX_IBPB | CPUID_8000_0008_EBX_IBRS |
|
|
+ CPUID_8000_0008_EBX_STIBP | CPUID_8000_0008_EBX_AMD_SSBD,
|
|
+ .features[FEAT_7_0_EBX] =
|
|
+ CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AVX2 |
|
|
+ CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_RDSEED |
|
|
+ CPUID_7_0_EBX_ADX | CPUID_7_0_EBX_SMAP | CPUID_7_0_EBX_CLFLUSHOPT |
|
|
+ CPUID_7_0_EBX_SHA_NI,
|
|
+ .features[FEAT_7_0_ECX] = CPUID_7_0_ECX_UMIP,
|
|
+ .features[FEAT_XSAVE] =
|
|
+ CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XSAVEC |
|
|
+ CPUID_XSAVE_XGETBV1,
|
|
+ .features[FEAT_6_EAX] =
|
|
+ CPUID_6_EAX_ARAT,
|
|
+ .features[FEAT_SVM] =
|
|
+ CPUID_SVM_NPT | CPUID_SVM_NRIPSAVE,
|
|
+ .xlevel = 0x8000001E,
|
|
+ .model_id = "Hygon Dharma Processor",
|
|
+ .cache_info = &dharma_cache_info,
|
|
+ },
|
|
};
|
|
|
|
/*
|
|
--
|
|
2.41.0.windows.1
|
|
|