Tim Wawrzynczak has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39346 )
Change subject: soc/intel/tigerlake: Add processor power limits control support ......................................................................
Patch Set 12:
(1 comment)
So now we just need a little refactor in order to get the board-specific power limit overrides out of their SoC configuration structs from the respective chip.h files.
How about creating a new struct for this? I'm thinking something like: struct soc_power_limits { /* PL1 Override value in Watts */ uint32_t tdp_pl1_override; /* PL2 Override value in Watts */ uint32_t tdp_pl2_override; /* SysPL2 Value in Watts */ uint32_t tdp_psyspl2; /* SysPL3 Value in Watts */ uint32_t tdp_psyspl3; /* SysPL3 window size */ uint32_t tdp_psyspl3_time; /* SysPL3 duty cycle */ uint32_t tdp_psyspl3_dutycycle; /* PL4 Value in Watts */ uint32_t tdp_pl4; /* Estimated maximum platform power in Watts */ uint16_t psys_pmax; };
Then soc_systemagent_init() could grab the config, get this new soc_power_limits out of it, and then pass that into set_power_limits().
What do you think?
https://review.coreboot.org/c/coreboot/+/39346/12/src/soc/intel/common/power... File src/soc/intel/common/power_limit.c:
https://review.coreboot.org/c/coreboot/+/39346/12/src/soc/intel/common/power... PS12, Line 206: msr = rdmsr(MSR_CONFIG_TDP_NOMINAL); This statement has no effect.