Motherboard voltage control

So I’ve searched online but either can’t find it or I can’t word it correctly… what controls mother board/ cpu voltages and temps? Does the firmware onboard dictate how the motherboard operates or does the OS dictate voltages and monitor temps accordingly? Thanks in advance

The VRMs (voltage regulator modules) on the motherboard are controlled by the BIOS settings. The CPU has its own VRMs internally which control things like internal CPU voltage and RAM voltage, etc. Those are also set by the motherboard BIOS although the CPU is free to ignore it. It might be a CPU model designed to not overclock and it may just ignore any clock and voltage setting writes.

The operating system can use the same controls that the BIOS uses. It has to be done through a motherboard specific driver because there’s no standard for that. CPU settings are controlled by MSRs (Model Specific Registers) and that can be set by an OS driver.

It usually isn’t safe to just change things while running software. Also, sometimes things like operating system timing settings are only measured on boot, so changing the CPU base clock after boot could screw that up.

As for fan and temperature settings, those are controlled by the hardware or software. It can be complicated. It can be entirely controlled by a small chip that the BIOS programs on boot with the fan curve. It could also be controlled by an ACPI program which the operating system loads from the BIOS and runs. And almost every system allows the operating system to take over by writing fan speeds directly.

Interesting, i knew about the vrms but I didn’t know about the rest. So the reason i ask is under Windows i can see through hwinfo many voltages and temps of different components but when i run linux i can only see a very few voltages and temps. I had thought it was the OS with some input of the bios that controlled the motherboard but after not being able to see some voltages under linux i began to wonder.

The programmer behind hwinfo puts a lot of work into it. Plus, there’s sometimes help from the motherboard manufacturers and/or unofficial leaks from their engineers.

The opensource software like lmsensors tries to use official documentation of the hardware chips. These sometimes don’t auto-detect and are placed on the motherboard at undocumented bus locations. Reading or writing those locations can crash the system if the chip isn’t there or is a slightly different model than expected. Also the temperature calibration and fan speeds are sometimes off of what’s expected.

And of course even if a temperature chip is found, without official documentation or flat out guessing and experimentation, you don’t know what it is attached to.

For example, on an ASUS x370-PRIME board of mine, Linux lmsensors detected some temperature probes that I labelled DIMM 1 through 4. However, that’s just a guess and I don’t actually know which DIMM slots they correspond to.

That makes sense. I just hope everything works while i use linux. Anyways thanks for the information.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.