From bb502250c627324fc39afdc80f90da02e42ecf15 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Tue, 27 Jul 2021 10:06:59 +0200 Subject: [PATCH] [v0.98] Update ryzen uarch table. Add bash script to decode CPUID --- src/x86/uarch.c | 6 ++++-- src/x86/uarch_decode.sh | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100755 src/x86/uarch_decode.sh diff --git a/src/x86/uarch.c b/src/x86/uarch.c index bc2fd22..3f6bb0c 100644 --- a/src/x86/uarch.c +++ b/src/x86/uarch.c @@ -347,8 +347,10 @@ struct uarch* get_uarch_from_cpuid_amd(uint32_t ef, uint32_t f, uint32_t em, uin CHECK_UARCH(arch, 8, 15, 1, 8, NA, "Zen+", UARCH_ZEN_PLUS, 12) // found only on en.wikichip.org CHECK_UARCH(arch, 8, 15, 3, 1, NA, "Zen 2", UARCH_ZEN2, 7) // found only on en.wikichip.org CHECK_UARCH(arch, 8, 15, 6, 0, NA, "Zen 2", UARCH_ZEN2, 7) // undocumented, geekbench.com example - CHECK_UARCH(arch, 8, 15, 7, 1, NA, "Zen 2", UARCH_ZEN2, 7) // undocumented, but samples from Steven Noonan - CHECK_UARCH(arch, 10, 15, NA, NA, NA, "Zen 3", UARCH_ZEN3, 7) // undocumented, LX* + CHECK_UARCH(arch, 8, 15, 6, 8, NA, "Zen 2", UARCH_ZEN2, 7) // found on instlatx64 + CHECK_UARCH(arch, 8, 15, 7, 1, NA, "Zen 2", UARCH_ZEN2, 7) // samples from Steven Noonan and instlatx64 + CHECK_UARCH(arch, 10, 15, 2, 1, NA, "Zen 3", UARCH_ZEN3, 7) // instlatx64 + CHECK_UARCH(arch, 10, 15, 5, 0, NA, "Zen 3", UARCH_ZEN3, 7) // instlatx64 UARCH_END return arch; diff --git a/src/x86/uarch_decode.sh b/src/x86/uarch_decode.sh new file mode 100755 index 0000000..6c1691f --- /dev/null +++ b/src/x86/uarch_decode.sh @@ -0,0 +1,23 @@ +#!/bin/bash -u + +CPUID=0x00A50F00 + +efamily=$(((${CPUID}>>20)&0xFF)) +family=$(((${CPUID}>>8)&0xF)) +emodel=$(((${CPUID}>>16)&0xF)) +model=$(((${CPUID}>>4)&0xF)) +stepping=$((${CPUID}&0xF)) + +printf 'CPUID: 0x%.8X\n' $CPUID +printf -- '- EF = 0x%X (%d)\n' $efamily $efamily +printf -- '- F = 0x%X (%d)\n' $family $family +printf -- '- EM = 0x%X (%d)\n' $emodel $emodel +printf -- '- M = 0x%X (%d)\n' $model $model +printf -- '- S = 0x%X (%d)\n' $stepping $stepping + +#EF=$efamily +#F=$family +#EM=$emodel +#M=$model +#S=$stepping +#grep -E "\s*CHECK_UARCH\(arch,\s*${EF},\s*${F},\s*(${EM}|NA),\s*(${M}|NA),\s*(${S}|NA)" uarch.c