Attention is currently required from: Jeff Daly, Mariusz Szafrański, Jonathan Zhang, Arthur Heymans, Michael Niewöhner, Andrey Petrov, Patrick Rudolph, Nico Huber, Anjaneya "Reddy" Chagam, Johnny Lin, Tim Wawrzynczak, Suresh Bellampalli, Christian Walter, Vanessa Eusebio, Lean Sheng Tan, Michal Motyl, Werner Zeh, Tim Chu. Hello build bot (Jenkins), Jeff Daly, Mariusz Szafrański, Jonathan Zhang, Angel Pons, Arthur Heymans, Michael Niewöhner, Andrey Petrov, Patrick Rudolph, Anjaneya "Reddy" Chagam, Johnny Lin, Christian Walter, Suresh Bellampalli, Tim Wawrzynczak, Vanessa Eusebio, Nick Vaccaro, Lean Sheng Tan, Michal Motyl, Werner Zeh, Tim Chu,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/62064
to look at the new patch set (#8).
Change subject: soc/intel: Move `pmc_clear_pmcon_sts()` into IA common code ......................................................................
soc/intel: Move `pmc_clear_pmcon_sts()` into IA common code
This patch moves `pmc_clear_pmcon_sts` function into common code and remove SoC specific instances.
Accessing PMC GEN_PMCON_A register differs between different Intel chipsets. Typically, there are two possible ways to perform GEN_PMCON_A register programming (like `pmc_clear_pmcon_sts()`) as: 1. Using PCI configuration space when GEN_PMCON_A is a PCI configuration register. And, the PMC device is visible over the PCI bus, so the SoC user selects `SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE` Kconfig. 2. Using MMIO access when GEN_PMCON_A is a memory mapped register. And, the PMC device is not over the PCI bus and hidden by the FSP.
Unfortunately, there is a 3rd case as well with Apollolake platform where SoC selects SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE Kconfig and GEN_PMCON_A is memory mapped, and this scenario can't be fit into either of the two cases above, unless provided with one more check to identify if GEN_PMCON_A is a PCI configuration space register (offset within 256 bytes) or memory mapped. Hence, added a check along with SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE Kconfig to see if the register (i.e., GEN_PMCON_A) actually belongs to the PCI config space.
BUG=b:211954778 TEST=Able to build brya.
Signed-off-by: Subrata Banik subratabanik@google.com Change-Id: I8d15f421c128630f928a1b6a7e2840056d68d7b1 --- M src/soc/intel/alderlake/include/soc/pm.h M src/soc/intel/alderlake/pmutil.c M src/soc/intel/apollolake/include/soc/pm.h M src/soc/intel/apollolake/pmutil.c M src/soc/intel/cannonlake/include/soc/pm.h M src/soc/intel/cannonlake/pmutil.c M src/soc/intel/common/block/include/intelblocks/pmclib.h M src/soc/intel/common/block/pmc/pmc.c M src/soc/intel/common/block/pmc/pmclib.c M src/soc/intel/denverton_ns/include/soc/pm.h M src/soc/intel/denverton_ns/pmutil.c M src/soc/intel/elkhartlake/include/soc/pm.h M src/soc/intel/elkhartlake/pmutil.c M src/soc/intel/icelake/include/soc/pm.h M src/soc/intel/icelake/pmutil.c M src/soc/intel/jasperlake/include/soc/pm.h M src/soc/intel/jasperlake/pmutil.c M src/soc/intel/skylake/include/soc/pm.h M src/soc/intel/skylake/pmutil.c M src/soc/intel/tigerlake/include/soc/pm.h M src/soc/intel/tigerlake/pmutil.c M src/soc/intel/xeon_sp/include/soc/pm.h M src/soc/intel/xeon_sp/pmutil.c 23 files changed, 62 insertions(+), 173 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/64/62064/8