summary refs log tree commit diff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@chromium.org>2018-03-21 18:05:43 -0400
committerchrome-bot <chrome-bot@chromium.org>2018-03-21 20:48:40 -0700
commit63be8cb9d3dbcb283d096e56846c5577a66c78e4 (patch)
tree66352f5c065d20fb356d3eced2832c4e0e7bdd0b
parente4fc0fecad75b4959220df91d37501551b9773b2 (diff)
downloadcrosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar.gz
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar.bz2
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar.lz
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar.xz
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.tar.zst
crosvm-63be8cb9d3dbcb283d096e56846c5577a66c78e4.zip
x86_64: improve documentation for cpuid vendor
BUG=None
TEST=None

Change-Id: Id274c361d10be00d5d7279765a2e90ad5ecb4112
Reviewed-on: https://chromium-review.googlesource.com/974314
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
-rw-r--r--x86_64/src/cpuid.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/x86_64/src/cpuid.rs b/x86_64/src/cpuid.rs
index f1c7b56..1efb667 100644
--- a/x86_64/src/cpuid.rs
+++ b/x86_64/src/cpuid.rs
@@ -9,9 +9,12 @@ use std::error::{self, Error as CpuidError};
 use kvm;
 use sys_util;
 
-const VENDOR_EBX_VAL: u32 = 0x534f5243;
-const VENDOR_ECX_VAL: u32 = 0x4d56534f;
-const VENDOR_EDX_VAL: u32 = 0x52434d56;
+// Query the CPU vendor.  ebx/ecx/edx pack an ASCII string into these 3 regs
+// in little endian format.  We set to "CrOSVMBestVM".
+// https://en.wikipedia.org/wiki/CPUID#EAX=0:_Get_vendor_ID_(including_EAX=1:_Get_CPUID)
+const VENDOR_EBX_VAL: u32 = 0x4d567473;  // MVts
+const VENDOR_ECX_VAL: u32 = 0x65424d56;  // eBMV
+const VENDOR_EDX_VAL: u32 = 0x534f7243;  // SOrC
 
 #[derive(Debug, PartialEq)]
 pub enum Error {
@@ -52,7 +55,7 @@ fn filter_cpuid(cpu_id: u64, cpu_count: u64, kvm_cpuid: &mut kvm::CpuId) -> Resu
     for entry in entries.iter_mut() {
         match entry.function {
             0 => {
-                // Vendor name "CROSVMCROSVM" in little endian.
+                // Vendor name.
                 entry.ebx = VENDOR_EBX_VAL;
                 entry.ecx = VENDOR_ECX_VAL;
                 entry.edx = VENDOR_EDX_VAL;