soc/intel/apollolake: Add `GPE0_STS_BIT` macro

The datasheet indicates that this bit is reserved. However, subsequent
patches need to use this macro in common code, or else builds fail. To
iron out this difference, mask out the bit in `soc_get_smi_status`, so
that common code always sees it as zero. Finally, add an entry for the
bit in `smi_sts_bits` for debugging usage, noting that it is reserved.

Change-Id: Ib4408e016ba29cf8f7b125c95bfa668136b9eb93
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50916
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
Angel Pons 2021-02-19 16:02:45 +01:00 committed by Patrick Georgi
parent e4606bbff7
commit 81e9263caa
2 changed files with 7 additions and 1 deletions

View File

@ -108,6 +108,7 @@
#define MC_SMI_STS_BIT 12 #define MC_SMI_STS_BIT 12
#define GPIO_UNLOCK_SMI_STS_BIT 11 #define GPIO_UNLOCK_SMI_STS_BIT 11
#define GPIO_STS_BIT 10 #define GPIO_STS_BIT 10
#define GPE0_STS_BIT 9 /* Datasheet says this is reserved */
#define PM1_STS_BIT 8 #define PM1_STS_BIT 8
#define SWSMI_TMR_STS_BIT 6 #define SWSMI_TMR_STS_BIT 6
#define APM_STS_BIT 5 #define APM_STS_BIT 5

View File

@ -48,6 +48,7 @@ const char *const *soc_smi_sts_array(size_t *a)
[APM_STS_BIT] = "APM", [APM_STS_BIT] = "APM",
[SWSMI_TMR_STS_BIT] = "SWSMI_TMR", [SWSMI_TMR_STS_BIT] = "SWSMI_TMR",
[PM1_STS_BIT] = "PM1", [PM1_STS_BIT] = "PM1",
[GPE0_STS_BIT] = "GPE0 (reserved)",
[GPIO_STS_BIT] = "GPIO_SMI", [GPIO_STS_BIT] = "GPIO_SMI",
[GPIO_UNLOCK_SMI_STS_BIT] = "GPIO_UNLOCK_SSMI", [GPIO_UNLOCK_SMI_STS_BIT] = "GPIO_UNLOCK_SSMI",
[MC_SMI_STS_BIT] = "MCSMI", [MC_SMI_STS_BIT] = "MCSMI",
@ -86,7 +87,11 @@ uint32_t soc_get_smi_status(uint32_t generic_sts)
generic_sts |= (1 << PM1_STS_BIT); generic_sts |= (1 << PM1_STS_BIT);
} }
return generic_sts; /*
* GPE0_STS is reserved in APL/GLK datasheets. For compatibility
* with common code, mask it out so that it is always zero.
*/
return generic_sts & ~(1 << GPE0_STS_BIT);
} }
const char *const *soc_tco_sts_array(size_t *a) const char *const *soc_tco_sts_array(size_t *a)