Unlock MSR_PKG_POWER_LIMIT bit 63

Hello!

I have an intel CPU, gemini lake, N5000 model. I am trying to modify the TDP and turbo duration.
These values are set with MSR_PKG_POWER_LIMIT register.

Upon reset the laptop’s bios sets the MSR @ 0x610h (MSR_PKG_POWER_LIMIT) to the following value:
0x8f0000dd8800

bit 63 is a lock bit, and it is set as you can see there.

I am able to modify this register with wrmsr tool in linux to different power levels and duration of turbo mode but I see no actual changes in the behavior. As I read this lock bit will prevent any changes until the next power cycle.

So… I must change the BIOS firmware in the section where it sets this MSR to set this bit 63 to a zero, thus allowing me to tinker with the values later after the operating system loads.

Do you know which tool I can use to parse the bios binary looking for the MSR table being loaded on reset?

For reference I leave a BIOS image here
https://www5.zippyshare.com/v/bxxStf9S/file.html

Thank you!

@ mdq10
It is not very hard task.
Let’s upload your bios in UefiTool and go search for “b9 10 06 00 00”
You will find results in the window bellow, let’s say about 5 results.
Do clicking on the results and find the right result which is related with powermanagementdxe (most probably but it could be different module)
Than upload that module for me here.
Second option would be to go search for “setup”, extract its dxe modul and than apply ifr on it for text results.
If you can find there (in the text) option called something like power limit lock or msr lock it would be even less complicated.
I am not good in explaining :slight_smile:
Dan