soc/intel/common/crashlog: Check for invalid record
Do not copy the crashlog record if the record is 0xdeadbeef Bug=None TEST=Able to build. With Meteor Lake SOC related patch, able to capture and decode crashlog. Change-Id: I0edbf6902685a882876d525e63c5b602c1590ea1 Signed-off-by: Pratikkumar Prajapati <pratikkumar.v.prajapati@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/75527 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
parent
d4330e7dfb
commit
5f3b6545f4
|
@ -271,6 +271,14 @@ bool cl_copy_data_from_sram(u32 src_bar,
|
|||
u32 src_addr = src_bar + offset;
|
||||
|
||||
u32 data = read32((u32 *)src_addr);
|
||||
|
||||
/* First 32bits of the record must not be 0xdeadbeef */
|
||||
if (data == INVALID_CRASHLOG_RECORD) {
|
||||
printk(BIOS_DEBUG, "Invalid data 0x%x at offset 0x%x from addr 0x%x\n",
|
||||
data, offset, src_bar);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* PMC: copy if 1st DWORD in buffer is not zero and its 31st bit is not set */
|
||||
if (pmc_sram && !(data && !(data & BIT(31)))) {
|
||||
printk(BIOS_DEBUG, "Invalid data 0x%x at offset 0x%x from addr 0x%x"
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
|
||||
#define CRASHLOG_SIZE_DEBUG_PURPOSE 0x640
|
||||
|
||||
#define INVALID_CRASHLOG_RECORD 0xdeadbeef
|
||||
|
||||
/* PMC crashlog discovery structs */
|
||||
typedef union {
|
||||
struct {
|
||||
|
|
Loading…
Reference in New Issue