Skip to content

Conversation

@iuliana-prodan
Copy link
Contributor

The i.MX RT700 has a Compute Subsystem which includes a primary ARM Cortex-M33 running at 325 MHz and Cadence Tensilica HiFi 4 DSP.
It also features an ultra-low power Sense Subsystem which includes a second ARM Cortex-M33 and Cadence Tensilica HiFi 1 DSP.

This pull request adds the soc and board support for the two HiFi cores.

@zephyrbot
Copy link

zephyrbot commented Oct 16, 2024

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
hal_xtensa zephyrproject-rtos/hal_xtensa@baa56aa zephyrproject-rtos/hal_xtensa@b38620c zephyrproject-rtos/[email protected]

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@zephyrbot zephyrbot added manifest manifest-hal_xtensa manifest-hal_nxp DNM This PR should not be merged (Do Not Merge) labels Oct 16, 2024
@iuliana-prodan iuliana-prodan force-pushed the rt700_dsp_support branch 5 times, most recently from 9f51a11 to 2e37183 Compare October 18, 2024 14:51
dcpleung
dcpleung previously approved these changes Oct 18, 2024
@iuliana-prodan
Copy link
Contributor Author

The twister tests are failing because the CI is using zephyr_sdk 0.16.8 which doesn't include the hifi1 and hifi4 toolchain for imxrt700.

Configuration saved to '/__w/zephyr/zephyr/twister-out/mimxrt700_evk_mimxrt798s_hifi1/samples/kernel/condition_variables/simple/sample.kernel.cond_var.simple/zephyr/.config'
Kconfig header saved to '/__w/zephyr/zephyr/twister-out/mimxrt700_evk_mimxrt798s_hifi1/samples/kernel/condition_variables/simple/sample.kernel.cond_var.simple/zephyr/include/generated/zephyr/autoconf.h'
CMake Error at /__w/zephyr/zephyr/cmake/compiler/gcc/target.cmake:12 (message):
  C compiler
  /opt/toolchains/zephyr-sdk-0.16.8/xtensa-nxp_rt700_hifi1_zephyr-elf/bin/xtensa-nxp_rt700_hifi1_zephyr-elf-gcc
  not found - Please check your toolchain installation

Locally I used zephyr-sdk-0.16.9-rc2 which had the 2 toolchain.

I see now that 0.17.0 was released.
@stephanosio when will the new toolchain be included in the CI?
Can I do the update?

@iuliana-prodan
Copy link
Contributor Author

@iuliana-prodan the RT700 HAL PR merged. Can you update this PR to move the NXP HAL SHA to the tip and then resolve the merge conflicts? We can get this ready to merge quickly after the upstream v4.1 release

Yes, I have this on my list :)
I'll do it this week!

@iuliana-prodan iuliana-prodan dismissed stale reviews from dbaluta and nordicjm via f5d3313 March 4, 2025 16:58
@zephyrbot zephyrbot removed the DNM (manifest) This PR should not be merged (controlled by action-manifest) label Mar 4, 2025
dcpleung
dcpleung previously approved these changes Mar 4, 2025
@iuliana-prodan
Copy link
Contributor Author

Changes since previous version:

  • rebase and resolve conflicts with the M33 Core 0 and Core1 support for i.MXRT700;
  • update west.yml only with commit id for Xtensa HAL (NXP hal was merged and updated in west.yml);

Comment on lines 59 to 60
config LOG
default n
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

log defaults to n anyway?


MEMORY
{
vector_reset_text :
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zephyr uses tab indents for code

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most linker script files use spaces, with only a few (such as mips) using tabs. Therefore, I’ve kept the linker scripts for hifi1 and hifi4 formatted with spaces.
If you strongly prefer tabs, I can update them, but in my opinion, this approach aligns with Zephyr’s current formatting.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems there is a mix of space and tabs in different files, will allow

Comment on lines 7 to 10
CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n
CONFIG_XTENSA_SMALL_VECTOR_TABLE_ENTRY=y
CONFIG_NXP_IMXRT_BOOT_HEADER=n
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are these not at soc level?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved them to soc (in Kconfig.defconfig) but some are with default n since they are defined with default y - see CONFIG_GEN_IRQ_VECTOR_TABLE and CONFIG_NXP_IMXRT_BOOT_HEADER

Comment on lines 39 to 40
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 325000000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why doesn't this come from a dts property?


MEMORY
{
vector_reset_text :
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

Comment on lines 7 to 10
CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n
CONFIG_XTENSA_SMALL_VECTOR_TABLE_ENTRY=y
CONFIG_NXP_IMXRT_BOOT_HEADER=n
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as abpve

Comment on lines 147 to 152
.. code-block:: shell
$ west build -b mimxrt700_evk/mimxrt798s/hifi1 samples/hello_world
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is a

      .. zephyr-app-commands::
         :tool: west

for this


.. code-block:: shell
$ west build -b mimxrt700_evk/mimxrt798s/hifi4 samples/hello_world
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

Update Xtensa hal to support NXP i.MXRT700 DSP cores.

Signed-off-by: Iuliana Prodan <[email protected]>
The i.MX RT700 has a compute subsystem which includes
a primary ARM Cortex-M33 running at 325 MHz and
Cadence Tensilica HiFi4 DSP.

Here, we add support for the HiFi4 core.

Signed-off-by: Iuliana Prodan <[email protected]>
Add a basic device tree for the HiFi4 DSP from NXP i.MXRT700.

Signed-off-by: Iuliana Prodan <[email protected]>
Add board support for the HiFi4 DSP core from NXP i.MXRT700.

Signed-off-by: Iuliana Prodan <[email protected]>
The i.MX RT700 has an ultra-low power Sense Subsystem
which includes an ARM Cortex-M33 and
Cadence Tensilica HiFi 1 DSP.

Here, we add support for the HiFi1 core.

Signed-off-by: Iuliana Prodan <[email protected]>
Add a basic device tree for the HiFi1 DSP from NXP i.MXRT700.

Signed-off-by: Iuliana Prodan <[email protected]>
Add board support for the HiFi1 DSP core from NXP i.MXRT700.

Signed-off-by: Iuliana Prodan <[email protected]>
@iuliana-prodan iuliana-prodan force-pushed the rt700_dsp_support branch 2 times, most recently from f703885 to df62609 Compare March 6, 2025 10:03
@iuliana-prodan iuliana-prodan requested a review from nordicjm March 6, 2025 11:05
Add documentation for the two HiFi1 and HiFi4 DSP cores from i.MXRT700.

Signed-off-by: Iuliana Prodan <[email protected]>
@iuliana-prodan
Copy link
Contributor Author

@nordicjm Thanks for reviewing.
I've resolved all you comments, except this

@dcpleung dcpleung removed the DNM This PR should not be merged (Do Not Merge) label Mar 7, 2025
@dcpleung
Copy link
Member

dcpleung commented Mar 7, 2025

Removing the DNM tag since the Zephyr bot tagged it using an old tag.

@carlescufi carlescufi merged commit e4ccfa3 into zephyrproject-rtos:main Mar 7, 2025
25 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants