intelblocks: Add function to program GPE_EN before GPIO locking

Hardware / Coreboot - Maulik V Vaghela [intel.com] - 16 May 2022 04:58 UTC

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


  • Share