soc/intel/pantherlake: Use CONSUMED_BIOS bit

After the BIOS reads and processes the crashLog record, it sets the
CONSUMED_BIOS bit to indicate that the reading and storing of crashlog
record is complete. This is read only bit. When this bit is set ,
crashlog discovery and data collection are skipped. This bit helps in
preventing the same crashLog from being extracted multiple times after
a reset.

BUG= b:None
TEST= The header value during warm boot after crash
      cpu_cl_disc_tab.header.data dw0=88420003, dw1=0x0

Change-Id: I4b9e6900218f28b6beb71b7667bc1c57f0134a84
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88499
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: <srinivas.kulkarni@intel.com>
This commit is contained in:
Sowmya Aralguppe 2025-07-21 11:01:26 +05:30 committed by Matt DeVillier
commit 2ee78458be

View file

@ -17,7 +17,7 @@
#define CRASHLOG_NODES_COUNT 0x1
#define CRASHLOG_PUNIT_STORAGE_OFF_MASK BIT(24)
#define CRASHLOG_RE_ARM_STATUS_MASK BIT(25)
#define CRASHLOG_CONSUMED_MASK BIT(31)
#define CRASHLOG_CONSUMED_BIOS_MASK BIT(27)
/* Global crashLog info */
static bool m_pmc_crash_log_support;
@ -327,7 +327,7 @@ static bool cpu_cl_gen_discovery_table(void)
continue;
u32 dw0 = read32p(disc_tab_addr + cur_offset);
if (dw0 & CRASHLOG_CONSUMED_MASK) {
if (dw0 & CRASHLOG_CONSUMED_BIOS_MASK) {
printk(BIOS_DEBUG, "cpu crashlog records already consumed."
"id: 0x%x dw0: 0x%x\n", i, dw0);
break;