mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-23 04:48:14 +00:00

This patch gives users control over logging messages printed from the C code using the LOG macros defined in debug.h Users now have the ability to reduce the log_level at run time using the tf_log_set_max_level() function. The default prefix string can be defined by platform by overriding the `plat_log_get_prefix()` platform API which is also introduced in this patch. The new log framework results in saving of some RO data. For example, when BL1 is built for FVP with LOG_LEVEL=LOG_LEVEL_VERBOSE, resulted in saving 384 bytes of RO data and increase of 8 bytes of RW data. The framework also adds about 108 bytes of code to the release build of FVP. Fixes ARM-software/tf-issues#462 Change-Id: I476013d9c3deedfdd4c8b0b0f125665ba6250554 Co-authored-by: Eleanor Bonnici <Eleanor.bonnici@arm.com> Signed-off-by: Soby Mathew <soby.mathew@arm.com>
25 lines
622 B
C
25 lines
622 B
C
/*
|
|
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <assert.h>
|
|
#include <debug.h>
|
|
#include <platform.h>
|
|
|
|
/* Allow platforms to override the log prefix string */
|
|
#pragma weak plat_log_get_prefix
|
|
|
|
static const char *prefix_str[] = {
|
|
"ERROR: ", "NOTICE: ", "WARNING: ", "INFO: ", "VERBOSE: "};
|
|
|
|
const char *plat_log_get_prefix(unsigned int log_level)
|
|
{
|
|
if (log_level < LOG_LEVEL_ERROR)
|
|
log_level = LOG_LEVEL_ERROR;
|
|
else if (log_level > LOG_LEVEL_VERBOSE)
|
|
log_level = LOG_LEVEL_VERBOSE;
|
|
|
|
return prefix_str[(log_level/10) - 1];
|
|
}
|