Skip to content

Conversation

TomasGalbickaNXP
Copy link
Contributor

@TomasGalbickaNXP TomasGalbickaNXP commented Aug 12, 2025

This PR is providing multicore support for RT700.

It enables to load and boot CM33 CPU1 from CM33 CPU0 core.

And adds support for samples:

  • drivers/mbox
  • drivers/mbox_data
  • subsys/ipc/openamp
  • subsys/ipc/ipc_service/static_vrings

@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch from af59d71 to e6afe71 Compare August 12, 2025 14:26
@kartben kartben assigned dleach02 and mmahadevan108 and unassigned kartben Aug 12, 2025
@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch 4 times, most recently from 7310740 to 11eb7c3 Compare August 14, 2025 06:11
Copy link

@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch from 11eb7c3 to 6637ef5 Compare September 15, 2025 14:31
@zephyrbot zephyrbot requested a review from dcpleung September 15, 2025 14:33
@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch 2 times, most recently from 629e748 to 7b80a76 Compare September 15, 2025 14:46
@decsny
Copy link
Member

decsny commented Sep 18, 2025

@TomasGalbickaNXP there are conflicts.

@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch from 7b80a76 to 5e3cbfe Compare September 18, 2025 16:48
@decsny
Copy link
Member

decsny commented Sep 18, 2025

@lucien-nxp @Raymond0225 can you help reviewing this?

@TomasGalbickaNXP
Copy link
Contributor Author

There is a failing sample: samples/drivers/uart/async_api/ but it also fails on main, as RT700 does not have created uart with DMA I think. Not sure how to go around this...

@decsny
Copy link
Member

decsny commented Sep 19, 2025

There is a failing sample: samples/drivers/uart/async_api/ but it also fails on main, as RT700 does not have created uart with DMA I think. Not sure how to go around this...

Is there already an issue reported?

@TomasGalbickaNXP
Copy link
Contributor Author

Issue: #96158

This commit moves common DTS entries into common file
dts/arm/nxp/nxp_rt7xx_common.dtsi.
This way there is not duplication between cpu0 and cpu1.

Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
This commit adds multicore support to copy CM33 CPU1 image
from flash to RAM where it will boot from.

Also added NXP_IMXRT_BOOT_HEADER=y for CPU0 so it can be booted
from FlexSPI Flash.

Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
This commit adds multicore support to boot secondary CM33 CPU1 core.
 - Adds Flash partition for CM33 CPU0
 - Boots secondary core

Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
This commit adds custom MPU regions for RT700 CM33 CPU0 to
define non-cachable region for SRAM.

Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
@TomasGalbickaNXP TomasGalbickaNXP force-pushed the feature/rt700-add-multicore-support-cm33-cores branch from 5e3cbfe to 68238d6 Compare September 22, 2025 13:59
Copy link

@dleach02
Copy link
Member

dleach02 commented Sep 25, 2025

LGTM ... @hakehuang can you run a regression against the RT700 platform for us and +1 if all is good

@hakehuang
Copy link
Contributor

hakehuang commented Sep 25, 2025

LGTM ... @hakehuang can you run a regression against the RT700 platform for us and +1 if all is good

kick mbox and ipc testing for RT700, all cases failed see below, I see the log to you via email. @TomasGalbickaNXP
Thanks for following up, the root cause is it does not work with linkserver well. need linkserver team feedback a fix on this.

if I reset the board manually, the test cases pass.

samples/drivers/mbox/sample.drivers.mbox v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/drivers/mbox
samples/drivers/mbox_data/sample.drivers.mbox_data.real_hw v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/drivers/mbox_data
samples/subsys/ipc/ipc_service/static_vrings/sample.ipc.static_vrings v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/subsys/ipc/ipc_service/static_vrings
samples/subsys/ipc/openamp/sample.ipc.openamp v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/subsys/ipc/openamp
samples/drivers/mbox/sample.drivers.mbox v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/drivers/mbox
samples/drivers/mbox_data/sample.drivers.mbox_data.real_hw v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/drivers/mbox_data
samples/subsys/ipc/ipc_service/static_vrings/sample.ipc.static_vrings v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/subsys/ipc/ipc_service/static_vrings
samples/subsys/ipc/openamp/sample.ipc.openamp v4.2.0-4126-g68238d6377d2 failed Unknown Error mimxrt700_evk/mimxrt798s/cm33_cpu0 samples/subsys/ipc/openamp

@kartben kartben merged commit 4a6a969 into zephyrproject-rtos:main Sep 25, 2025
28 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.

8 participants