soc/intel/pantherlake: Clear crashlog record using watcher
After crash data extraction, the records are cleared and reinitialized to their default values. This is done using watcher interface instead of BIOS mailbox commands because of low latency and efficiency. Ref: LNL FAS 733648 BUG= b:None TEST= iotools mmio_dump 0x9c199d40 0x10 - PMC 0x000000009c199d40: 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef iotools mmio_dump 0x9c1d0058 0x10 - CPU 0x000000009c1d0058: 0xcafecafe 0xcafecafe 0xcafecafe 0xcafecafe Initial 8 bytes of header are zeroes - indicating that both header and crashlog data buffer are cleared Change-Id: I8a36e091f61833067caf9e9f94ba79149e699d68 Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/88514 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
parent
ae942a70b8
commit
350c977fef
2 changed files with 7 additions and 0 deletions
|
|
@ -18,6 +18,8 @@
|
|||
#define CRASHLOG_PUNIT_STORAGE_OFF_MASK BIT(24)
|
||||
#define CRASHLOG_RE_ARM_STATUS_MASK BIT(25)
|
||||
#define CRASHLOG_CONSUMED_BIOS_MASK BIT(27)
|
||||
#define CRASHLOG_SET_CLEAR_TRIGGER_MASK BIT(30)
|
||||
#define CRASHLOG_SET_CONSUMED_MASK BIT(18)
|
||||
|
||||
/* Global crashLog info */
|
||||
static bool m_pmc_crash_log_support;
|
||||
|
|
@ -392,6 +394,10 @@ static uintptr_t get_control_status_interface(void)
|
|||
|
||||
int cpu_cl_clear_data(void)
|
||||
{
|
||||
/* Clear all crashlog data and CRASHLOG_SET_CONSUMED = 1 -> sets CONSUMED_BIOS bit */
|
||||
setbits64p(cl_get_cpu_bar_addr() + CRASHLOG_WATCHER_CONTROL_OFFSET,
|
||||
CRASHLOG_SET_CLEAR_TRIGGER_MASK | CRASHLOG_SET_CONSUMED_MASK);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#define CRASHLOG_DVSEC_ID 0x04
|
||||
#define TEL_DVSEC_TBIR_BAR0 0
|
||||
#define TEL_DVSEC_TBIR_BAR1 1
|
||||
#define CRASHLOG_WATCHER_CONTROL_OFFSET 0x10
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue