42 lines
1.3 KiB
Diff
42 lines
1.3 KiB
Diff
|
|
From 120d0b9e5c92de91c69fb9fbea038b51c820013d Mon Sep 17 00:00:00 2001
|
||
|
|
From: jiangxin <jiangxin@hygon.cn>
|
||
|
|
Date: Tue, 24 Aug 2021 17:31:28 +0800
|
||
|
|
Subject: [PATCH] target/i386: cpu: Populate CPUID 0x8000_001F when CSV3 is
|
||
|
|
active
|
||
|
|
|
||
|
|
On Hygon platform, bit 30 of EAX indicates whether
|
||
|
|
this feature is supported in hardware.
|
||
|
|
|
||
|
|
When CSV3 is active, CPUID 0x8000_001F provides
|
||
|
|
information for it.
|
||
|
|
|
||
|
|
Signed-off-by: Xin Jiang <jiangxin@hygon.cn>
|
||
|
|
Signed-off-by: hanliyang <hanliyang@hygon.cn>
|
||
|
|
---
|
||
|
|
target/i386/cpu.c | 2 ++
|
||
|
|
1 file changed, 2 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||
|
|
index ca7e5337b0..36f7ad6460 100644
|
||
|
|
--- a/target/i386/cpu.c
|
||
|
|
+++ b/target/i386/cpu.c
|
||
|
|
@@ -29,6 +29,7 @@
|
||
|
|
#include "hvf/hvf-i386.h"
|
||
|
|
#include "kvm/kvm_i386.h"
|
||
|
|
#include "sev.h"
|
||
|
|
+#include "csv.h"
|
||
|
|
#include "qapi/error.h"
|
||
|
|
#include "qemu/error-report.h"
|
||
|
|
#include "qapi/qapi-visit-machine.h"
|
||
|
|
@@ -6943,6 +6944,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||
|
|
if (sev_enabled()) {
|
||
|
|
*eax = 0x2;
|
||
|
|
*eax |= sev_es_enabled() ? 0x8 : 0;
|
||
|
|
+ *eax |= csv3_enabled() ? 0x40000000 : 0; /* bit 30 for CSV3 */
|
||
|
|
*ebx = sev_get_cbit_position() & 0x3f; /* EBX[5:0] */
|
||
|
|
*ebx |= (sev_get_reduced_phys_bits() & 0x3f) << 6; /* EBX[11:6] */
|
||
|
|
}
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|