FreeBSD tool for CPU undervolting

Hi!

Is there a tool for FreeBSD to undervolt an Intel SpeedStep compatible CPU similar to RMClock on Windows and linux-PHC on Linux?
I need such a tool in order to be able to lower the voltage of my CPU by ~0.25V to use my laptop comfortably. With stock voltages the CPU is constantly overheating and the fan is working at max speed at all times, not being able to cool it down.
My laptop is running stable with such settings for over 2 years now on both Windows and Linux and I wanted to give FreeBSD a try.
I know I could possibly patch the BIOS to fix the problem permanently but modifying it is quite risky.

The laptop is HP nc4010.
CPU is Pentium M 745 (Dothan, 1.8GHz, 2MB cache).

Thanks in advance
 
I'm interested in a MSR tool (rdmsr/wrmsr) for undervolting!

On Linux I did this for -100.6 mV Offset Voltage and max IccMax on a i5-8400H:

Code:
wrmsr --all '0x150' '80000011F3200000'
wrmsr --all '0x150' '0x80000017000003ff'
wrmsr --all '0x150' '80000211F3200000'
wrmsr --all '0x150' '0x80000217000003ff'
wrmsr --all '0x150' '80000411F3200000'
wrmsr --all '0x150' '0x80000417000003ff'

I think I saw some tools that use wrmsr in code for MSR writing, but I'm looking for a userspace app to do stuff like that and PROCHOT directly.
 
I'm interested in a MSR tool (rdmsr/wrmsr) for undervolting!

On Linux I did this for -100.6 mV Offset Voltage and max IccMax on a i5-8400H:

Code:
wrmsr --all '0x150' '80000011F3200000'
wrmsr --all '0x150' '0x80000017000003ff'
wrmsr --all '0x150' '80000211F3200000'
wrmsr --all '0x150' '0x80000217000003ff'
wrmsr --all '0x150' '80000411F3200000'
wrmsr --all '0x150' '0x80000417000003ff'

I think I saw some tools that use wrmsr in code for MSR writing, but I'm looking for a userspace app to do stuff like that and PROCHOT directly.
how do you know the magic numbers to put in there to make that work? That just looks like random numbers to me.
 
how do you know the magic numbers to put in there to make that work? That just looks like random numbers to me.
I got the numbers from ThrottleStop on Windows: https://github.com/mihic/linux-intel-undervolt?tab=readme-ov-file#finding-voltage-offsets

They look fine and apply with wrmsr, but I didn't figure out how to really check if it was applied on Linux (ThrottleStop on Windows would update detected values instantly with convenient GUI, but MSRs on Linux apparently require comparing values and knowing what they mean with the raw MSR numbers)

I applied the MSRs on Windows with msr-cmd.exe similar to Linux and ThrottleStop showed the changes, so I'm thinking they apply fine on Linux :p

Code:
"msr-cmd.exe" -A -l write "0x150" "80000011F3200000"

Code:
wrmsr --all '0x150' '80000011F3200000'



My BIOS has different voltage offset options hidden, so ideally I'd like to set the undervolts there with setup_var (little tricky trying to set those with +/- offsets through IFR dumps, and checking if it actually applies to the OS)
 
My BIOS has different voltage offset options hidden, so ideally I'd like to set the undervolts there with setup_var (little tricky trying to set those with +/- offsets through IFR dumps, and checking if it actually applies to the OS)
This tool is awesome: https://github.com/DavidS95/Smokeless_UMAF

I can boot to unlocked BIOS menus, and have an overclocking menu for XTU stuff. Adaptive (only affect Turbo clocks) offset voltage -100 on Core and Uncore in BIOS shows in Windows ThrottleStop! Now I can UV any OS easy :D

2.png




Some of the unlocked settings might benefit FreeBSD too; I spent a couple days playing with different settings :p I can do above 4G decode, change iGPU video memory limits, and even got Resizable BAR:

1.gif


