summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorPratikkumar Prajapati <pratikkumar.v.prajapati@intel.com>2023-08-15 11:56:29 -0700
committerSubrata Banik <subratabanik@google.com>2023-09-17 04:48:14 +0000
commit0f56f8376099722b671e118950441731075c71c7 (patch)
tree8c35c22d894e26a5ad3d48d1ecf218991a6da14c /src/soc
parent42258e399d3c8143e37a740a10adfe972340107a (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.c14
-rw-r--r--src/soc/intel/common/block/include/intelblocks/crashlog.h3
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);