From 915bcc0999b947ad39fe51c1bae41af8fb4bd9b5 Mon Sep 17 00:00:00 2001 From: Andrew Kurushin Date: Fri, 22 Jul 2022 15:33:19 +0300 Subject: [PATCH 1/2] add amd piledriver 0x10 model --- src/impl_x86__base_implementation.inl | 2 ++ test/cpuinfo_x86_test.cc | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/impl_x86__base_implementation.inl b/src/impl_x86__base_implementation.inl index fb295470..40ff550e 100644 --- a/src/impl_x86__base_implementation.inl +++ b/src/impl_x86__base_implementation.inl @@ -676,9 +676,11 @@ X86Microarchitecture GetX86Microarchitecture(const X86Info* info) { // https://en.wikichip.org/wiki/amd/microarchitectures/bulldozer return AMD_BULLDOZER; case CPUID(0x15, 0x02): + case CPUID(0x15, 0x10): case CPUID(0x15, 0x11): case CPUID(0x15, 0x13): // https://en.wikichip.org/wiki/amd/microarchitectures/piledriver + // https://www.amd.com/system/files/TechDocs/48931_15h_Mod_10h-1Fh_Rev_Guide.pdf return AMD_PILEDRIVER; case CPUID(0x15, 0x30): case CPUID(0x15, 0x38): diff --git a/test/cpuinfo_x86_test.cc b/test/cpuinfo_x86_test.cc index 3306333a..fbce49e0 100644 --- a/test/cpuinfo_x86_test.cc +++ b/test/cpuinfo_x86_test.cc @@ -499,6 +499,29 @@ TEST_F(CpuidX86Test, AMD_K15_PILEDRIVER_ABU_DHABI_CACHE_INFO) { EXPECT_EQ(info.levels[3].partitioning, 1); } +// https://github.com/InstLatx64/InstLatx64/blob/master/AuthenticAMD/AuthenticAMD0610F01_K15_Piledriver_CPUID.txt +TEST_F(CpuidX86Test, AMD_K15_PILEDRIVER_A10) { + cpu().SetLeaves({ + {{0x00000000, 0}, Leaf{0x0000000D, 0x68747541, 0x444D4163, 0x69746E65}}, + {{0x00000001, 0}, Leaf{0x00610F01, 0x00040800, 0x3E98320B, 0x178BFBFF}}, + {{0x00000007, 0}, Leaf{0x00000000, 0x00000008, 0x00000000, 0x00000000}}, + {{0x80000000, 0}, Leaf{0x8000001E, 0x68747541, 0x444D4163, 0x69746E65}}, + {{0x80000001, 0}, Leaf{0x00610F01, 0x20000000, 0x01EBBFFF, 0x2FD3FBFF}}, + {{0x80000002, 0}, Leaf{0x20444D41, 0x2D303141, 0x30303835, 0x5041204B}}, + {{0x80000003, 0}, Leaf{0x69772055, 0x52206874, 0x6F656461, 0x6D74286E}}, + {{0x80000004, 0}, Leaf{0x44482029, 0x61724720, 0x63696870, 0x00202073}}, + }); + const auto info = GetX86Info(); + + EXPECT_STREQ(info.vendor, "AuthenticAMD"); + EXPECT_EQ(info.family, 0x15); + EXPECT_EQ(info.model, 0x10); + EXPECT_STREQ(info.brand_string, + "AMD A10-5800K APU with Radeon(tm) HD Graphics "); + EXPECT_EQ(GetX86Microarchitecture(&info), + X86Microarchitecture::AMD_PILEDRIVER); +} + // http://users.atw.hu/instlatx64/AuthenticAMD/AuthenticAMD0600F12_K15_Interlagos_CPUID3.txt TEST_F(CpuidX86Test, AMD_K15_BULLDOZER_INTERLAGOS) { cpu().SetLeaves({ From 020eaa1e4dbf9cc6864181e58659c05e10c021bc Mon Sep 17 00:00:00 2001 From: Andrew Kurushin Date: Fri, 5 Aug 2022 16:27:50 +0300 Subject: [PATCH 2/2] use CPU_FEATURES_VENDOR_AUTHENTIC_AMD --- test/cpuinfo_x86_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cpuinfo_x86_test.cc b/test/cpuinfo_x86_test.cc index fbce49e0..df4673ef 100644 --- a/test/cpuinfo_x86_test.cc +++ b/test/cpuinfo_x86_test.cc @@ -513,7 +513,7 @@ TEST_F(CpuidX86Test, AMD_K15_PILEDRIVER_A10) { }); const auto info = GetX86Info(); - EXPECT_STREQ(info.vendor, "AuthenticAMD"); + EXPECT_STREQ(info.vendor, CPU_FEATURES_VENDOR_AUTHENTIC_AMD); EXPECT_EQ(info.family, 0x15); EXPECT_EQ(info.model, 0x10); EXPECT_STREQ(info.brand_string,