1 /*
2  * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #define TRACEMEM_MUX_BLK0_NUM                   22
13 #define TRACEMEM_MUX_BLK1_NUM                   26
14 
15 #if (TRACEMEM_MUX_BLK0_NUM < 6) || (TRACEMEM_MUX_BLK0_NUM > 29)
16 #error Invalid TRAX block 0 num!
17 #endif
18 #if (TRACEMEM_MUX_BLK1_NUM < 6) || (TRACEMEM_MUX_BLK1_NUM > 29)
19 #error Invalid TRAX block 1 num!
20 #endif
21 
22 #if TRACEMEM_MUX_BLK0_NUM < 6
23 #define TRACEMEM_BLK0_ADDR                      (0x3FC88000UL + 0x2000UL*(TRACEMEM_MUX_BLK0_NUM-2UL))
24 #elif TRACEMEM_MUX_BLK0_NUM < 30
25 #define TRACEMEM_BLK0_ADDR                      (0x3FC90000UL + 0x4000UL*(TRACEMEM_MUX_BLK0_NUM-6UL))
26 #endif
27 #if TRACEMEM_MUX_BLK1_NUM < 6
28 #define TRACEMEM_BLK1_ADDR                      (0x3FC88000UL + 0x2000UL*(TRACEMEM_MUX_BLK1_NUM-2UL))
29 #elif TRACEMEM_MUX_BLK1_NUM < 30
30 #define TRACEMEM_BLK1_ADDR                      (0x3FC90000UL + 0x4000UL*(TRACEMEM_MUX_BLK1_NUM-6UL))
31 #endif
32 
33 #define TRACEMEM_MUX_BLK_ALLOC(_n_)             (((_n_)-2UL)%4UL)
34 #define TRACEMEM_CORE0_MUX_BLK_BITS(_n_)         (BIT(((_n_)-2UL)/4UL) | (TRACEMEM_MUX_BLK_ALLOC(_n_) << 14))
35 #define TRACEMEM_CORE1_MUX_BLK_BITS(_n_)         (BIT(7UL+(((_n_)-2UL)/4UL)) | (TRACEMEM_MUX_BLK_ALLOC(_n_) << 16))
36 
37 #ifdef __cplusplus
38 }
39 #endif
40