soc: nxp: rt5xx: convert RT5xx SOC to HWMv2
Convert NXP iMX RT5xx SOC to hardware model V2. This core is dual architecture, so both the ARM Cortex M33 and Xtensa Fusion F1 DSP have been unified within one SOC port folder. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
committed by
Carles Cufi
parent
01942f1d11
commit
e7a4fd2ec1
@@ -813,7 +813,7 @@ static void mcux_flexcomm_uart_dma_rx_callback(const struct device *dma_device,
|
||||
data->rx_data.offset = 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_SOC_SERIES_IMX_RT5XX) || defined(CONFIG_SOC_SERIES_IMXRT6XX)
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT5XX) || defined(CONFIG_SOC_SERIES_IMXRT6XX)
|
||||
/*
|
||||
* This functions calculates the inputmux connection value
|
||||
* needed by INPUTMUX_EnableSignal to allow the UART's DMA
|
||||
@@ -825,7 +825,7 @@ static uint32_t fc_uart_calc_inmux_connection(uint8_t channel, DMA_Type *base)
|
||||
uint32_t chmux_sel = 0;
|
||||
uint32_t chmux_val = 0;
|
||||
|
||||
#if defined(CONFIG_SOC_SERIES_IMX_RT5XX)
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT5XX)
|
||||
uint32_t chmux_sel_id = 0;
|
||||
|
||||
if (base == (DMA_Type *)DMA0_BASE) {
|
||||
@@ -902,7 +902,7 @@ static int flexcomm_uart_async_init(const struct device *dev)
|
||||
USART_EnableRxDMA(config->base, false);
|
||||
|
||||
/* Route DMA requests */
|
||||
#if defined(CONFIG_SOC_SERIES_IMX_RT5XX) || defined(CONFIG_SOC_SERIES_IMXRT6XX)
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT5XX) || defined(CONFIG_SOC_SERIES_IMXRT6XX)
|
||||
/* RT 3 digit uses input mux to route DMA requests from
|
||||
* the UART peripheral to a hardware designated DMA channel
|
||||
*/
|
||||
|
||||
@@ -76,7 +76,7 @@ static void usb_isr_handler(void);
|
||||
BUILD_ASSERT(NUM_INSTS <= 1, "Only one USB device supported");
|
||||
|
||||
/* Controller ID is for HAL usage */
|
||||
#if defined(CONFIG_SOC_SERIES_IMX_RT5XX) || \
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT5XX) || \
|
||||
defined(CONFIG_SOC_SERIES_IMXRT6XX) || \
|
||||
defined(CONFIG_SOC_LPC55S28) || \
|
||||
defined(CONFIG_SOC_LPC55S16)
|
||||
|
||||
@@ -33,7 +33,7 @@ if(CONFIG_SOC_SERIES_IMXRT10XX OR CONFIG_SOC_SERIES_IMXRT11XX)
|
||||
zephyr_compile_definitions(XIP_EXTERNAL_FLASH)
|
||||
endif()
|
||||
|
||||
if(CONFIG_SOC_SERIES_IMXRT6XX OR CONFIG_SOC_SERIES_IMX_RT5XX)
|
||||
if(CONFIG_SOC_SERIES_IMXRT6XX OR CONFIG_SOC_SERIES_IMXRT5XX)
|
||||
zephyr_linker_sources_ifdef(CONFIG_USB_DEVICE_DRIVER SECTIONS usb.ld)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ endchoice # BOOT_DEVICE
|
||||
|
||||
config FLEXSPI_CONFIG_BLOCK_OFFSET
|
||||
hex "FlexSPI config block offset"
|
||||
default 0x400 if SOC_SERIES_IMX_RT5XX || SOC_SERIES_IMXRT6XX
|
||||
default 0x400 if SOC_SERIES_IMXRT5XX || SOC_SERIES_IMXRT6XX
|
||||
default 0x0 if BOOT_FLEXSPI_NOR
|
||||
help
|
||||
FlexSPI configuration block consists of parameters regarding specific
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT11XX) || defined(CONFIG_SOC_SERIES_IMXRT10XX)
|
||||
KEEP(*(.boot_hdr.conf))
|
||||
#endif
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT6XX) || defined(CONFIG_SOC_SERIES_IMX_RT5XX)
|
||||
#if defined(CONFIG_SOC_SERIES_IMXRT6XX) || defined(CONFIG_SOC_SERIES_IMXRT5XX)
|
||||
KEEP(*(.flash_conf))
|
||||
#endif
|
||||
. = CONFIG_IMAGE_VECTOR_TABLE_OFFSET;
|
||||
|
||||
11
soc/nxp/imxrt/imxrt5xx/CMakeLists.txt
Normal file
11
soc/nxp/imxrt/imxrt5xx/CMakeLists.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# Copyright 2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if(CONFIG_SOC_MIMXRT595S_CM33)
|
||||
add_subdirectory(cm33)
|
||||
elseif(CONFIG_SOC_MIMXRT595S_F1)
|
||||
add_subdirectory(f1)
|
||||
endif()
|
||||
85
soc/nxp/imxrt/imxrt5xx/Kconfig
Normal file
85
soc/nxp/imxrt/imxrt5xx/Kconfig
Normal file
@@ -0,0 +1,85 @@
|
||||
# Copyright 2024 NXP
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SOC_MIMXRT595S_CM33
|
||||
select CPU_CORTEX_M33
|
||||
select CLOCK_CONTROL
|
||||
select CPU_CORTEX_M_HAS_DWT
|
||||
select ARM
|
||||
select HAS_PM
|
||||
select HAS_POWEROFF
|
||||
select CPU_HAS_ARM_SAU
|
||||
select CPU_HAS_ARM_MPU
|
||||
select CPU_HAS_FPU
|
||||
select PLATFORM_SPECIFIC_INIT
|
||||
select ARMV8_M_DSP
|
||||
select ARM_TRUSTZONE_M
|
||||
select CPU_CORTEX_M_HAS_SYSTICK
|
||||
select HAS_MCUX
|
||||
select HAS_MCUX_SYSCON
|
||||
select HAS_MCUX_FLEXCOMM
|
||||
select HAS_MCUX_FLEXSPI
|
||||
select HAS_MCUX_CACHE
|
||||
select HAS_MCUX_LPC_DMA
|
||||
select HAS_MCUX_LPADC
|
||||
select HAS_MCUX_OS_TIMER
|
||||
select HAS_MCUX_LPC_RTC
|
||||
select HAS_MCUX_TRNG
|
||||
select HAS_MCUX_SCTIMER
|
||||
select HAS_MCUX_USDHC1
|
||||
select HAS_MCUX_USDHC2
|
||||
select HAS_MCUX_USB_LPCIP3511
|
||||
select HAS_MCUX_CTIMER
|
||||
|
||||
config SOC_MIMXRT595S_F1
|
||||
select XTENSA
|
||||
select XTENSA_HAL if ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" && "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xt-clang")
|
||||
select XTENSA_RESET_VECTOR
|
||||
select XTENSA_USE_CORE_CRT1
|
||||
|
||||
if SOC_SERIES_IMXRT5XX
|
||||
|
||||
if NXP_IMXRT_BOOT_HEADER
|
||||
|
||||
config IMAGE_VECTOR_TABLE_OFFSET
|
||||
default 0x1000
|
||||
|
||||
endif # NXP_IMXRT_BOOT_HEADER
|
||||
|
||||
config IMXRT5XX_CODE_CACHE
|
||||
bool "Code cache"
|
||||
default y
|
||||
help
|
||||
Enable code cache for FlexSPI region at boot. If this Kconfig is
|
||||
cleared, the CACHE64 controller will be disabled during SOC init
|
||||
|
||||
choice FLEXCOMM0_CLK_SRC
|
||||
prompt "Clock source for Flexcomm0"
|
||||
default FLEXCOMM0_CLK_SRC_FRG
|
||||
|
||||
config FLEXCOMM0_CLK_SRC_FRG
|
||||
bool "FRG is source of Flexcomm0 clock"
|
||||
|
||||
config FLEXCOMM0_CLK_SRC_FRO
|
||||
bool "FRO_DIV4 is source of Flexcomm0 clock"
|
||||
|
||||
endchoice
|
||||
|
||||
choice MIPI_DPHY_CLK_SRC
|
||||
prompt "Clock source for MIPI DPHY"
|
||||
default MIPI_DPHY_CLK_SRC_AUX1_PLL
|
||||
|
||||
config MIPI_DPHY_CLK_SRC_AUX1_PLL
|
||||
bool "AUX1_PLL is source of MIPI_DPHY clock"
|
||||
|
||||
config MIPI_DPHY_CLK_SRC_FRO
|
||||
bool "FRO 192/96M is source of MIPI_DPHY clock"
|
||||
|
||||
endchoice
|
||||
|
||||
config MCUX_CORE_SUFFIX
|
||||
default "_cm33" if SOC_MIMXRT595S_CM33
|
||||
default "_dsp" if SOC_MIMXRT595S_F1
|
||||
|
||||
endif # SOC_SERIES_IMXRT5XX
|
||||
119
soc/nxp/imxrt/imxrt5xx/Kconfig.defconfig
Normal file
119
soc/nxp/imxrt/imxrt5xx/Kconfig.defconfig
Normal file
@@ -0,0 +1,119 @@
|
||||
# Copyright 2024 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_MIMXRT595S_CM33
|
||||
|
||||
config ROM_START_OFFSET
|
||||
default 0x1200 if NXP_IMXRT_BOOT_HEADER
|
||||
|
||||
# The PVT Sensor uses IRQ #75. For more details, see
|
||||
# https://www.nxp.com/design/design-center/software/embedded-software/application-software-packs/application-software-pack-dynamic-voltage-scaling-using-pvt-sensor:APP-SW-PACK-DVS-PVT-SENSOR
|
||||
config NUM_IRQS
|
||||
default 76
|
||||
|
||||
config ZTEST_NO_YIELD
|
||||
default y if (PM && ZTEST)
|
||||
|
||||
# Code relocation is needed for flash clock setup
|
||||
config CODE_DATA_RELOCATION_SRAM
|
||||
default y
|
||||
|
||||
#
|
||||
# MBEDTLS is larger but much faster than TinyCrypt so choose wisely
|
||||
#
|
||||
config MBEDTLS
|
||||
#config TINYCRYPT
|
||||
default y if CSPRNG_ENABLED
|
||||
depends on ENTROPY_GENERATOR
|
||||
|
||||
if MBEDTLS
|
||||
#
|
||||
# MBEDTLS CTR_DRBG code path needs extra stack space for initialization than
|
||||
# what the ztest_thread_stack defaults to.
|
||||
#
|
||||
config TEST_EXTRA_STACK_SIZE
|
||||
int
|
||||
default 1024
|
||||
endif # MBEDTLS
|
||||
|
||||
if MCUX_OS_TIMER
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 1000000
|
||||
|
||||
endif # MCUX_OS_TIMER
|
||||
|
||||
if CORTEX_M_SYSTICK
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 250105263
|
||||
|
||||
endif # CORTEX_M_SYSTICK
|
||||
|
||||
choice USB_MCUX_CONTROLLER_TYPE
|
||||
default USB_DC_NXP_LPCIP3511
|
||||
endchoice
|
||||
|
||||
if PM_DEVICE
|
||||
# Enable the MEMC FlexSPI driver when using device power
|
||||
# management so we can reconfigure the FlexSPI pins to
|
||||
# save power. The MEMC FlexSPI driver is enabled when we
|
||||
# enable the Flash subsystem, however we would like to
|
||||
# reconfigure the FlexSPI pins even when the Flash driver
|
||||
# is disabled, hence MEMC is selected when PM_DEVICE
|
||||
# is turned on.
|
||||
config MEMC
|
||||
default y
|
||||
select MEMC_MCUX_FLEXSPI
|
||||
|
||||
endif
|
||||
|
||||
endif # SOC_MIMXRT595S_CM33
|
||||
|
||||
if SOC_MIMXRT595S_F1
|
||||
|
||||
config SMP
|
||||
default n
|
||||
|
||||
config XTENSA_TIMER
|
||||
default y
|
||||
|
||||
config KERNEL_ENTRY
|
||||
default "__start"
|
||||
|
||||
config MULTI_LEVEL_INTERRUPTS
|
||||
default n
|
||||
|
||||
config 2ND_LEVEL_INTERRUPTS
|
||||
default n
|
||||
|
||||
# To prevent test uses TEST_LOGGING_MINIMAL
|
||||
config TEST_LOGGING_DEFAULTS
|
||||
default n
|
||||
depends on TEST
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 198000000
|
||||
|
||||
config XTENSA_CCOUNT_HZ
|
||||
default SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
|
||||
config SYS_CLOCK_TICKS_PER_SEC
|
||||
default 1000
|
||||
|
||||
config DYNAMIC_INTERRUPTS
|
||||
default n
|
||||
|
||||
config CACHE
|
||||
default n
|
||||
|
||||
config DCACHE
|
||||
default n
|
||||
|
||||
config CACHE_MANAGEMENT
|
||||
default n
|
||||
|
||||
config LOG
|
||||
default n
|
||||
|
||||
endif # SOC_MIMXRT595S_F1
|
||||
60
soc/nxp/imxrt/imxrt5xx/Kconfig.soc
Normal file
60
soc/nxp/imxrt/imxrt5xx/Kconfig.soc
Normal file
@@ -0,0 +1,60 @@
|
||||
# i.MX RT5XX Series
|
||||
|
||||
# Copyright 2022-2024, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SOC_SERIES_IMXRT5XX
|
||||
bool
|
||||
select SOC_FAMILY_NXP_IMXRT
|
||||
|
||||
config SOC_MIMXRT595S
|
||||
bool
|
||||
select SOC_SERIES_IMXRT5XX
|
||||
|
||||
config SOC_MIMXRT595S_CM33
|
||||
bool
|
||||
select SOC_MIMXRT595S
|
||||
help
|
||||
NXP RT5xx CM33 core
|
||||
|
||||
config SOC_MIMXRT595S_F1
|
||||
bool
|
||||
select SOC_MIMXRT595S
|
||||
help
|
||||
NXP RT5xx ADSP Series
|
||||
|
||||
config SOC_SERIES
|
||||
default "imxrt5xx" if SOC_SERIES_IMXRT5XX
|
||||
|
||||
config SOC
|
||||
default "mimxrt595s" if SOC_MIMXRT595S
|
||||
|
||||
config SOC_TOOLCHAIN_NAME
|
||||
string
|
||||
default "nxp_rt500_adsp" if SOC_MIMXRT595S_F1
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT533SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT555SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT595SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT533SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT555SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT595SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER
|
||||
default "MIMXRT533SFAWC" if SOC_PART_NUMBER_MIMXRT533SFAWC
|
||||
default "MIMXRT555SFAWC" if SOC_PART_NUMBER_MIMXRT555SFAWC
|
||||
default "MIMXRT595SFAWC" if SOC_PART_NUMBER_MIMXRT595SFAWC
|
||||
default "MIMXRT533SFFOC" if SOC_PART_NUMBER_MIMXRT533SFFOC
|
||||
default "MIMXRT555SFFOC" if SOC_PART_NUMBER_MIMXRT555SFFOC
|
||||
default "MIMXRT595SFFOC" if SOC_PART_NUMBER_MIMXRT595SFFOC
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2022, NXP
|
||||
# Copyright 2022,2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
@@ -8,6 +8,8 @@ zephyr_compile_definitions(FSL_SDK_DRIVER_QUICK_ACCESS_ENABLE)
|
||||
|
||||
zephyr_compile_definitions_ifdef(CONFIG_USB_DEVICE_DRIVER USB_STACK_USE_DEDICATED_RAM=1)
|
||||
|
||||
zephyr_include_directories(.)
|
||||
|
||||
zephyr_sources(
|
||||
soc.c
|
||||
flash_clock_setup.c
|
||||
@@ -22,12 +24,6 @@ zephyr_library_include_directories(
|
||||
${ZEPHYR_BASE}/arch/${ARCH}/include
|
||||
)
|
||||
|
||||
zephyr_linker_sources_ifdef(CONFIG_NXP_IMX_RT5XX_BOOT_HEADER
|
||||
ROM_START SORT_KEY 0 boot_header.ld)
|
||||
|
||||
zephyr_linker_sources_ifdef(CONFIG_USB_DEVICE_DRIVER
|
||||
SECTIONS usb.ld)
|
||||
|
||||
zephyr_code_relocate(FILES flash_clock_setup.c LOCATION RAM)
|
||||
|
||||
set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/linker.ld CACHE INTERNAL "")
|
||||
@@ -90,7 +90,7 @@ extern uint32_t SystemCoreClock;
|
||||
/* Main stack pointer */
|
||||
extern char z_main_stack[];
|
||||
|
||||
#ifdef CONFIG_NXP_IMX_RT5XX_BOOT_HEADER
|
||||
#ifdef CONFIG_NXP_IMXRT_BOOT_HEADER
|
||||
extern char _flash_used[];
|
||||
|
||||
extern void z_arm_reset(void);
|
||||
@@ -133,7 +133,7 @@ __imx_boot_ivt_section void (* const image_vector_table[])(void) = {
|
||||
z_arm_exc_spurious,
|
||||
#endif
|
||||
};
|
||||
#endif /* CONFIG_NXP_IMX_RT5XX_BOOT_HEADER */
|
||||
#endif /* CONFIG_NXP_IMXRT_BOOT_HEADER */
|
||||
|
||||
#if CONFIG_USB_DC_NXP_LPCIP3511
|
||||
|
||||
@@ -197,7 +197,7 @@ static void usb_device_clock_init(void)
|
||||
|
||||
void z_arm_platform_init(void)
|
||||
{
|
||||
#ifndef CONFIG_NXP_IMX_RT5XX_BOOT_HEADER
|
||||
#ifndef CONFIG_NXP_IMXRT_BOOT_HEADER
|
||||
/*
|
||||
* If boot did not proceed using a boot header, we should not assume
|
||||
* the core is in reset state. Disable the MPU and correctly
|
||||
@@ -211,7 +211,7 @@ void z_arm_platform_init(void)
|
||||
MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk;
|
||||
/* Set stack pointer */
|
||||
__set_MSP((uint32_t)(z_main_stack + CONFIG_MAIN_STACK_SIZE));
|
||||
#endif /* !CONFIG_NXP_IMX_RT5XX_BOOT_HEADER */
|
||||
#endif /* !CONFIG_NXP_IMXRT_BOOT_HEADER */
|
||||
/* This is provided by the SDK */
|
||||
SystemInit();
|
||||
}
|
||||
@@ -1,18 +1,14 @@
|
||||
# NXP i.MX8/RT SoC family CMake file
|
||||
# NXP RT SoC family CMake file
|
||||
#
|
||||
# Copyright (c) 2021 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if(CONFIG_SOC_NXP_RT595)
|
||||
zephyr_compile_definitions(CPU_MIMXRT595SFFOC_dsp)
|
||||
endif()
|
||||
zephyr_compile_definitions(CPU_MIMXRT595SFFOC_dsp)
|
||||
|
||||
add_subdirectory(common)
|
||||
zephyr_include_directories(${SOC_SERIES}/include)
|
||||
zephyr_include_directories(include)
|
||||
|
||||
# west sign
|
||||
|
||||
# See detailed comments in soc/soc_legacy/xtensa/intel_adsp/common/CMakeLists.txt
|
||||
add_custom_target(zephyr.ri ALL
|
||||
DEPENDS ${CMAKE_BINARY_DIR}/zephyr/zephyr.ri
|
||||
)
|
||||
@@ -24,4 +20,4 @@ add_custom_command(
|
||||
DEPENDS ${CMAKE_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}
|
||||
)
|
||||
|
||||
set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/${SOC_SERIES}/linker.ld CACHE INTERNAL "")
|
||||
set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/linker.ld CACHE INTERNAL "")
|
||||
@@ -23,6 +23,12 @@ family:
|
||||
cpuclusters:
|
||||
- name: cm7
|
||||
- name: cm4
|
||||
- name: imxrt5xx
|
||||
socs:
|
||||
- name: mimxrt595s
|
||||
cpuclusters:
|
||||
- name: cm33
|
||||
- name: f1
|
||||
- name: imxrt6xx
|
||||
socs:
|
||||
- name: mimxrt685s
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
# NXP MIMXRT5XX platform configuration options
|
||||
|
||||
# Copyright (c) 2022, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_MIMXRT595S_CM33
|
||||
|
||||
config SOC
|
||||
default "mimxrt595s_cm33"
|
||||
|
||||
if MCUX_OS_TIMER
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 1000000
|
||||
|
||||
endif # MCUX_OS_TIMER
|
||||
|
||||
if CORTEX_M_SYSTICK
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 250105263
|
||||
|
||||
endif # CORTEX_M_SYSTICK
|
||||
|
||||
choice USB_MCUX_CONTROLLER_TYPE
|
||||
default USB_DC_NXP_LPCIP3511
|
||||
endchoice
|
||||
|
||||
# Enable the MEMC FlexSPI driver when using device power
|
||||
# management so we can reconfigure the FlexSPI pins to
|
||||
# save power. The MEMC FlexSPI driver is enabled when we
|
||||
# enable the Flash subsystem, however we would like to
|
||||
# reconfigure the FlexSPI pins even when the Flash driver
|
||||
# is disabled, hence MEMC is selected when PM_DEVICE
|
||||
# is turned on.
|
||||
config MEMC
|
||||
default y if PM_DEVICE
|
||||
select MEMC_MCUX_FLEXSPI
|
||||
|
||||
endif # SOC_MIMXRT685S_CM33
|
||||
@@ -1,82 +0,0 @@
|
||||
# i.MX RT5XX series configuration options
|
||||
|
||||
# Copyright (c) 2022-2024, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_SERIES_IMX_RT5XX
|
||||
|
||||
config SOC_SERIES
|
||||
default "rt5xx"
|
||||
|
||||
config ROM_START_OFFSET
|
||||
default 0x1200 if NXP_IMX_RT5XX_BOOT_HEADER
|
||||
|
||||
# The PVT Sensor uses IRQ #75. For more details, see
|
||||
# https://www.nxp.com/design/design-center/software/embedded-software/application-software-packs/application-software-pack-dynamic-voltage-scaling-using-pvt-sensor:APP-SW-PACK-DVS-PVT-SENSOR
|
||||
config NUM_IRQS
|
||||
default 76
|
||||
|
||||
config ZTEST_NO_YIELD
|
||||
default y if (PM && ZTEST)
|
||||
|
||||
# The base address is determined from the zephyr,flash node with the following
|
||||
# precedence:
|
||||
# FlexSPI base address (if flash node is on a FlexSPI bus)
|
||||
# node reg property (used for memory regions such as SRAM)
|
||||
|
||||
# Workaround for not being able to have commas in macro arguments
|
||||
|
||||
DT_CHOSEN_Z_FLASH := zephyr,flash
|
||||
DT_COMPAT_FLEXSPI := nxp,imx-flexspi
|
||||
|
||||
# Macros to shorten Kconfig definitions
|
||||
DT_CHOSEN_FLASH_NODE := $(dt_chosen_path,$(DT_CHOSEN_Z_FLASH))
|
||||
DT_CHOSEN_FLASH_PARENT := $(dt_node_parent,$(DT_CHOSEN_FLASH_NODE))
|
||||
|
||||
config FLASH_BASE_ADDRESS
|
||||
default $(dt_node_reg_addr_hex,$(DT_CHOSEN_FLASH_PARENT),1) \
|
||||
if $(dt_node_has_compat,$(DT_CHOSEN_FLASH_PARENT),$(DT_COMPAT_FLEXSPI))
|
||||
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH))
|
||||
|
||||
# The RT5xx has no internal flash. If the flash node has a size property,
|
||||
# use that over the reg property. This is used for the external flash
|
||||
# present on the board. Otherwise, fallback to the reg property
|
||||
config FLASH_SIZE
|
||||
default $(dt_node_int_prop_int,$(DT_CHOSEN_FLASH_NODE),size,Kb) \
|
||||
if $(dt_node_has_prop,$(DT_CHOSEN_FLASH_NODE),size)
|
||||
default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_FLASH),0,K)
|
||||
|
||||
if FLASH_MCUX_FLEXSPI_XIP
|
||||
|
||||
# Avoid RWW hazards by defaulting logging to disabled
|
||||
choice FLASH_LOG_LEVEL_CHOICE
|
||||
default FLASH_LOG_LEVEL_OFF
|
||||
endchoice
|
||||
|
||||
choice MEMC_LOG_LEVEL_CHOICE
|
||||
default MEMC_LOG_LEVEL_OFF
|
||||
endchoice
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# MBEDTLS is larger but much faster than TinyCrypt so choose wisely
|
||||
#
|
||||
config MBEDTLS
|
||||
#config TINYCRYPT
|
||||
default y if CSPRNG_ENABLED
|
||||
depends on ENTROPY_GENERATOR
|
||||
|
||||
if MBEDTLS
|
||||
#
|
||||
# MBEDTLS CTR_DRBG code path needs extra stack space for initialization than
|
||||
# what the ztest_thread_stack defaults to.
|
||||
#
|
||||
config TEST_EXTRA_STACK_SIZE
|
||||
int
|
||||
default 1024
|
||||
endif # MBEDTLS
|
||||
|
||||
source "soc/soc_legacy/arm/nxp_imx/rt5xx/Kconfig.defconfig.mimxrt5*"
|
||||
|
||||
endif # SOC_SERIES_MIMXRT5XX
|
||||
@@ -1,16 +0,0 @@
|
||||
# i.MX RT5XX Series
|
||||
|
||||
# Copyright (c) 2022, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SOC_SERIES_IMX_RT5XX
|
||||
bool "i.MX RT5XX Series Family MCU"
|
||||
select ARM
|
||||
select CPU_CORTEX_M33
|
||||
select CPU_CORTEX_M_HAS_DWT
|
||||
select SOC_FAMILY_IMX
|
||||
select CLOCK_CONTROL
|
||||
select HAS_PM
|
||||
select HAS_POWEROFF
|
||||
help
|
||||
Enable support for i.MX RT5XX Series MCU series
|
||||
@@ -1,156 +0,0 @@
|
||||
# i.MX RT5XX Series
|
||||
|
||||
# Copyright 2022-2023, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
choice
|
||||
prompt "i.MX RT5XX Series MCU Selection"
|
||||
depends on SOC_SERIES_IMX_RT5XX
|
||||
|
||||
config SOC_MIMXRT595S_CM33
|
||||
bool "SOC_MIMXRT595S M33"
|
||||
select CPU_HAS_ARM_SAU
|
||||
select CPU_HAS_ARM_MPU
|
||||
select CPU_HAS_FPU
|
||||
select PLATFORM_SPECIFIC_INIT
|
||||
select ARMV8_M_DSP
|
||||
select ARM_TRUSTZONE_M
|
||||
select CPU_CORTEX_M_HAS_SYSTICK
|
||||
select HAS_MCUX
|
||||
select HAS_MCUX_SYSCON
|
||||
select HAS_MCUX_FLEXCOMM
|
||||
select HAS_MCUX_FLEXSPI
|
||||
select HAS_MCUX_CACHE
|
||||
select HAS_MCUX_LPC_DMA
|
||||
select HAS_MCUX_LPADC
|
||||
select HAS_MCUX_OS_TIMER
|
||||
select HAS_MCUX_LPC_RTC
|
||||
select HAS_MCUX_TRNG
|
||||
select HAS_MCUX_SCTIMER
|
||||
select HAS_MCUX_USDHC1
|
||||
select HAS_MCUX_USDHC2
|
||||
select HAS_MCUX_USB_LPCIP3511
|
||||
select HAS_MCUX_CTIMER
|
||||
endchoice
|
||||
|
||||
if SOC_SERIES_IMX_RT5XX
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT533SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT555SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT595SFFOC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT533SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT555SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_MIMXRT595SFAWC
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_IMX_RT5XX
|
||||
string
|
||||
default "MIMXRT533SFAWC" if SOC_PART_NUMBER_MIMXRT533SFAWC
|
||||
default "MIMXRT555SFAWC" if SOC_PART_NUMBER_MIMXRT555SFAWC
|
||||
default "MIMXRT595SFAWC" if SOC_PART_NUMBER_MIMXRT595SFAWC
|
||||
default "MIMXRT533SFFOC" if SOC_PART_NUMBER_MIMXRT533SFFOC
|
||||
default "MIMXRT555SFFOC" if SOC_PART_NUMBER_MIMXRT555SFFOC
|
||||
default "MIMXRT595SFFOC" if SOC_PART_NUMBER_MIMXRT595SFFOC
|
||||
|
||||
help
|
||||
This string holds the full part number of the SoC. It is a hidden
|
||||
option that you should not set directly. The part number selection
|
||||
choice defines the default value for this string.
|
||||
|
||||
menuconfig NXP_IMX_RT5XX_BOOT_HEADER
|
||||
bool "The boot header"
|
||||
depends on !BOOTLOADER_MCUBOOT
|
||||
help
|
||||
Enable data structures required by the boot ROM to boot the
|
||||
application from an external flash device.
|
||||
|
||||
if NXP_IMX_RT5XX_BOOT_HEADER
|
||||
|
||||
choice BOOT_DEVICE
|
||||
prompt "Boot device selection"
|
||||
default BOOT_FLEXSPI_NOR
|
||||
|
||||
config BOOT_FLEXSPI_NOR
|
||||
bool "FlexSPI serial NOR"
|
||||
|
||||
endchoice
|
||||
|
||||
config FLASH_CONFIG_OFFSET
|
||||
hex "Flash config data offset"
|
||||
default 0x400
|
||||
help
|
||||
The flash config offset provides the boot ROM with the on-board
|
||||
flash type and parameters. The boot ROM requires a fixed flash config
|
||||
offset for FlexSPI device.
|
||||
|
||||
config IMAGE_VECTOR_TABLE_OFFSET
|
||||
hex "Image vector table offset"
|
||||
default 0x1000
|
||||
help
|
||||
The Image Vector Table (IVT) provides the boot ROM with pointers to
|
||||
the application entry point and device configuration data. The boot
|
||||
ROM requires a fixed IVT offset for each type of boot device.
|
||||
|
||||
config NXP_IMX_RT_ROM_RAMLOADER
|
||||
depends on !FLASH_MCUX_FLEXSPI_XIP
|
||||
# Required so that debugger will load image to correct offset
|
||||
select BUILD_OUTPUT_HEX
|
||||
bool "Create output image that IMX RT ROM can load from FlexSPI to ram"
|
||||
help
|
||||
Builds an output image that the IMX RT BootROM can load from the
|
||||
FlexSPI boot device into RAM region. The image will be loaded
|
||||
from FLEXSPI0 into the region specified by `zephyr,flash` node.
|
||||
|
||||
# Setup LMA adjustment if using the RAMLOADER feature of ROM
|
||||
FLASH_CHOSEN := zephyr,flash
|
||||
FLASH_BASE := $(dt_chosen_reg_addr_hex,$(FLASH_CHOSEN))
|
||||
FLEXSPI_BASE := $(dt_node_reg_addr_hex,/soc/spi@134000,1)
|
||||
config BUILD_OUTPUT_ADJUST_LMA
|
||||
default "$(FLEXSPI_BASE) - $(FLASH_BASE)" if NXP_IMX_RT_ROM_RAMLOADER
|
||||
|
||||
endif # NXP_IMX_RT5XX_BOOT_HEADER
|
||||
|
||||
|
||||
|
||||
config IMXRT5XX_CODE_CACHE
|
||||
bool "Code cache"
|
||||
default y
|
||||
help
|
||||
Enable code cache for FlexSPI region at boot. If this Kconfig is
|
||||
cleared, the CACHE64 controller will be disabled during SOC init
|
||||
|
||||
choice FLEXCOMM0_CLK_SRC
|
||||
prompt "Clock source for Flexcomm0"
|
||||
default FLEXCOMM0_CLK_SRC_FRG
|
||||
|
||||
config FLEXCOMM0_CLK_SRC_FRG
|
||||
bool "FRG is source of Flexcomm0 clock"
|
||||
|
||||
config FLEXCOMM0_CLK_SRC_FRO
|
||||
bool "FRO_DIV4 is source of Flexcomm0 clock"
|
||||
|
||||
endchoice
|
||||
|
||||
choice MIPI_DPHY_CLK_SRC
|
||||
prompt "Clock source for MIPI DPHY"
|
||||
default MIPI_DPHY_CLK_SRC_AUX1_PLL
|
||||
|
||||
config MIPI_DPHY_CLK_SRC_AUX1_PLL
|
||||
bool "AUX1_PLL is source of MIPI_DPHY clock"
|
||||
|
||||
config MIPI_DPHY_CLK_SRC_FRO
|
||||
bool "FRO 192/96M is source of MIPI_DPHY clock"
|
||||
|
||||
endchoice
|
||||
|
||||
endif # SOC_SERIES_IMX_RT5XX
|
||||
@@ -1,10 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
. = CONFIG_FLASH_CONFIG_OFFSET;
|
||||
KEEP(*(.flash_conf))
|
||||
. = CONFIG_IMAGE_VECTOR_TABLE_OFFSET;
|
||||
KEEP(*(.boot_hdr.ivt))
|
||||
@@ -1,20 +0,0 @@
|
||||
# NXP i.MX8 SoC family configuration options
|
||||
#
|
||||
# Copyright (c) 2021 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SOC_FAMILY_NXP_ADSP
|
||||
bool
|
||||
select ARCH_HAS_COHERENCE
|
||||
select CPU_HAS_DCACHE
|
||||
|
||||
if SOC_FAMILY_NXP_ADSP
|
||||
|
||||
config SOC_FAMILY
|
||||
string
|
||||
default "nxp_adsp"
|
||||
|
||||
# Select SoC Part No. and configuration options
|
||||
source "soc/soc_legacy/xtensa/nxp_adsp/*/Kconfig.soc"
|
||||
|
||||
endif # SOC_FAMILY_NXP_ADSP
|
||||
@@ -1,33 +0,0 @@
|
||||
# NXP i.MX8/RT SoC family default configuration options
|
||||
#
|
||||
# Copyright (c) 2021 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_FAMILY_NXP_ADSP
|
||||
|
||||
source "soc/soc_legacy/xtensa/nxp_adsp/*/Kconfig.defconfig.series"
|
||||
|
||||
config CACHE_MANAGEMENT
|
||||
default y
|
||||
|
||||
config SMP
|
||||
default n
|
||||
|
||||
config XTENSA_TIMER
|
||||
default y
|
||||
|
||||
config KERNEL_ENTRY
|
||||
default "__start"
|
||||
|
||||
config MULTI_LEVEL_INTERRUPTS
|
||||
default n
|
||||
|
||||
config 2ND_LEVEL_INTERRUPTS
|
||||
default n
|
||||
|
||||
# To prevent test uses TEST_LOGGING_MINIMAL
|
||||
config TEST_LOGGING_DEFAULTS
|
||||
default n
|
||||
depends on TEST
|
||||
|
||||
endif
|
||||
@@ -1,6 +0,0 @@
|
||||
# NXP i.MX8 SoC series selection
|
||||
#
|
||||
# Copyright (c) 2021 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
source "soc/soc_legacy/xtensa/nxp_adsp/*/Kconfig.series"
|
||||
@@ -1,6 +0,0 @@
|
||||
# NXP SoC family CMake file
|
||||
#
|
||||
# Copyright (c) 2021 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_include_directories(include)
|
||||
@@ -1,46 +0,0 @@
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_SERIES_NXP_RT5XX
|
||||
|
||||
config SOC_SERIES
|
||||
string
|
||||
default "rt5xx"
|
||||
|
||||
config SOC_TOOLCHAIN_NAME
|
||||
string
|
||||
default "nxp_rt500_adsp"
|
||||
|
||||
config SOC
|
||||
string
|
||||
default "nxp_rt5xx"
|
||||
|
||||
config SOC_PART_NUMBER
|
||||
string
|
||||
default "MIMXRT595SFFOC_dsp" if SOC_NXP_RT595
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default 198000000
|
||||
|
||||
config XTENSA_CCOUNT_HZ
|
||||
default SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
|
||||
config SYS_CLOCK_TICKS_PER_SEC
|
||||
default 1000
|
||||
|
||||
config DYNAMIC_INTERRUPTS
|
||||
default n
|
||||
|
||||
config CACHE
|
||||
default n
|
||||
|
||||
config DCACHE
|
||||
default n
|
||||
|
||||
config CACHE_MANAGEMENT
|
||||
default n
|
||||
|
||||
config LOG
|
||||
default n
|
||||
|
||||
endif # SOC_SERIES_NXP_RT5XX
|
||||
@@ -1,12 +0,0 @@
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SOC_SERIES_NXP_RT5XX
|
||||
bool "NXP RT5xx Series"
|
||||
select SOC_FAMILY_NXP_ADSP
|
||||
select XTENSA
|
||||
select XTENSA_HAL if ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" && "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xt-clang")
|
||||
select XTENSA_RESET_VECTOR
|
||||
select XTENSA_USE_CORE_CRT1
|
||||
help
|
||||
NXP RT5xx ADSP Series
|
||||
@@ -1,10 +0,0 @@
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
choice
|
||||
prompt "NXP RT5xx ADSP SoC Selection"
|
||||
|
||||
config SOC_NXP_RT595
|
||||
bool "NXP RT595"
|
||||
depends on SOC_SERIES_NXP_RT5XX
|
||||
endchoice
|
||||
@@ -184,7 +184,7 @@ vth __irq_vector_table _irq_vector_table[] = {
|
||||
isr0, isr1, isr2, 0,
|
||||
rtc_isr
|
||||
};
|
||||
#elif defined(CONFIG_SOC_SERIES_IMXRT6XX) || defined(CONFIG_SOC_SERIES_IMX_RT5XX) && \
|
||||
#elif defined(CONFIG_SOC_SERIES_IMXRT6XX) || defined(CONFIG_SOC_SERIES_IMXRT5XX) && \
|
||||
defined(CONFIG_MCUX_OS_TIMER)
|
||||
/* MXRT685 employs a OS Event timer to implement the Kernel system
|
||||
* timer, instead of the ARM Cortex-M SysTick. Therefore, a pointer to
|
||||
|
||||
@@ -8,7 +8,7 @@ tests:
|
||||
filter: >
|
||||
not (CONFIG_WDT_SAM or dt_compat_enabled("st,stm32-window-watchdog")
|
||||
or dt_compat_enabled("st,stm32-watchdog") or CONFIG_SOC_FAMILY_LPC or
|
||||
CONFIG_SOC_SERIES_IMXRT6XX or CONFIG_SOC_SERIES_IMX_RT5XX or
|
||||
CONFIG_SOC_SERIES_IMXRT6XX or CONFIG_SOC_SERIES_IMXRT5XX or
|
||||
CONFIG_SOC_FAMILY_GD_GD32 or SOC_SERIES_GD32VF103)
|
||||
platform_exclude:
|
||||
- mec15xxevb_assy6853
|
||||
|
||||
Reference in New Issue
Block a user