diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c index 57ac984790..52808f9809 100644 --- a/xen/arch/x86/acpi/cpu_idle.c +++ b/xen/arch/x86/acpi/cpu_idle.c @@ -1429,6 +1429,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power) switch ( c->x86 ) { + case 0x1a: case 0x19: case 0x18: if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON ) diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c index 9fe6e29751..31fbd326e5 100644 --- a/xen/arch/x86/cpu/microcode/amd.c +++ b/xen/arch/x86/cpu/microcode/amd.c @@ -114,6 +114,7 @@ static bool verify_patch_size(uint32_t patch_size) #define F16H_MPB_MAX_SIZE 3458 #define F17H_MPB_MAX_SIZE 3200 #define F19H_MPB_MAX_SIZE 5568 +#define F1AH_MPB_MAX_SIZE 15296 switch ( boot_cpu_data.x86 ) { @@ -132,6 +133,9 @@ static bool verify_patch_size(uint32_t patch_size) case 0x19: max_size = F19H_MPB_MAX_SIZE; break; + case 0x1a: + max_size = F1AH_MPB_MAX_SIZE; + break; default: max_size = F1XH_MPB_MAX_SIZE; break; diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c index 97e6315bd9..d31e5db5b1 100644 --- a/xen/arch/x86/cpu/vpmu_amd.c +++ b/xen/arch/x86/cpu/vpmu_amd.c @@ -567,6 +567,7 @@ const struct arch_vpmu_ops *__init amd_vpmu_init(void) case 0x15: case 0x17: case 0x19: + case 0x1a: num_counters = F15H_NUM_COUNTERS; counters = AMD_F15H_COUNTERS; ctrls = AMD_F15H_CTRLS;