From d45e70c124b9904c7a7d13aad32de99206714d7b Mon Sep 17 00:00:00 2001 From: Ricardo Quesada Date: Fri, 16 Jul 2021 16:42:59 -0700 Subject: Move elog_internal.h to commonlib/bsd/include Move elog_internal.h to commonlib/bsd/include/bsd/. And rename it from elog_internal.h to elog.h. Since this file will be included from util/ it also converts the "uNN" types into "uintNN_t" types. The two defines that are not used by util/ are moved to drivers/elog/elog.c, the only file that includes them. Move also the function elog_verify_header() from drivers/elog/, to commonlib/bsd/elog.c since this function will be called from util/ as well. The rationale behind moving elog's defines & structs to commonlib/bsd/include is to make them available to util/ tools and/or payloads (should it be needed in the future). The files that are being relicensed to BSD were coded by Duncan Laurie, and he is Ok with the relicense. BUG=b:172210863 Signed-off-by: Ricardo Quesada Change-Id: Ia1aefea705ddd417a1d9e978bb18ab6d9a60cad6 Reviewed-on: https://review.coreboot.org/c/coreboot/+/56404 Tested-by: build bot (Jenkins) Reviewed-by: Jack Rosenthal Reviewed-by: Tim Wawrzynczak --- src/drivers/elog/elog.c | 33 ++++++++++----------------------- src/drivers/elog/elog_internal.h | 35 ----------------------------------- 2 files changed, 10 insertions(+), 58 deletions(-) delete mode 100644 src/drivers/elog/elog_internal.h (limited to 'src/drivers/elog') diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c index 97555bc3f2..cfeb7ce6d7 100644 --- a/src/drivers/elog/elog.c +++ b/src/drivers/elog/elog.c @@ -1,12 +1,14 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include -#include -#include -#include #include #include +#include +#include +#include #include +#include +#include #include #include #include @@ -14,8 +16,9 @@ #include #include #include -#include -#include "elog_internal.h" + +#define ELOG_MIN_AVAILABLE_ENTRIES 2 /* Shrink when this many can't fit */ +#define ELOG_SHRINK_PERCENTAGE 25 /* Percent of total area to remove */ #if CONFIG(ELOG_DEBUG) #define elog_debug(STR...) printk(BIOS_DEBUG, STR) @@ -239,24 +242,8 @@ static int elog_is_header_valid(void) header = rdev_mmap(mirror_dev_get(), 0, sizeof(*header)); - if (header == NULL) { - printk(BIOS_ERR, "ELOG: could not map header.\n"); - return 0; - } - - if (header->magic != ELOG_SIGNATURE) { - printk(BIOS_ERR, "ELOG: header magic 0x%X != 0x%X\n", - header->magic, ELOG_SIGNATURE); - return 0; - } - if (header->version != ELOG_VERSION) { - printk(BIOS_ERR, "ELOG: header version %u != %u\n", - header->version, ELOG_VERSION); - return 0; - } - if (header->header_size != sizeof(*header)) { - printk(BIOS_ERR, "ELOG: header size mismatch %u != %zu\n", - header->header_size, sizeof(*header)); + if (elog_verify_header(header) != CB_SUCCESS) { + printk(BIOS_ERR, "ELOG: failed to verify header.\n"); return 0; } return 1; diff --git a/src/drivers/elog/elog_internal.h b/src/drivers/elog/elog_internal.h deleted file mode 100644 index 6be482b1f7..0000000000 --- a/src/drivers/elog/elog_internal.h +++ /dev/null @@ -1,35 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#ifndef ELOG_INTERNAL_H_ -#define ELOG_INTERNAL_H_ - -/* ELOG header */ -struct elog_header { - u32 magic; - u8 version; - u8 header_size; - u8 reserved[2]; -} __packed; - -/* ELOG related constants */ -#define ELOG_SIGNATURE 0x474f4c45 /* 'ELOG' */ -#define ELOG_VERSION 1 -#define ELOG_MIN_AVAILABLE_ENTRIES 2 /* Shrink when this many can't fit */ -#define ELOG_SHRINK_PERCENTAGE 25 /* Percent of total area to remove */ - -/* SMBIOS event log header */ -struct event_header { - u8 type; - u8 length; - u8 year; - u8 month; - u8 day; - u8 hour; - u8 minute; - u8 second; -} __packed; - -/* SMBIOS Type 15 related constants */ -#define ELOG_HEADER_TYPE_OEM 0x88 - -#endif /* ELOG_INTERNAL_H_ */ -- cgit v1.2.3