My NVMe can do RST or AHCI normally in BIOS (FreeBSD boots RST fine; can't figure out VMD Linux); with unlocked settings I get a ton of new RST settings and can change MSI or MSI-X, and interesting stuff like CPU-side storage.
 
Some of the unlocked settings might benefit FreeBSD too; I spent a couple days playing with different settings :p I can do above 4G decode, change iGPU video memory limits, and even got Resizable BAR:
Could you share the exact setting that enables Resizable BAR?
 
Honestly, I've never heard of undervolting or overvolting a CPU. With what I know about electrical engineering it seems like a bad idea to me. fiddling with the clock frequency, sure, but playing with the operational voltage...what could possibly go wrong?😕
 
Well as an electrical type you know what tolerances are.
You can run a part at the high end of the tolerance or the low end of the tolerance.
Running an electrical part at the high end of the tolerance usually causes a byproduct of heat.
Underclockers hate heat. Usually trying to run fanless.

All the recent NUC's I have bought have 19V right on the case. Yet they work at 12VDC.....
Why day do dat?
 
All the recent NUC's I have bought have 19V right on the case. Yet they work at 12VDC.....
A speaker says 12V 2A and I have a 19V 20A adapter connected to it :p

If NUC is anything like RPis or Chromecast/FireTV sticks, maybe it's a stability thing if certain hardware is full-load? RPi iirc would rainbow-square on low-power and potentially error writing to SD

Honestly, I've never heard of undervolting or overvolting a CPU.
I heard of wild claims with Skylake undervolting and laptops that had me look into it. My i5-8400H goes to 90C easy with Turbo

Along with cooler temps and staying at higher Turbo clocks longer, the GPU gets extra power while undervolted (CPU using less power for max Turbo clock leaves more power available for GPU on same package/whole chip limit)
 
I guess it is possible to degrade the power conversion chips onboard. Running out of range. Gets hotter trying to convert 12V to 19V. I dunno. It does work.

19V really has no place in electronics history like 12V and 5V. MaBell and -48V. 24V on DIN rail.
Just some weird laptop standard plopped on us. Special jack too on some.
 
OK. so yeah, all semiconductors have defined operating ranges but I'm assuming that undervoltage and overvoltage as OP means are to go outside of the specified operating range, which should be bad juju in anyone's book. I had a saying at previous jobs when kids wanted to be "creative or cheap". That saying was "The spec was created by folks a lot smarter than you an I. Don't fudge with the spec!"
 
OK. so yeah, all semiconductors have defined operating ranges but I'm assuming that undervoltage and overvoltage as OP means are to go outside of the specified operating range, which should be bad juju in anyone's book. I had a saying at previous jobs when kids wanted to be "creative or cheap". That saying was "The spec was created by folks a lot smarter than you an I. Don't fudge with the spec!"
My first gaming PC I bought a Phenom II X3 720 with the hope I could unlock its 4th core for cheaper :p (it worked and overclocked even)

I'm not sure what Intel is thinking, but it seems laptops ship with CPUs operating at higher voltages than needed. Desktop GPUs have Power Limits and they're usually not max (not overvolting but allowing the GPU to use more power within PCI-E spec); I got free boosts out of all AMD GPUs with maxing power limits.

Overclocking is just fun to push limits (funnest was inching FSB above 100 and seeing what became unstable), and I even OC my monitor; anything reasonable that can run faster will do it (for free)!

With low-end PC gaming, I learned defaults aren't optimal :p
 
my electrical engineering background is mostly with automotive/diesel machines, residential to commercial construction, and electronics. But here I never got down to the granular of computing specifically. I know amperage is more dangerous than voltage when troubleshooting a circuit breaker.

Err I should review. I always thought of amperage as more dangerous than voltage.

I say dangerous because I grew up always thinking - man this is dangerous because you cannot physically see electricity naturally with the human eye unless you have specialized tools and equipment
 
This isn't the place to have an electrical theory lecture but I always smiled when thinking about the three cute nymphs: Amp, Volt, and Ohm. Ohm is sitting on top of a pipe with constricting lasso around the pipe making it less open, while Volt is pushing Amp's cute tushy thru the constriction. In laymans terms (though not technically correct) Amps is the amount of energy, Volt is the force or potential pushing that energy, and Ohm is the restricting actor that limits the amount of Amp thru the system.
 
Err I should review. I always thought of amperage as more dangerous than voltage.
Actually you can have all the available amperage in the world, and as long as there is no voltage pushing it, or there is ample resistance to counteract any existing voltage differential, then the amperage is suitably corralled. Voltage and resistance are what you have to work with. Amperage is simply "how much is available for use".
 
Back
Top