blob: e105f801ca626115a6725a77ed19690cdb35b019 [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright 2019 NXP
*
* Brief CAAM driver trace include file.
* Definition of the internal driver trace macros.
*/
#ifndef __CAAM_TRACE_H__
#define __CAAM_TRACE_H__
#include <trace.h>
#include <util.h>
/*
* Debug Macros function of CAAM Debug Level setting
* The CFG_CAAM_DBG is a bit mask 32 bits value defined
* as followed:
*/
#define DBG_TRACE_HAL BIT32(0) /* HAL trace */
#define DBG_TRACE_CTRL BIT32(1) /* Controller trace */
#define DBG_TRACE_MEM BIT32(2) /* Memory utility trace */
#define DBG_TRACE_PWR BIT32(3) /* Power trace */
#define DBG_TRACE_JR BIT32(4) /* Job Ring trace */
#define DBG_DESC_JR BIT32(5) /* Job Ring dump descriptor */
#define DBG_TRACE_RNG BIT32(6) /* RNG trace */
#define DBG_DESC_RNG BIT32(7) /* RNG dump descriptor */
#define DBG_TRACE_HASH BIT32(8) /* Hash trace */
#define DBG_DESC_HASH BIT32(9) /* Hash dump descriptor */
#define DBG_BUF_HASH BIT32(10) /* Hash dump Buffer */
/* HAL */
#if (CFG_CAAM_DBG & DBG_TRACE_HAL)
#define HAL_TRACE DRV_TRACE
#else
#define HAL_TRACE(...)
#endif
/* Controller */
#if (CFG_CAAM_DBG & DBG_TRACE_CTRL)
#define CTRL_TRACE DRV_TRACE
#else
#define CTRL_TRACE(...)
#endif
/* Memory Utility */
#if (CFG_CAAM_DBG & DBG_TRACE_MEM)
#define MEM_TRACE DRV_TRACE
#else
#define MEM_TRACE(...)
#endif
/* Power */
#if (CFG_CAAM_DBG & DBG_TRACE_PWR)
#define PWR_TRACE DRV_TRACE
#else
#define PWR_TRACE(...)
#endif
/* Job Ring */
#if (CFG_CAAM_DBG & DBG_TRACE_JR)
#define JR_TRACE DRV_TRACE
#if (CFG_CAAM_DBG & DBG_DESC_JR)
#define JR_DUMPDESC(desc) \
do { \
JR_TRACE("Descriptor"); \
DRV_DUMPDESC(desc); \
} while (0)
#else
#define JR_DUMPDESC(desc)
#endif
#else
#define JR_TRACE(...)
#define JR_DUMPDESC(desc)
#endif
/* RNG */
#if (CFG_CAAM_DBG & DBG_TRACE_RNG)
#define RNG_TRACE DRV_TRACE
#if (CFG_CAAM_DBG & DBG_DESC_RNG)
#define RNG_DUMPDESC(desc) \
do { \
RNG_TRACE("RNG Descriptor"); \
DRV_DUMPDESC(desc); \
} while (0)
#else
#define RNG_DUMPDESC(desc)
#endif
#else
#define RNG_TRACE(...)
#define RNG_DUMPDESC(desc)
#endif
/* Hash */
#if (CFG_CAAM_DBG & DBG_TRACE_HASH)
#define HASH_TRACE DRV_TRACE
#if (CFG_CAAM_DBG & DBG_DESC_HASH)
#define HASH_DUMPDESC(desc) \
do { \
HASH_TRACE("HASH Descriptor"); \
DRV_DUMPDESC(desc); \
} while (0)
#else
#define HASH_DUMPDESC(desc)
#endif
#if (CFG_CAAM_DBG & DBG_BUF_HASH)
#define HASH_DUMPBUF DRV_DUMPBUF
#else
#define HASH_DUMPBUF(...)
#endif
#else
#define HASH_TRACE(...)
#define HASH_DUMPDESC(desc)
#define HASH_DUMPBUF(...)
#endif
#if (TRACE_LEVEL >= TRACE_DEBUG)
#define DRV_TRACE(...) \
trace_printf(__func__, __LINE__, TRACE_DEBUG, true, __VA_ARGS__)
#define DRV_DUMPDESC(desc) dump_desc(desc)
#define DRV_DUMPBUF(title, buf, len) \
do { \
__typeof__(buf) _buf = (buf); \
__typeof__(len) _len = (len); \
\
DRV_TRACE("%s @0x%" PRIxPTR ": %zu", title, (uintptr_t)_buf, \
_len); \
dhex_dump(NULL, 0, 0, _buf, _len); \
} while (0)
#else
#define DRV_TRACE(...)
#define DRV_DUMPDESC(...)
#define DRV_DUMPBUF(...)
#endif
#endif /* CAAM_TRACE_H__ */