Score:0

Override BIOS limitation on CPU frequency

in flag

Similar to previous questions (example 1, example 2), the BIOS is limiting my CPU frequency because of a bad connection with the center pin of the adapter on my Dell Precision M5520 (which leads to BIOS warning: "The AC power adapter wattage and type cannot be determined. The battery may not charge. The system will adjust the performance to match the power available."). Indeed the computer is very slow and the battery won't charge.

I believe the computer actually is getting enough power, so I'd like to override the BIOS limitation.

I tried the answers from the above example questions, but they did not work. Furthermore, I don't have a bios_limit file (search entire disk).

What else can I do to override the BIOS?

(I've ordered a replacement charging jack, but want to do this in the meantime)


Background Info

~ $ lscpu | grep MHz
CPU MHz:             603.129
CPU max MHz:         3900.0000
CPU min MHz:         800.0000


~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:    18.04
Codename:   bionic

~ $ uname -r
4.15.0-147-generic

~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
3900000
~ $ cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq 
3900000

~ $ cat /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"
GRUB_CMDLINE_LINUX="acpi_rev_override"

~ $ sudo update-grub
~ $ sudo reboot

~ $ for i in {0..7}; do sudo cpufreq-set -c $i -g performance; done
~ $ cat /sys/devices/system/cpu/cpu{0..7}/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance


~ $ sensors | grep -P "Core \d"
Core 0:        +40.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +41.0°C  (high = +100.0°C, crit = +100.0°C)

~ $ lscpu | grep MHz
CPU MHz:             605.135
CPU max MHz:         3900.0000
CPU min MHz:         800.0000


Nmath avatar
ng flag
BIOS is hardware level so I don't think you can override it with software and even if you could, it sounds like a very bad idea in this scenario and a recipe for bricking your hardware. Don't mess with voltages unless you know for a fact that it's going to be fine. I wouldn't go off a feeling here.
Doug Smythies avatar
gn flag
Dell forces clock modulation when it doesn't detect its own power supply. If you force the performance governor, then you are already doing all you can. I think, but am not sure, if you disable clock modulation via direct MSR write, the BIOS will just enable it again.
Score:0
in flag

Ok, I was able to get it to work following this answer.

~ $ lscpu | grep MHz
CPU MHz:             2934.500
CPU max MHz:         3900.0000
CPU min MHz:         800.0000

While in general, overriding the BIOS does seem like a bad idea, in this case this whole problem seems to have been caused Dell's tactic to prevent non-OEM adapters. I know the AC jack can't read the center pin because I see that part is broken and I have no reason to think there's anything wrong with the actual power supplied (delivered through the inner and outer side of the charger's outer tube).

The frequency fluctuates. I seem to remember this command printing the max MHz for CPU MHz before my AC power jack's center pin receptor broke. I do notice that if you disable Intel SpeedStep in the BIOS, then it will run at the full frequency, but I'm guessing that's not a great idea since the frequency fluctuating is the whole point of that.

Garrett avatar
in flag
Follow up: was actually not the center pin issue, turned out to be something in the circuit that connects to the battery. In any case, this solution worked as a workaround.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.