TF-M Reference Manual  1.2.0
TrustedFirmware-M
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tfm_spm_log.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __TFM_SPM_LOG_H__
9 #define __TFM_SPM_LOG_H__
10 
11 #include <stddef.h>
12 #include <stdint.h>
13 #include "tfm_hal_defs.h"
14 #include "tfm_hal_spm_logdev.h"
15 
16 /* The SPM log levels */
17 #define TFM_SPM_LOG_LEVEL_DEBUG 3 /* All log APIs output */
18 #define TFM_SPM_LOG_LEVEL_INFO 2 /*
19  * All log APIs output except SPMLOG_DBG
20  * and SPMLOG_DBGMSGVAL
21  */
22 #define TFM_SPM_LOG_LEVEL_ERROR 1 /*
23  * Only SPMLOG_ERRMSG and SPMLOG_ERRMSGVAL
24  * APIs output.
25  */
26 #define TFM_SPM_LOG_LEVEL_SILENCE 0 /* All log APIs are suppressed */
27 
28 #ifndef TFM_SPM_LOG_LEVEL
29 #error "TFM_SPM_LOG_LEVEL not defined!"
30 #endif
31 
32 #if (TFM_SPM_LOG_LEVEL > TFM_SPM_LOG_LEVEL_DEBUG || \
33  TFM_SPM_LOG_LEVEL < TFM_SPM_LOG_LEVEL_SILENCE)
34 #error "Incorrect TFM_SPM_LOG_LEVEL value!"
35 #endif
36 
37 #if (TFM_SPM_LOG_LEVEL == TFM_SPM_LOG_LEVEL_DEBUG)
38 #define SPMLOG_DBGMSGVAL(msg, val) spm_log_msgval(msg, sizeof(msg), val)
39 #define SPMLOG_DBGMSG(msg) tfm_hal_output_spm_log(msg, sizeof(msg))
40 #else
41 #define SPMLOG_DBGMSGVAL(msg, val)
42 #define SPMLOG_DBGMSG(msg)
43 #endif
44 
45 #if (TFM_SPM_LOG_LEVEL >= TFM_SPM_LOG_LEVEL_INFO)
46 #define SPMLOG_INFMSGVAL(msg, val) spm_log_msgval(msg, sizeof(msg), val)
47 #define SPMLOG_INFMSG(msg) tfm_hal_output_spm_log(msg, sizeof(msg))
48 #else
49 #define SPMLOG_INFMSGVAL(msg, val)
50 #define SPMLOG_INFMSG(msg)
51 #endif
52 
53 #if (TFM_SPM_LOG_LEVEL >= TFM_SPM_LOG_LEVEL_ERROR)
54 #define SPMLOG_ERRMSGVAL(msg, val) spm_log_msgval(msg, sizeof(msg), val)
55 #define SPMLOG_ERRMSG(msg) tfm_hal_output_spm_log(msg, sizeof(msg))
56 #else
57 #define SPMLOG_ERRMSGVAL(msg, val)
58 #define SPMLOG_ERRMSG(msg)
59 #endif
60 
72 int32_t spm_log_msgval(const char *msg, size_t len, uint32_t value);
73 
74 #endif /* __TFM_SPM_LOG_H__ */
int32_t spm_log_msgval(const char *msg, size_t len, uint32_t value)
SPM output API to convert digit number into HEX string and call the HAL API tfm_hal_output_spm_log.
Definition: spm_log.c:36