From 0f56f8376099722b671e118950441731075c71c7 Mon Sep 17 00:00:00 2001 From: Pratikkumar Prajapati Date: Tue, 15 Aug 2023 11:56:29 -0700 Subject: soc/intel/common: Add cleanup and rearm functions Introduce cpu_cl_cleanup() and cpu_cl_rearm() functions for CPU crashlog flow. Also add default weak implementations. BUG=b:262501347 TEST=Able to build google/rex. Change-Id: Iad68d3fdaf7061148b184371f7ef87d83f2b2b38 Signed-off-by: Pratikkumar Prajapati Reviewed-on: https://review.coreboot.org/c/coreboot/+/77238 Reviewed-by: Kapil Porwal Tested-by: build bot (Jenkins) --- src/soc/intel/common/block/crashlog/crashlog.c | 14 ++++++++++++++ src/soc/intel/common/block/include/intelblocks/crashlog.h | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/soc/intel') diff --git a/src/soc/intel/common/block/crashlog/crashlog.c b/src/soc/intel/common/block/crashlog/crashlog.c index 4412cbb174..e3d85cde22 100644 --- a/src/soc/intel/common/block/crashlog/crashlog.c +++ b/src/soc/intel/common/block/crashlog/crashlog.c @@ -154,6 +154,16 @@ int __weak cpu_cl_clear_data(void) return cpu_cl_mailbox_cmd(CPU_CRASHLOG_CMD_CLEAR, 0); } +void __weak cpu_cl_rearm(void) +{ + /* empty implementation */ +} + +void __weak cpu_cl_cleanup(void) +{ + /* empty implementation */ +} + int pmc_cl_gen_descriptor_table(u32 desc_table_addr, pmc_crashlog_desc_table_t *descriptor_table) { @@ -466,6 +476,10 @@ void cl_get_cpu_sram_data(void) /* clear telemetry SRAM region */ cpu_cl_clear_data(); + /* perform any SOC specific cleanup */ + cpu_cl_cleanup(); + /* rearm crashlog */ + cpu_cl_rearm(); } void collect_pmc_and_cpu_crashlog_from_srams(void) diff --git a/src/soc/intel/common/block/include/intelblocks/crashlog.h b/src/soc/intel/common/block/include/intelblocks/crashlog.h index 23d4861557..e63a8cb506 100644 --- a/src/soc/intel/common/block/include/intelblocks/crashlog.h +++ b/src/soc/intel/common/block/include/intelblocks/crashlog.h @@ -138,7 +138,6 @@ typedef union { u64 data; } __packed cpu_crashlog_header_t; - /* Structures for CPU CrashLog mailbox interface */ typedef union { struct { @@ -192,6 +191,8 @@ u32 cl_gen_cpu_bar_addr(void); int cpu_cl_poll_mailbox_ready(u32 cl_mailbox_addr); int cpu_cl_mailbox_cmd(u8 cmd, u8 param); int cpu_cl_clear_data(void); +void cpu_cl_rearm(void); +void cpu_cl_cleanup(void); int pmc_cl_gen_descriptor_table(u32 desc_table_addr, pmc_crashlog_desc_table_t *descriptor_table); bool pmc_cl_discovery(void); -- cgit v1.2.3