|
|
@ -1,28 +1,34 @@ |
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
modprobe msr allow_writes=on |
|
|
|
MSR_FILE=/sys/module/msr/parameters/allow_writes |
|
|
|
|
|
|
|
if cat /proc/cpuinfo | grep "AMD Ryzen" > /dev/null; |
|
|
|
if test -e "$MSR_FILE"; then |
|
|
|
echo on > $MSR_FILE |
|
|
|
else |
|
|
|
modprobe msr allow_writes=on |
|
|
|
fi |
|
|
|
|
|
|
|
if cat /proc/cpuinfo | grep -E 'AMD Ryzen|AMD EPYC' > /dev/null; |
|
|
|
then |
|
|
|
if cat /proc/cpuinfo | grep "cpu family[[:space:]]:[[:space:]]25" > /dev/null; |
|
|
|
then |
|
|
|
echo "Detected Ryzen (Zen3)" |
|
|
|
echo "Detected Zen3 CPU" |
|
|
|
wrmsr -a 0xc0011020 0x4480000000000 |
|
|
|
wrmsr -a 0xc0011021 0x1c000200000040 |
|
|
|
wrmsr -a 0xc0011022 0xc000000401500000 |
|
|
|
wrmsr -a 0xc001102b 0x2000cc14 |
|
|
|
echo "MSR register values for Ryzen (Zen3) applied" |
|
|
|
echo "MSR register values for Zen3 applied" |
|
|
|
else |
|
|
|
echo "Detected Ryzen (Zen1/Zen2)" |
|
|
|
echo "Detected Zen1/Zen2 CPU" |
|
|
|
wrmsr -a 0xc0011020 0 |
|
|
|
wrmsr -a 0xc0011021 0x40 |
|
|
|
wrmsr -a 0xc0011022 0x1510000 |
|
|
|
wrmsr -a 0xc001102b 0x2000cc16 |
|
|
|
echo "MSR register values for Ryzen (Zen1/Zen2) applied" |
|
|
|
echo "MSR register values for Zen1/Zen2 applied" |
|
|
|
fi |
|
|
|
elif cat /proc/cpuinfo | grep "Intel" > /dev/null; |
|
|
|
then |
|
|
|
echo "Detected Intel" |
|
|
|
echo "Detected Intel CPU" |
|
|
|
wrmsr -a 0x1a4 0xf |
|
|
|
echo "MSR register values for Intel applied" |
|
|
|
else |
|
|
|