x86/amd: Initial support for Fam19h processors
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 30 Apr 2020 09:47:14 +0000 (10:47 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 4 May 2020 10:04:29 +0000 (11:04 +0100)
Fam19h is very similar to Fam17h in these regards.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/acpi/cpu_idle.c
xen/arch/x86/cpu/microcode/amd.c
xen/arch/x86/cpu/vpmu_amd.c
xen/arch/x86/nmi.c
xen/arch/x86/traps.c

index e00f2a82de999ccfff4dc3a110afe3d6b4b590d4..b83446e77d4227d8eccc05ab90cf8805c6719b84 100644 (file)
@@ -1356,6 +1356,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
 
     switch ( c->x86 )
     {
+    case 0x19:
     case 0x18:
         if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
         {
index 13bf9f4dee3fbb95e35a30d63fbeae2458d61051..3f0969e70dc6691483247880509ee746bb91b437 100644 (file)
@@ -112,6 +112,7 @@ static bool_t verify_patch_size(uint32_t patch_size)
 #define F15H_MPB_MAX_SIZE 4096
 #define F16H_MPB_MAX_SIZE 3458
 #define F17H_MPB_MAX_SIZE 3200
+#define F19H_MPB_MAX_SIZE 4800
 
     switch (boot_cpu_data.x86)
     {
@@ -127,6 +128,9 @@ static bool_t verify_patch_size(uint32_t patch_size)
     case 0x17:
         max_size = F17H_MPB_MAX_SIZE;
         break;
+    case 0x19:
+        max_size = F19H_MPB_MAX_SIZE;
+        break;
     default:
         max_size = F1XH_MPB_MAX_SIZE;
         break;
index 3c6799b42c7fd1a52f865d6c015f7fbaf158fdcb..eba47cd2a03125a405164281748922eb4b4d4afa 100644 (file)
@@ -576,6 +576,7 @@ int __init amd_vpmu_init(void)
     {
     case 0x15:
     case 0x17:
+    case 0x19:
         num_counters = F15H_NUM_COUNTERS;
         counters = AMD_F15H_COUNTERS;
         ctrls = AMD_F15H_CTRLS;
index c3f92ed231562e40b36acf3096b17d879681b3ea..014524486f292a264135ad508db97850d152660f 100644 (file)
@@ -398,7 +398,7 @@ void setup_apic_nmi_watchdog(void)
     case X86_VENDOR_AMD:
         switch (boot_cpu_data.x86) {
         case 6:
-        case 0xf ... 0x17:
+        case 0xf ... 0x19:
             setup_k7_watchdog();
             break;
         default:
index 0bcf554e937087a9000c0adfa2ac745a32b398b1..33e5d21eceedaf09ac97081fc44990708766c2bd 100644 (file)
@@ -1939,7 +1939,7 @@ static unsigned int calc_ler_msr(void)
         switch ( boot_cpu_data.x86 )
         {
         case 6:
-        case 0xf ... 0x17:
+        case 0xf ... 0x19:
             return MSR_IA32_LASTINTFROMIP;
         }
         break;