|
149 | 149 | #include "sdkconfig.h" |
150 | 150 | #include "soc/soc.h" |
151 | 151 | #include "soc/dport_access.h" |
152 | | -#if CONFIG_IDF_TARGET_ESP32 |
153 | 152 | #include "soc/dport_reg.h" |
154 | | -#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 |
| 153 | +#include "soc/tracemem_config.h" |
| 154 | +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 |
155 | 155 | #include "soc/sensitive_reg.h" |
156 | 156 | #endif |
157 | 157 | #include "eri.h" |
|
160 | 160 | #include "esp_app_trace_membufs_proto.h" |
161 | 161 | #include "esp_app_trace_port.h" |
162 | 162 |
|
163 | | -// TODO: move these (and same definitions in trax.c to dport_reg.h) |
164 | | -#if CONFIG_IDF_TARGET_ESP32 |
165 | | -#define TRACEMEM_MUX_PROBLK0_APPBLK1 0 |
166 | | -#define TRACEMEM_MUX_BLK0_ONLY 1 |
167 | | -#define TRACEMEM_MUX_BLK1_ONLY 2 |
168 | | -#define TRACEMEM_MUX_PROBLK1_APPBLK0 3 |
169 | | -#define TRACEMEM_BLK0_ADDR 0x3FFFC000UL |
170 | | -#define TRACEMEM_BLK1_ADDR 0x3FFF8000UL |
171 | | -#elif CONFIG_IDF_TARGET_ESP32S2 |
172 | | -#define TRACEMEM_MUX_BLK0_NUM 19 |
173 | | -#define TRACEMEM_MUX_BLK1_NUM 20 |
174 | | -#define TRACEMEM_BLK_NUM2ADDR(_n_) (0x3FFB8000UL + 0x4000UL*((_n_)-4)) |
175 | | -#define TRACEMEM_BLK0_ADDR TRACEMEM_BLK_NUM2ADDR(TRACEMEM_MUX_BLK0_NUM) |
176 | | -#define TRACEMEM_BLK1_ADDR TRACEMEM_BLK_NUM2ADDR(TRACEMEM_MUX_BLK1_NUM) |
177 | | -#elif CONFIG_IDF_TARGET_ESP32S3 |
178 | | -#define TRACEMEM_MUX_BLK0_NUM 22 |
179 | | -#define TRACEMEM_MUX_BLK0_ALLOC 0x0 |
180 | | -#define TRACEMEM_MUX_BLK1_NUM 23 |
181 | | -#define TRACEMEM_MUX_BLK1_ALLOC 0x1 |
182 | | - |
183 | | -#define TRACEMEM_CORE0_MUX_BLK_BIT(_n_, _a_) (BIT(((_n_)-2UL)/4UL) | ((_a_) << 14)) |
184 | | -#define TRACEMEM_CORE1_MUX_BLK_BIT(_n_, _a_) (BIT(7UL+(((_n_)-2UL)/4UL)) | ((_a_) << 16)) |
185 | | - |
186 | | -#if TRACEMEM_MUX_BLK0_NUM < 2 |
187 | | -#error Invalid block num! |
188 | | -#elif TRACEMEM_MUX_BLK0_NUM < 6 |
189 | | -#define TRACEMEM_BLK0_ADDR (0x3FC88000UL + 0x2000UL*(TRACEMEM_MUX_BLK0_NUM-2)) |
190 | | -#elif TRACEMEM_MUX_BLK0_NUM < 30 |
191 | | -#define TRACEMEM_BLK0_ADDR (0x3FC90000UL + 0x4000UL*(TRACEMEM_MUX_BLK0_NUM-6)) |
192 | | -#else |
193 | | -#error Invalid block num! |
194 | | -#endif |
195 | | - |
196 | | -#if TRACEMEM_MUX_BLK1_NUM < 2 |
197 | | -#error Invalid block num! |
198 | | -#elif TRACEMEM_MUX_BLK1_NUM < 6 |
199 | | -#define TRACEMEM_BLK1_ADDR (0x3FC88000UL + 0x2000UL*(TRACEMEM_MUX_BLK1_NUM-2)) |
200 | | -#elif TRACEMEM_MUX_BLK1_NUM < 30 |
201 | | -#define TRACEMEM_BLK1_ADDR (0x3FC90000UL + 0x4000UL*(TRACEMEM_MUX_BLK1_NUM-6)) |
202 | | -#else |
203 | | -#error Invalid block num! |
204 | | -#endif |
205 | | -#endif |
206 | | - |
207 | 163 | // TRAX is disabled, so we use its registers for our own purposes |
208 | 164 | // | 31..XXXXXX..24 | 23 .(host_connect). 23 | 22 .(host_data). 22| 21..(block_id)..15 | 14..(block_len)..0 | |
209 | 165 | #define ESP_APPTRACE_TRAX_CTRL_REG ERI_TRAX_DELAYCNT |
@@ -334,10 +290,10 @@ static inline void esp_apptrace_trax_select_memory_block(int block_num) |
334 | 290 | WRITE_PERI_REG(DPORT_PMS_OCCUPY_3_REG, block_num ? BIT(TRACEMEM_MUX_BLK0_NUM-4) : BIT(TRACEMEM_MUX_BLK1_NUM-4)); |
335 | 291 | #elif CONFIG_IDF_TARGET_ESP32S3 |
336 | 292 | // select memory block to be exposed to the TRAX module (accessed by host) |
337 | | - uint32_t block_bits = block_num ? TRACEMEM_CORE0_MUX_BLK_BIT(TRACEMEM_MUX_BLK0_NUM, TRACEMEM_MUX_BLK0_ALLOC) |
338 | | - : TRACEMEM_CORE0_MUX_BLK_BIT(TRACEMEM_MUX_BLK1_NUM, TRACEMEM_MUX_BLK1_ALLOC); |
339 | | - block_bits |= block_num ? TRACEMEM_CORE1_MUX_BLK_BIT(TRACEMEM_MUX_BLK0_NUM, TRACEMEM_MUX_BLK0_ALLOC) |
340 | | - : TRACEMEM_CORE1_MUX_BLK_BIT(TRACEMEM_MUX_BLK1_NUM, TRACEMEM_MUX_BLK1_ALLOC); |
| 293 | + uint32_t block_bits = block_num ? TRACEMEM_CORE0_MUX_BLK_BITS(TRACEMEM_MUX_BLK0_NUM) |
| 294 | + : TRACEMEM_CORE0_MUX_BLK_BITS(TRACEMEM_MUX_BLK1_NUM); |
| 295 | + block_bits |= block_num ? TRACEMEM_CORE1_MUX_BLK_BITS(TRACEMEM_MUX_BLK0_NUM) |
| 296 | + : TRACEMEM_CORE1_MUX_BLK_BITS(TRACEMEM_MUX_BLK1_NUM); |
341 | 297 | ESP_EARLY_LOGV(TAG, "Select block %d @ %p (bits 0x%x)", block_num, s_trax_blocks[block_num], block_bits); |
342 | 298 | DPORT_WRITE_PERI_REG(SENSITIVE_INTERNAL_SRAM_USAGE_2_REG, block_bits); |
343 | 299 | #endif |
|
0 commit comments