Skip to content

Commit e253c3b

Browse files
VitekSTkartben
authored andcommitted
soc: xtensa: Add mimxrt685s/hifi4
Add definitions, linker file and init code for mimxrt685s/hifi4 (i.MX RT685's HiFi 4 DSP). Signed-off-by: Vit Stanicek <[email protected]>
1 parent 44ae59e commit e253c3b

File tree

14 files changed

+1275
-6
lines changed

14 files changed

+1275
-6
lines changed

soc/nxp/imxrt/imxrt6xx/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@
77
if(CONFIG_SOC_MIMXRT685S_CM33)
88
add_subdirectory(cm33)
99
endif()
10+
11+
if(CONFIG_SOC_MIMXRT685S_HIFI4)
12+
add_subdirectory(hifi4)
13+
endif()

soc/nxp/imxrt/imxrt6xx/Kconfig

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,23 @@ config SOC_MIMXRT685S_CM33
3232
select HAS_MCUX_CTIMER
3333
select SOC_EARLY_INIT_HOOK
3434

35+
config SOC_MIMXRT685S_HIFI4
36+
select XTENSA
37+
select XTENSA_HAL if ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" && "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xt-clang")
38+
select XTENSA_RESET_VECTOR
39+
select XTENSA_USE_CORE_CRT1
40+
select CLOCK_CONTROL
41+
select HAS_MCUX
42+
select HAS_MCUX_SYSCON
43+
select SOC_EARLY_INIT_HOOK
44+
3545
if SOC_SERIES_IMXRT6XX
3646

3747
config MCUX_CORE_SUFFIX
3848
default "_cm33" if SOC_MIMXRT685S_CM33
49+
default "_dsp" if SOC_MIMXRT685S_HIFI4
50+
51+
if SOC_MIMXRT685S_CM33
3952

4053
config INIT_SYS_PLL
4154
bool "Initialize SYS PLL"
@@ -62,4 +75,45 @@ config IMXRT6XX_CODE_CACHE
6275
Enable code cache for FlexSPI region at boot. If this Kconfig is
6376
cleared, the CACHE64 controller will be disabled during SOC init
6477

65-
endif
78+
endif # SOC_MIMXRT685S_CM33
79+
80+
if SOC_MIMXRT685S_HIFI4
81+
82+
DT_ADSP_RESET_MEM := $(dt_nodelabel_path,adsp_reset)
83+
DT_ADSP_DATA_MEM := $(dt_nodelabel_path,adsp_data)
84+
DT_ADSP_TEXT_MEM := $(dt_nodelabel_path,adsp_text)
85+
86+
config RT685_ADSP_STACK_SIZE
87+
hex "Boot time stack size"
88+
default 0x1000
89+
help
90+
Stack space is reserved at the end of the RT685_ADSP_DATA_MEM
91+
region, starting at RT685_ADSP_DATA_MEM_ADDR - RT685_ADSP_STACK_SIZE
92+
93+
config RT685_ADSP_RESET_MEM_ADDR
94+
hex
95+
default $(dt_node_reg_addr_hex,$(DT_ADSP_RESET_MEM))
96+
97+
config RT685_ADSP_RESET_MEM_SIZE
98+
hex
99+
default $(dt_node_reg_size_hex,$(DT_ADSP_RESET_MEM))
100+
101+
config RT685_ADSP_DATA_MEM_ADDR
102+
hex
103+
default $(dt_node_reg_addr_hex,$(DT_ADSP_DATA_MEM))
104+
105+
config RT685_ADSP_DATA_MEM_SIZE
106+
hex
107+
default $(dt_node_reg_size_hex,$(DT_ADSP_DATA_MEM))
108+
109+
config RT685_ADSP_TEXT_MEM_ADDR
110+
hex
111+
default $(dt_node_reg_addr_hex,$(DT_ADSP_TEXT_MEM))
112+
113+
config RT685_ADSP_TEXT_MEM_SIZE
114+
hex
115+
default $(dt_node_reg_size_hex,$(DT_ADSP_TEXT_MEM))
116+
117+
endif # SOC_MIMXRT685S_HIFI4
118+
119+
endif # SOC_SERIES_IMXRT6XX

soc/nxp/imxrt/imxrt6xx/Kconfig.defconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,13 @@ config SYS_CLOCK_HW_CYCLES_PER_SEC
6565
endif # CORTEX_M_SYSTICK
6666

6767
endif # SOC_MIMXRT685S_CM33
68+
69+
if SOC_MIMXRT685S_HIFI4
70+
71+
config SYS_CLOCK_HW_CYCLES_PER_SEC
72+
default 198000000
73+
74+
config MCUX_CORE_SUFFIX
75+
default "_dsp"
76+
77+
endif # SOC_MIMXRT685S_HIFI4

soc/nxp/imxrt/imxrt6xx/Kconfig.soc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,34 @@ config SOC_MIMXRT685S
1212
bool
1313
select SOC_SERIES_IMXRT6XX
1414

15+
config SOC
16+
default "mimxrt685s" if SOC_MIMXRT685S
17+
1518
config SOC_MIMXRT685S_CM33
1619
bool
1720
select SOC_MIMXRT685S
1821

19-
config SOC
20-
default "mimxrt685s" if SOC_MIMXRT685S_CM33
22+
config SOC_MIMXRT685S_HIFI4
23+
bool
24+
select SOC_MIMXRT685S
2125

2226
config SOC_PART_NUMBER_MIMXRT685SFVKB
27+
select SOC_MIMXRT685S
2328
bool
24-
select SOC_MIMXRT685S_CM33
2529

2630
config SOC_PART_NUMBER_MIMXRT685SFFOB
31+
select SOC_MIMXRT685S
2732
bool
28-
select SOC_MIMXRT685S_CM33
2933

3034
config SOC_PART_NUMBER_MIMXRT685SFAWBR
35+
select SOC_MIMXRT685S
3136
bool
32-
select SOC_MIMXRT685S_CM33
3337

3438
config SOC_PART_NUMBER
3539
default "MIMXRT685SFVKB" if SOC_PART_NUMBER_MIMXRT685SFVKB
3640
default "MIMXRT685SFFOB" if SOC_PART_NUMBER_MIMXRT685SFFOB
3741
default "MIMXRT685SFAWBR" if SOC_PART_NUMBER_MIMXRT685SFAWBR
42+
43+
config SOC_TOOLCHAIN_NAME
44+
string
45+
default "nxp_rt600_adsp" if SOC_MIMXRT685S_HIFI4
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#
2+
# Copyright 2025 NXP
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
7+
zephyr_include_directories(.)
8+
zephyr_include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
9+
zephyr_sources(soc.c)
10+
11+
zephyr_library_include_directories(
12+
${ZEPHYR_BASE}/kernel/include
13+
${ZEPHYR_BASE}/arch/${ARCH}/include
14+
)
15+
16+
set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/linker.ld CACHE INTERNAL "")

0 commit comments

Comments
 (0)