From 4274e2d7d00058b5a6aca7c4b256c0c6fb01d69d Mon Sep 17 00:00:00 2001
From: Xu Yandong <xuyandong2@huawei.com>
Date: Wed, 14 Aug 2019 16:51:23 +0800
Subject: [PATCH] cpu_map: Introduce arm CPU models

support vendor and model for virConnectGetCapabilities in ARM,
add arm cpu info to cpu map

Signed-off-by: Xu Yandong <xuyandong2@huawei.com>
---
 src/cpu_map/Makefile.inc.am     |  5 +++++
 src/cpu_map/arm_Kunpeng-920.xml | 24 ++++++++++++++++++++++++
 src/cpu_map/arm_cortex-a53.xml  |  6 ++++++
 src/cpu_map/arm_cortex-a57.xml  |  6 ++++++
 src/cpu_map/arm_cortex-a72.xml  |  6 ++++++
 src/cpu_map/arm_vendors.xml     | 14 ++++++++++++++
 src/cpu_map/index.xml           | 12 ++++++++++++
 7 files changed, 73 insertions(+)
 create mode 100644 src/cpu_map/arm_Kunpeng-920.xml
 create mode 100644 src/cpu_map/arm_cortex-a53.xml
 create mode 100644 src/cpu_map/arm_cortex-a57.xml
 create mode 100644 src/cpu_map/arm_cortex-a72.xml
 create mode 100644 src/cpu_map/arm_vendors.xml

diff --git a/src/cpu_map/Makefile.inc.am b/src/cpu_map/Makefile.inc.am
index ce8a311..3b63203 100644
--- a/src/cpu_map/Makefile.inc.am
+++ b/src/cpu_map/Makefile.inc.am
@@ -60,6 +60,11 @@ cpumap_DATA = \
 	cpu_map/x86_Skylake-Server-IBRS.xml \
 	cpu_map/x86_Westmere.xml \
 	cpu_map/x86_Westmere-IBRS.xml \
+	cpu_map/arm_vendors.xml \
+	cpu_map/arm_cortex-a53.xml \
+	cpu_map/arm_cortex-a57.xml \
+	cpu_map/arm_cortex-a72.xml \
+	cpu_map/arm_Kunpeng-920.xml \
 	$(NULL)
 
 EXTRA_DIST += $(cpumap_DATA)
diff --git a/src/cpu_map/arm_Kunpeng-920.xml b/src/cpu_map/arm_Kunpeng-920.xml
new file mode 100644
index 0000000..619a2ef
--- /dev/null
+++ b/src/cpu_map/arm_Kunpeng-920.xml
@@ -0,0 +1,24 @@
+<cpus>
+  <model name='Kunpeng-920'>
+    <vendor name='Hisilicon'/>
+    <pvr value='0xd01'/>
+    <feature name="fp"/>
+      <feature name="asimd"/>
+      <feature name="evtstrm"/>
+      <feature name="aes"/>
+      <feature name="pmull"/>
+      <feature name="sha1"/>
+      <feature name="sha2"/>
+      <feature name="crc32"/>
+      <feature name="atomics"/>
+      <feature name="fphp"/>
+      <feature name="asimdhp"/>
+      <feature name="cpuid"/>
+      <feature name="asimdrdm"/>
+      <feature name="jscvt"/>
+      <feature name="fcma"/>
+      <feature name="dcpop"/>
+      <feature name="asimddp"/>
+      <feature name="asimdfhm"/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/arm_cortex-a53.xml b/src/cpu_map/arm_cortex-a53.xml
new file mode 100644
index 0000000..3580236
--- /dev/null
+++ b/src/cpu_map/arm_cortex-a53.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='cortex-a53'>
+    <vendor name='ARM'/>
+    <pvr value='0xd03'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/arm_cortex-a57.xml b/src/cpu_map/arm_cortex-a57.xml
new file mode 100644
index 0000000..3bc4324
--- /dev/null
+++ b/src/cpu_map/arm_cortex-a57.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='cortex-a57'>
+    <vendor name='ARM'/>
+    <pvr value='0xd07'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/arm_cortex-a72.xml b/src/cpu_map/arm_cortex-a72.xml
new file mode 100644
index 0000000..c509a40
--- /dev/null
+++ b/src/cpu_map/arm_cortex-a72.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='cortex-a72'>
+    <vendor name='ARM'/>
+    <pvr value='0xd08'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/arm_vendors.xml b/src/cpu_map/arm_vendors.xml
new file mode 100644
index 0000000..840bf9a
--- /dev/null
+++ b/src/cpu_map/arm_vendors.xml
@@ -0,0 +1,14 @@
+<cpus>
+  <vendor name="ARM" value="0x41"/>
+  <vendor name="Broadcom" value="0x42"/>
+  <vendor name="Cavium" value="0x43"/>
+  <vendor name="DigitalEquipment" value="0x44"/>
+  <vendor name="Hisilicon" value="0x48"/>
+  <vendor name="Infineon" value="0x49"/>
+  <vendor name="Freescale" value="0x4D"/>
+  <vendor name="NVIDIA" value="0x4E"/>
+  <vendor name="APM" value="0x50"/>
+  <vendor name="Qualcomm" value="0x51"/>
+  <vendor name="Marvell" value="0x56"/>
+  <vendor name="Intel" value="0x69"/>
+</cpus>
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 3c6885f..d222fd3 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -75,4 +75,16 @@
     <include filename="ppc64_POWERPC_e5500.xml"/>
     <include filename="ppc64_POWERPC_e6500.xml"/>
   </arch>
+
+  <arch name='arm'>
+    <include filename="arm_vendors.xml"/>
+
+    <!-- ARM-based CPU models -->
+    <include filename="arm_cortex-a53.xml"/>
+    <include filename="arm_cortex-a57.xml"/>
+    <include filename="arm_cortex-a72.xml"/>
+
+    <!-- Hisilicon-based CPU models -->
+    <include filename="arm_Kunpeng-920.xml"/>
+  </arch>
 </cpus>
-- 
2.19.1

