Since coreboot locks GPIO registers after GPIO configuration, OS is not able to program GPE_EN register to program wake events. This causes the issue of event not getting logged into event log (since GPE_EN bit is not set).
GPE_EN register programming is required for the GPIO pins which are capable of generating SCI for the system wake. Elog mechanism relies on GPE_EN and GPE_STS bit to log correct wake signal.
This patch add supports to program GPE_EN register before coreboot locks the GPIO registers. Note that coreboot will only program GPE_EN bits for GPIO capable of generating SCI.
This will help resolve issue where we don't see wake event GPIO in event log.
BUG=b:222375516 BRANCH=firmware-brya-14505.B TEST=Compile code for Brya and see GPE_EN bits set from the kernel console
Change-Id: I27e525f50c374c2cc9675e77eaa7774683a6e7c2
38b8bf02d8 intelblocks: Add function to program GPE_EN before GPIO locking
src/soc/intel/common/block/gpio/gpio.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
Upstream: review.coreboot.org