I am writing an UEFI driver and I need to read VCore and the maximum CPU Operating voltage programmatically. Intel specifications say that the maximum operating voltage for my CPU is 1.72 Volts, but I need to get it via code. The driver is going to operate before loading the OS, so I cannot access these values via some Linux files and so on. So, can you please share your experience and give me some advice on how I can get these values?
I have managed to get the VID via reading the MSR IA32_PERF_STATUS 0x198 register. Now, I'm trying to access some registers of IT8613E Super I/O in order to get some info on voltage, but I haven't tested it yet. Super I/O has some VIN and Vcore registers, but I cannot see the register from which I can read the VCore value, but I think it is possible. Maybe, Super I/O is not what is need.