1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright 2019-2021, 2023-2024 NXP 4 * 5 * Brief CAAM driver trace include file. 6 * Definition of the internal driver trace macros. 7 */ 8 9 #ifndef __CAAM_TRACE_H__ 10 #define __CAAM_TRACE_H__ 11 12 #include <trace.h> 13 #include <util.h> 14 15 #define CAAM_DBG_TRACE(var) (CFG_DBG_CAAM_TRACE & DBG_TRACE_##var) 16 #define CAAM_DBG_DESC(var) (CFG_DBG_CAAM_DESC & DBG_TRACE_##var) 17 #define CAAM_DBG_BUF(var) (CFG_DBG_CAAM_BUF & DBG_TRACE_##var) 18 19 /* 20 * Debug Macros function of CAAM Debug Level setting 21 * CFG_DBG_CAAM_TRACE Module print trace 22 * CFG_DBG_CAAM_DESC Module descriptor dump 23 * CFG_DBG_CAAM_BUF Module buffer dump 24 * 25 * A module is represented with the same bit in each configuration value. 26 * Module Bit definition is as follow: 27 */ 28 #define DBG_TRACE_HAL BIT32(0) /* HAL trace */ 29 #define DBG_TRACE_CTRL BIT32(1) /* Controller trace */ 30 #define DBG_TRACE_MEM BIT32(2) /* Memory utility trace */ 31 #define DBG_TRACE_SGT BIT32(3) /* Scatter Gather trace */ 32 #define DBG_TRACE_PWR BIT32(4) /* Power trace */ 33 #define DBG_TRACE_JR BIT32(5) /* Job Ring trace */ 34 #define DBG_TRACE_RNG BIT32(6) /* RNG trace */ 35 #define DBG_TRACE_HASH BIT32(7) /* Hash trace */ 36 #define DBG_TRACE_RSA BIT32(8) /* RSA trace */ 37 #define DBG_TRACE_CIPHER BIT32(9) /* Cipher dump Buffer */ 38 #define DBG_TRACE_BLOB BIT32(10) /* BLOB trace */ 39 #define DBG_TRACE_DMAOBJ BIT32(11) /* DMA Object trace */ 40 #define DBG_TRACE_ECC BIT32(12) /* ECC trace */ 41 #define DBG_TRACE_DH BIT32(13) /* DH trace */ 42 #define DBG_TRACE_DSA BIT32(14) /* DSA trace */ 43 #define DBG_TRACE_MP BIT32(15) /* MP trace */ 44 #define DBG_TRACE_SM BIT32(16) /* Secure Memory trace */ 45 #define DBG_TRACE_KEY BIT32(17) /* KEY trace */ 46 #define DBG_TRACE_AE BIT32(18) /* AE trace */ 47 48 /* HAL */ 49 #if CAAM_DBG_TRACE(HAL) 50 #define HAL_TRACE DRV_TRACE 51 #else 52 #define HAL_TRACE(...) 53 #endif 54 55 /* Controller */ 56 #if CAAM_DBG_TRACE(CTRL) 57 #define CTRL_TRACE DRV_TRACE 58 #else 59 #define CTRL_TRACE(...) 60 #endif 61 62 /* Memory Utility */ 63 #if CAAM_DBG_TRACE(MEM) 64 #define MEM_TRACE DRV_TRACE 65 #else 66 #define MEM_TRACE(...) 67 #endif 68 69 /* Scatter Gether Table */ 70 #if CAAM_DBG_TRACE(SGT) 71 #define SGT_TRACE DRV_TRACE 72 #else 73 #define SGT_TRACE(...) 74 #endif 75 76 /* Power */ 77 #if CAAM_DBG_TRACE(PWR) 78 #define PWR_TRACE DRV_TRACE 79 #else 80 #define PWR_TRACE(...) 81 #endif 82 83 /* Job Ring */ 84 #if CAAM_DBG_TRACE(JR) 85 #define JR_TRACE DRV_TRACE 86 #if CAAM_DBG_DESC(JR) 87 #define JR_DUMPDESC(desc) \ 88 do { \ 89 JR_TRACE("Descriptor"); \ 90 DRV_DUMPDESC(desc); \ 91 } while (0) 92 #else 93 #define JR_DUMPDESC(desc) 94 #endif 95 #else 96 #define JR_TRACE(...) 97 #define JR_DUMPDESC(desc) 98 #endif 99 100 /* RNG */ 101 #if CAAM_DBG_TRACE(RNG) 102 #define RNG_TRACE DRV_TRACE 103 #if CAAM_DBG_DESC(RNG) 104 #define RNG_DUMPDESC(desc) \ 105 do { \ 106 RNG_TRACE("RNG Descriptor"); \ 107 DRV_DUMPDESC(desc); \ 108 } while (0) 109 #else 110 #define RNG_DUMPDESC(desc) 111 #endif 112 #else 113 #define RNG_TRACE(...) 114 #define RNG_DUMPDESC(desc) 115 #endif 116 117 /* Hash */ 118 #if CAAM_DBG_TRACE(HASH) 119 #define HASH_TRACE DRV_TRACE 120 #if CAAM_DBG_DESC(HASH) 121 #define HASH_DUMPDESC(desc) \ 122 do { \ 123 HASH_TRACE("HASH Descriptor"); \ 124 DRV_DUMPDESC(desc); \ 125 } while (0) 126 #else 127 #define HASH_DUMPDESC(desc) 128 #endif 129 #if CAAM_DBG_BUF(HASH) 130 #define HASH_DUMPBUF DRV_DUMPBUF 131 #else 132 #define HASH_DUMPBUF(...) 133 #endif 134 #else 135 #define HASH_TRACE(...) 136 #define HASH_DUMPDESC(desc) 137 #define HASH_DUMPBUF(...) 138 #endif 139 140 /* RSA */ 141 #if CAAM_DBG_TRACE(RSA) 142 #define RSA_TRACE DRV_TRACE 143 #if CAAM_DBG_DESC(RSA) 144 #define RSA_DUMPDESC(desc) \ 145 do { \ 146 RSA_TRACE("RSA Descriptor"); \ 147 DRV_DUMPDESC(desc); \ 148 } while (0) 149 #else 150 #define RSA_DUMPDESC(desc) 151 #endif 152 #if CAAM_DBG_BUF(RSA) 153 #define RSA_DUMPBUF DRV_DUMPBUF 154 #else 155 #define RSA_DUMPBUF(...) 156 #endif 157 #else 158 #define RSA_TRACE(...) 159 #define RSA_DUMPDESC(desc) 160 #define RSA_DUMPBUF(...) 161 #endif 162 163 /* Cipher */ 164 #if CAAM_DBG_TRACE(CIPHER) 165 #define CIPHER_TRACE DRV_TRACE 166 #if CAAM_DBG_DESC(CIPHER) 167 #define CIPHER_DUMPDESC(desc) \ 168 do { \ 169 CIPHER_TRACE("CIPHER Descriptor"); \ 170 DRV_DUMPDESC(desc); \ 171 } while (0) 172 #else 173 #define CIPHER_DUMPDESC(desc) 174 #endif 175 #if CAAM_DBG_BUF(CIPHER) 176 #define CIPHER_DUMPBUF DRV_DUMPBUF 177 #else 178 #define CIPHER_DUMPBUF(...) 179 #endif 180 #else 181 #define CIPHER_TRACE(...) 182 #define CIPHER_DUMPDESC(desc) 183 #define CIPHER_DUMPBUF(...) 184 #endif 185 186 /* DMA Object */ 187 #if CAAM_DBG_TRACE(DMAOBJ) 188 #define DMAOBJ_TRACE DRV_TRACE 189 #else 190 #define DMAOBJ_TRACE(...) 191 #endif 192 193 /* ECC */ 194 #if CAAM_DBG_TRACE(ECC) 195 #define ECC_TRACE DRV_TRACE 196 #if CAAM_DBG_DESC(ECC) 197 #define ECC_DUMPDESC(desc) \ 198 do { \ 199 ECC_TRACE("ECC Descriptor"); \ 200 DRV_DUMPDESC(desc); \ 201 } while (0) 202 #else 203 #define ECC_DUMPDESC(desc) do { } while (0) 204 #endif 205 #if CAAM_DBG_BUF(ECC) 206 #define ECC_DUMPBUF DRV_DUMPBUF 207 #else 208 #define ECC_DUMPBUF(...) do { } while (0) 209 #endif 210 #else 211 #define ECC_TRACE(...) do { } while (0) 212 #define ECC_DUMPDESC(desc) do { } while (0) 213 #define ECC_DUMPBUF(...) do { } while (0) 214 #endif 215 216 /* DH */ 217 #if CAAM_DBG_TRACE(DH) 218 #define DH_TRACE DRV_TRACE 219 #if CAAM_DBG_DESC(DH) 220 #define DH_DUMPDESC(desc) \ 221 { \ 222 DH_TRACE("DH Descriptor"); \ 223 DRV_DUMPDESC(desc); \ 224 } 225 #else 226 #define DH_DUMPDESC(desc) 227 #endif 228 #if CAAM_DBG_BUF(DH) 229 #define DH_DUMPBUF DRV_DUMPBUF 230 #else 231 #define DH_DUMPBUF(...) 232 #endif 233 #else 234 #define DH_TRACE(...) 235 #define DH_DUMPDESC(desc) 236 #define DH_DUMPBUF(...) 237 #endif 238 239 /* DSA */ 240 #if CAAM_DBG_TRACE(DSA) 241 #define DSA_TRACE DRV_TRACE 242 #if CAAM_DBG_DESC(DSA) 243 #define DSA_DUMPDESC(desc) \ 244 do { \ 245 DSA_TRACE("DSA Descriptor"); \ 246 DRV_DUMPDESC(desc); \ 247 } while (0) 248 #else 249 #define DSA_DUMPDESC(desc) 250 #endif 251 #if CAAM_DBG_BUF(DSA) 252 #define DSA_DUMPBUF DRV_DUMPBUF 253 #else 254 #define DSA_DUMPBUF(...) 255 #endif 256 #else 257 #define DSA_TRACE(...) 258 #define DSA_DUMPDESC(desc) 259 #define DSA_DUMPBUF(...) 260 #endif 261 262 /* MP */ 263 #if CAAM_DBG_TRACE(MP) 264 #define MP_TRACE DRV_TRACE 265 #if CAAM_DBG_DESC(MP) 266 #define MP_DUMPDESC(desc) \ 267 do { \ 268 MP_TRACE("MP Descriptor"); \ 269 DRV_DUMPDESC(desc); \ 270 } while (0) 271 #else 272 #define MP_DUMPDESC(desc) 273 #endif 274 #if CAAM_DBG_BUF(MP) 275 #define MP_DUMPBUF DRV_DUMPBUF 276 #else 277 #define MP_DUMPBUF(...) 278 #endif 279 #else 280 #define MP_TRACE(...) do { } while (0) 281 #define MP_DUMPDESC(desc) 282 #define MP_DUMPBUF(...) 283 #endif 284 285 /* KEY */ 286 #if CAAM_DBG_TRACE(KEY) 287 #define KEY_TRACE DRV_TRACE 288 #if CAAM_DBG_DESC(KEY) 289 #define KEY_DUMPDESC(desc) \ 290 do { \ 291 KEY_TRACE("KEY Descriptor"); \ 292 DRV_DUMPDESC(desc); \ 293 } while (0) 294 #else 295 #define KEY_DUMPDESC(desc) 296 #endif 297 #if CAAM_DBG_BUF(KEY) 298 #define KEY_DUMPBUF DRV_DUMPBUF 299 #else 300 #define KEY_DUMPBUF(...) 301 #endif 302 #else 303 #define KEY_TRACE(...) do { } while (0) 304 #define KEY_DUMPDESC(desc) do { } while (0) 305 #define KEY_DUMPBUF(...) do { } while (0) 306 #endif 307 308 #if (TRACE_LEVEL >= TRACE_DEBUG) 309 #define DRV_TRACE(...) \ 310 trace_printf(__func__, __LINE__, TRACE_DEBUG, true, __VA_ARGS__) 311 #define DRV_DUMPDESC(desc) dump_desc(desc) 312 313 #define DRV_DUMPBUF(title, buf, len) \ 314 do { \ 315 __typeof__(buf) _buf = (buf); \ 316 __typeof__(len) _len = (len); \ 317 \ 318 DRV_TRACE("%s @%p : %zu", title, _buf, _len); \ 319 dhex_dump(NULL, 0, 0, _buf, _len); \ 320 } while (0) 321 322 #else 323 #define DRV_TRACE(...) 324 #define DRV_DUMPDESC(...) 325 #define DRV_DUMPBUF(...) 326 #endif 327 328 /* BLOB */ 329 #if CAAM_DBG_TRACE(BLOB) 330 #define BLOB_TRACE DRV_TRACE 331 #if CAAM_DBG_DESC(BLOB) 332 #define BLOB_DUMPDESC(desc) \ 333 do { \ 334 BLOB_TRACE("BLOB Descriptor"); \ 335 DRV_DUMPDESC(desc); \ 336 } while (0) 337 #else 338 #define BLOB_DUMPDESC(desc) 339 #endif 340 #if CAAM_DBG_BUF(BLOB) 341 #define BLOB_DUMPBUF DRV_DUMPBUF 342 #else 343 #define BLOB_DUMPBUF(...) 344 #endif 345 #else 346 #define BLOB_TRACE(...) 347 #define BLOB_DUMPDESC(desc) 348 #define BLOB_DUMPBUF(...) 349 #endif 350 351 /* Secure Memory */ 352 #if CAAM_DBG_TRACE(SM) 353 #define SM_TRACE DRV_TRACE 354 #else 355 #define SM_TRACE(...) 356 #endif 357 358 /* Cipher AE */ 359 #if CAAM_DBG_TRACE(AE) 360 #define AE_TRACE DRV_TRACE 361 #if CAAM_DBG_DESC(AE) 362 #define AE_DUMPDESC(desc) \ 363 do { \ 364 AE_TRACE("AE Descriptor"); \ 365 DRV_DUMPDESC(desc); \ 366 } while (0) 367 #else 368 #define AE_DUMPDESC(...) 369 #endif 370 #if CAAM_DBG_BUF(AE) 371 #define AE_DUMPBUF DRV_DUMPBUF 372 #else 373 #define AE_DUMPBUF(...) 374 #endif 375 #else 376 #define AE_TRACE(...) 377 #define AE_DUMPDESC(...) 378 #define AE_DUMPBUF(...) 379 #endif 380 381 #endif /* CAAM_TRACE_H__ */ 382