diff options
author | Johnny Lin <johnny_lin@wiwynn.com> | 2023-01-16 17:21:01 +0800 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-02-08 19:14:03 +0000 |
commit | 6e7645e4febcb254300b79e6dc4e66341fcb3ef4 (patch) | |
tree | 718d4f5e00f967eae0a87cb6c2502af3782086b0 /src/drivers/ocp | |
parent | 663efbb0f74aa375e9c96a7ac433082d3a4f6f43 (diff) |
drivers/ocp, mb/ocp/deltalake: move get_loglevel_from_vpd function
Move get_loglevel_from_vpd from mb/ocp/deltalake to driver
drivers/ocp/vpd/loglevel_vpd.c.
Change-Id: I70af1051f63c527fd8150f5ecbe4765b4aaacd20
Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71936
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/drivers/ocp')
-rw-r--r-- | src/drivers/ocp/include/vpd.h | 1 | ||||
-rw-r--r-- | src/drivers/ocp/vpd/Makefile.inc | 3 | ||||
-rw-r--r-- | src/drivers/ocp/vpd/loglevel_vpd.c | 21 |
3 files changed, 25 insertions, 0 deletions
diff --git a/src/drivers/ocp/include/vpd.h b/src/drivers/ocp/include/vpd.h index d58f79120f..33fece5c4d 100644 --- a/src/drivers/ocp/include/vpd.h +++ b/src/drivers/ocp/include/vpd.h @@ -82,4 +82,5 @@ int get_int_from_vpd_range(const char *const key, const int fallback, const int const int max); bool get_bool_from_vpd(const char *const key, const bool fallback); int get_cxl_mode_from_vpd(void); +int get_loglevel_from_vpd(const char *const key, const int fallback); #endif diff --git a/src/drivers/ocp/vpd/Makefile.inc b/src/drivers/ocp/vpd/Makefile.inc index c34866ff38..8db5afaf47 100644 --- a/src/drivers/ocp/vpd/Makefile.inc +++ b/src/drivers/ocp/vpd/Makefile.inc @@ -1,2 +1,5 @@ romstage-$(CONFIG_OCP_VPD) += vpd_util.c ramstage-$(CONFIG_OCP_VPD) += vpd_util.c +ifeq ($(CONFIG_VPD),y) +all-$(CONFIG_CONSOLE_OVERRIDE_LOGLEVEL) += loglevel_vpd.c +endif diff --git a/src/drivers/ocp/vpd/loglevel_vpd.c b/src/drivers/ocp/vpd/loglevel_vpd.c new file mode 100644 index 0000000000..7a6db5750f --- /dev/null +++ b/src/drivers/ocp/vpd/loglevel_vpd.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <console/console.h> +#include <drivers/vpd/vpd.h> +#include <drivers/ocp/include/vpd.h> + +int get_loglevel_from_vpd(const char *const key, const int fallback) +{ + int log_level = fallback; + + if (vpd_get_int(key, VPD_RW_THEN_RO, &log_level)) { + if (log_level < 0 || log_level >= BIOS_NEVER) + log_level = fallback; + } + return log_level; +} + +int get_console_loglevel(void) +{ + return get_loglevel_from_vpd(COREBOOT_LOG_LEVEL, COREBOOT_LOG_LEVEL_DEFAULT); +} |