Skip to content

Commit 2dc6793

Browse files
mjchen0fabiobaltieri
authored andcommitted
soc: imxrt5xx: add fusion f1 dsp backtrace support
Add needed backtrace helpders routines and enable backtrace for the Xtensa Fusion F1 DSP in the IMXRT595S. Signed-off-by: Mike J. Chen <[email protected]>
1 parent 476e5c5 commit 2dc6793

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

arch/xtensa/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ config XTENSA_USE_CORE_CRT1
4242
config XTENSA_ENABLE_BACKTRACE
4343
bool "Backtrace on panic exception"
4444
default y
45-
depends on SOC_SERIES_ESP32 || SOC_FAMILY_INTEL_ADSP || SOC_XTENSA_DC233C
45+
depends on SOC_SERIES_ESP32 || SOC_FAMILY_INTEL_ADSP || SOC_XTENSA_DC233C || SOC_MIMXRT595S_F1
4646
help
4747
Enable this config option to print backtrace on panic exception
4848

arch/xtensa/core/xtensa_backtrace.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <esp_memory_utils.h>
1212
#elif defined(CONFIG_SOC_FAMILY_INTEL_ADSP)
1313
#include "debug_helpers.h"
14-
#elif defined(CONFIG_SOC_XTENSA_DC233C)
14+
#elif defined(CONFIG_SOC_XTENSA_DC233C) || defined(CONFIG_SOC_MIMXRT595S_F1)
1515
#include "backtrace_helpers.h"
1616
#endif
1717

@@ -69,6 +69,8 @@ static inline bool xtensa_ptr_executable(const void *p)
6969
return intel_adsp_ptr_executable(p);
7070
#elif defined(CONFIG_SOC_XTENSA_DC233C)
7171
return xtensa_dc233c_ptr_executable(p);
72+
#elif defined(CONFIG_SOC_MIMXRT595S_F1)
73+
return xtensa_mimxrt595s_f1_ptr_executable(p);
7274
#else
7375
#warning "xtensa_ptr_executable is not defined for this platform"
7476
#endif
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* Copyright (c) 2025 Google LLC
2+
* SPDX-License-Identifier: Apache-2.0
3+
*/
4+
5+
6+
#ifndef ZEPHYR_SOC_NXP_IMXRT_IMXRT5XX_F1_BACKTRACE_HELPERS_H_
7+
#define ZEPHYR_SOC_NXP_IMXRT_IMXRT5XX_F1_BACKTRACE_HELPERS_H_
8+
9+
#include <zephyr/linker/linker-defs.h>
10+
11+
#include <xtensa/config/core-isa.h>
12+
13+
static inline bool xtensa_mimxrt595s_f1_ptr_executable(const void *p)
14+
{
15+
return ((p >= (void *)__text_region_start) &&
16+
(p <= (void *)__text_region_end));
17+
}
18+
19+
#endif /* ZEPHYR_SOC_NXP_IMXRT_IMXRT5XX_F1_BACKTRACE_HELPERS_H_ */

soc/nxp/imxrt/imxrt5xx/f1/linker.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,10 @@ SECTIONS
314314
__text_region_start = ABSOLUTE(.);
315315
KEEP (*(.ResetVector.text))
316316
*(.ResetVector.literal)
317-
*(.entry.text)
318317
*(.init.literal)
318+
*(.entry.text)
319+
/* to support backtrace */
320+
KEEP (*(.iram1.literal .iram1))
319321
KEEP(*(.init))
320322
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
321323
*(.fini.literal)

0 commit comments

Comments
 (0)