I have an i5 1235U board where the OEM did not set up the CPU features to enable hardware P-states in the BIOS. I know how to mod the BIOS to get it enabled, but the problem is I don’t know what values to program in the NVRAM variables. Does anyone have an AMI BIOS dump from a board with this CPU or something close so I can get the values I need out of it?
What are the values you need? Do you know the name of those variables?
I don’t have an AMI firmware, but my laptop has a 1255U which may be close enough, I have it unlocked so I can access most (if not all) of what my setup utility allows me to change; could upload some pictures.
Or, if you know the variable storage where they are, I could show you how mine looks and try to find similarities. Post a dump of your BIOS by the way (it should be possible using the FPT from here), perhaps we could see something there.
I’ve unlocked all of the BIOS settings on this BIOS also. Enabling HWP is the last thing I’m trying to accomplish.
So in my IFR I have this:
0x31C77: SuppressIf { 0A 82 }
0x31C79: EqIdVal QuestionId: 0x12A2, Value: 0x0 { 12 86 A2 12 00 00 }
0x31C7F: EqIdVal QuestionId: 0x12A4, Value: 0x0 { 12 06 A4 12 00 00 }
0x31C85: Or { 16 02 }
0x31C87: End { 29 02 }
0x31C89: OneOf Prompt: "Intel(R) Speed Shift Technology Interrupt Control", Help: "Enable/Disable Intel(R) Speed Shift Technology Interrupts", QuestionFlags: 0x10, QuestionId: 0x1B5, VarStoreId: 0x2, VarOffset: 0x20C, Flags: 0x10, Size: 8, Min: 0x0, Max: 0x1, Step: 0x0 { 05 91 0A 07 0B 07 B5 01 02 00 0C 02 10 10 00 01 00 }
0x31C9A: OneOfOption Option: "Disabled" Value: 0 { 09 07 04 00 00 00 00 }
0x31CA1: OneOfOption Option: "Enabled" Value: 1, Default, MfgDefault { 09 07 03 00 30 00 01 }
0x31CA8: End { 29 02 }
0x31CAA: End { 29 02 }
So this is only enabled if questions 0x12A2 and 0x12A4 are non-zero. Those variables look like this:
0x629FF: DisableIf { 1E 82 }
0x62A01: True { 46 02 }
...
0x63F7E: Numeric Prompt: "", Help: "", QuestionFlags: 0x0, QuestionId: 0x12A2, VarStoreId: 0x3, VarOffset: 0x13, Flags: 0x10, Size: 8, Min: 0x0, Max: 0xFF, Step: 0x0 { 07 91 00 00 00 00 A2 12 03 00 13 00 00 10 00 FF 00 }
0x63F8F: End { 29 02 }
0x63F91: Numeric Prompt: "", Help: "", QuestionFlags: 0x0, QuestionId: 0x12A3, VarStoreId: 0x3, VarOffset: 0x14, Flags: 0x10, Size: 8, Min: 0x0, Max: 0xFF, Step: 0x0 { 07 91 00 00 00 00 A3 12 03 00 14 00 00 10 00 FF 00 }
0x63FA2: End { 29 02 }
0x63FA4: Numeric Prompt: "", Help: "", QuestionFlags: 0x0, QuestionId: 0x12A4, VarStoreId: 0x3, VarOffset: 0x28, Flags: 0x10, Size: 8, Min: 0x0, Max: 0xFF, Step: 0x0 { 07 91 00 00 00 00 A4 12 03 00 28 00 00 10 00 FF 00 }
0x63FB5: End { 29 02 }
That variable store is the cpu features area:
0x2DB94: VarStore Guid: EC87D643-EBA4-4BB5-A1E5-3F3E36B20DA9, VarStoreId: 0x3, Size: 0x36, Name: "SetupCpuFeatures" { 24 27 43 D6 87 EC A4 EB B5 4B A1 E5 3F 3E 36 B2 0D A9 03 00 36 00 53 65 74 75 70 43 70 75 46 65 61 74 75 72 65 73 00 }
As you can see, those are questions that are always hidden and have no default nor reset value. To me this means those are values that are set up when the BIOS is first programmed and then never changed. For some reason, the OEM set up the cpu features with HWP disabled. I could try setting those variables to 0x1, but my fear is they are bitmasks rather than simple boolean values. If I could get the values, I think I’ll be in business.
I figured this out. There is a bug in my BIOS. It is missing the setup question to enable HWP. The default of that missing question is disabled so since the question was missing, it was impossible to turn on HWP. Once I figured out what variable the missing question would set, I modified my BIOS to change the value, and I finally had HWP enabled!
Thermal and Power Management Features (6):
digital thermometer = true
Intel Turbo Boost Technology = true
ARAT always running APIC timer = true
PLN power limit notification = true
ECMD extended clock modulation duty = true
PTM package thermal management = true
HWP base registers = true
HWP notification = true
HWP activity window = true
HWP energy performance preference = true
HWP package level request = true
HDC base registers = false
Intel Turbo Boost Max Technology 3.0 = false
HWP capabilities = true
HWP PECI override = true
flexible HWP = true
IA32_HWP_REQUEST MSR fast access mode = true
HW_FEEDBACK MSRs supported = true
ignoring idle logical processor HWP req = true
Hey, sir, tell us more about this.
Could you please share tool names and a weak procedure tasklist?
Was the bios shipped unlocked (me fully flashable, manufacturing or production mode available, one time fuse not fused)?
Which tools did you use? AMIDEEFI? Fpt? FwUpdtool? Or spi flashing the eeprom?
Did you lose gbe, me, bootguard and/or any other data?
It sounds amazing. It sounds like a Chuwi brand, haha.
Cheers.