datasone / grub-mod-setup_var

A modified grub allowing tweaking hidden BIOS settings.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to setup Lenovo ThinkStation P310 Core Voltage Override value in 16bit Numeric?

Sortoftired opened this issue · comments

你好,这个工具很好用。因为联想bios无法简单使用amibcp修改,所以找到这个工具,成功修改bios隐藏选项。

目前碰到一个问题是想要修改bios的cpu核心电压为固定电压,这个选项使用amibcp查看注释为
“Specifies the Override Voltage applied to the IA Core domain.This voltage is specified in millivolts.Uses Mailbox MSR 0x150,cmd 0x11.Range 0-2000 mV."

不知道如何使用setup_var修改这个Numeric的值。

0x4F454 One Of: Core Voltage Mode, VarStoreInfo (VarOffset/VarName): 0x699, VarStore: 0x1, QuestionId: 0xB77, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 5E 13 5F 13 77 0B 01 00 99 06 10 10 00 01 00}
0x4F465 One Of Option: Adaptive, Value (8 bit): 0x0 (default) {09 07 6C 13 30 00 00}
0x4F46C One Of Option: Override, Value (8 bit): 0x1 {09 07 6D 13 00 00 01}
0x4F473 End One Of {29 02}
0x4F475 Suppress If {0A 82}
0x4F477 QuestionId: 0xB77 equals value 0x0 {12 06 77 0B 00 00}
0x4F47D Numeric: Core Voltage Override, VarStoreInfo (VarOffset/VarName): 0x69A, VarStore: 0x1, QuestionId: 0xB78, Size: 2, Min: 0x0, Max 0x7D0, Step: 0x1 {07 94 60 13 61 13 78 0B 01 00 9A 06 10 11 00 00 D0 07 01 00}
0x4F491 Default: DefaultId: 0x0, Value (16 bit): 0x0 {5B 07 00 00 01 00 00}
0x4F498 End {29 02}

VarStore 中的各类值其实最终都以字节形式进行存储,Numeric 类型与 One Of 一样,直接写入具体值就好(此处就是 Min 0x0, Max 0x7D0, Step 0x1)。但此处的 Numeric 类型是 16 bit 的,可以使用新命令 setup_var_vs 或单独对两个字节的数据进行修改。
P.S. 由于我没有合适的固件进行测试,目前无法确定多字节数据存储的大小端序,写入的数据可能有问题,具体的可以看一下 README。这里的问题对于较早的 Intel CPU 应该在 OS 中进行修改更为安全和合适。