diff options
author | Pratikkumar Prajapati <pratikkumar.v.prajapati@intel.com> | 2023-08-15 11:56:29 -0700 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2023-09-17 04:48:14 +0000 |
commit | 0f56f8376099722b671e118950441731075c71c7 (patch) | |
tree | 8c35c22d894e26a5ad3d48d1ecf218991a6da14c /src/soc | |
parent | 42258e399d3c8143e37a740a10adfe972340107a (diff) |
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 <pratikkumar.v.prajapati@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77238
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/intel/common/block/crashlog/crashlog.c | 14 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/crashlog.h | 3 |
2 files changed, 16 insertions, 1 deletions
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); |