[REQUEST] AMI BIOS dump from i5 1235U or similar CPU

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