Skip to content

Develop/imx943 netc #93399

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 38 commits into
base: main
Choose a base branch
from

Conversation

JiafeiPan
Copy link
Contributor

JiafeiPan added 30 commits July 3, 2025 18:21
GIC redistributor on Some platform are connected to a non-coherent
downstream interconnect, it need to use Non-cahable and Non-shareable
access atttributes to access external memory. And also flush the
data cache after CPU update related memory.

Signed-off-by: Jiafei Pan <[email protected]>
Add DMA noncoherent support on GICv3 ITS driver.

Signed-off-by: Jiafei Pan <[email protected]>
For RDbase used by its command, When GITS_TYPER.PTA = 1, physicall address
is used, the RDbase field consist of bits[51:16] of the address, so need
to left shift the address by 16 bits. But when GITS_TYPER.PTA = 0, PE
number is used, no need to shit anymore.

Signed-off-by: Jiafei Pan <[email protected]>
GIC v3 ITS is initialized in pre-kernel stage in which sleep function
can't work yet, so use busy delay in pre-kernel stage and use sleep
delay in post-kernel stage.

Signed-off-by: Jiafei Pan <[email protected]>
Enlarge the memory size to 10M bytes as it is not enough if run some
networking application.

Signed-off-by: Jiafei Pan <[email protected]>
Added dts node for GIC v3 ITS.

Signed-off-by: Jiafei Pan <[email protected]>
In case of ITS is enabled, need to include LPI in the total number
of irq.

Signed-off-by: Jiafei Pan <[email protected]>
GIC redistribute on i.MX 95 is DMA noncoherent, so enable
CONFIG_GIC_V3_RDIST_DMA_NONCOHERENT.

Signed-off-by: Jiafei Pan <[email protected]>
GIC ITS depends on kernel heap, so move GIC initialize to be behind of
heap which initialization priority is CONFIG_KERNEL_INIT_PRIORITY_OBJECTS
(it is 30 by default).

MU mailbox and SCMI objects depend on GIC, so set their init priority
to be same with GIC, the initialization sequence decided by the dts
dependency although they use the same init priority.

Signed-off-by: Jiafei Pan <[email protected]>
Add imx95_evk support, as hardware limication, it only has 832 LPIs.

Signed-off-by: Jiafei Pan <[email protected]>
Tmp patch to depend on hal_nxp PR 571.

Signed-off-by: Jiafei Pan <[email protected]>
It could use GIC ITS as MSI controller on Cortex-A Core, so added
GIC ITS MSI support for NETC drivers.

Signed-off-by: Jiafei Pan <[email protected]>
Add NETC block driver, it could do some block memory region MMIO mapping
and also so dome block initialization, moved some netc related
configuration form board_init() to block driver so that it could be reused
between different platforms, although some configuration is different for
different platform, but put all NETC related code in the same driver to
make it easier to be maintained.

Signed-off-by: Jiafei Pan <[email protected]>
Added MMIO memory mapping for NETC MDIO driver.

Signed-off-by: Jiafei Pan <[email protected]>
In order to support MMU mapping on Cortex-A core, added MMIO mapping
support in imx_netc_psi driver.

Signed-off-by: Jiafei Pan <[email protected]>
i.MX 95 has no NETC switch, so disable it on this platform.

Signed-off-by: Jiafei Pan <[email protected]>
As reg property is not used by the driver and there is no proper address
could be assigned to it, so remove it.

Signed-off-by: Jiafei Pan <[email protected]>
Update NETC device nodes according to NETC driver update:
1. Added NETC block control device node to handle block control
   initialization in netc block driver.
2. Added "nxp,imx-netc" compatible for netc driver.
3. Added all memory region in MMIO reg propertiy to let driver to handle
   MMIO mapping for all memory region.

Signed-off-by: Jiafei Pan <[email protected]>
Update NETC device nodes according to NETC driver update:
1. Added "nxp,imx-netc" compatible.
2. Added all memory region in MMIO reg propertiy to let driver to handle
   MMIO mapping for all memory region.

Signed-off-by: Jiafei Pan <[email protected]>
Update NETC device nodes according to NETC driver update:
1. Added "nxp,imx-netc" compatible for netc driver.
2. Added all memory region in MMIO reg propertiy to let driver to handle
   MMIO mapping for all memory region.

Signed-off-by: Jiafei Pan <[email protected]>
Added NETC dts nodes in imx95_evk A55 platform.

Signed-off-by: Jiafei Pan <[email protected]>
Added SCMI power dts node.

Signed-off-by: Jiafei Pan <[email protected]>
Power up NETCMIX and configure netc clock in soc_init().

Signed-off-by: Jiafei Pan <[email protected]>
Removed overlay and enabled these nodes in board dts directly as it is
not be valid unless CONFIG_NETWORKING is enabled.

Signed-off-by: Jiafei Pan <[email protected]>
Added NETC PSI0 support on the i.MX 95 EVK board for A55 platform.

Signed-off-by: Jiafei Pan <[email protected]>
The issue is caused by default stack size 1500 bytes of NET_RX_STACK_SIZE
is to small for ARM64 platform, then the stack of net_rx thread is
overflow and break the net_mgmt thread's stack, as a result net_mgmt thread
is crashed.

So this patch will enlarge all the stack size of net stack threads.

Signed-off-by: Jiafei Pan <[email protected]>
Add i.MX 95 EVK A55 support for zperf sample.

Signed-off-by: Jiafei Pan <[email protected]>
Added dts node for GIC v3 ITS, enabled LPI interrupts, and enabled
GIC ITS driver on the SoC.

Signed-off-by: Jiafei Pan <[email protected]>
Enlarge the memory size to 10M bytes as it is not enough if run some
networking application.

Signed-off-by: Jiafei Pan <[email protected]>
GIC ITS depends on kernel heap, so move GIC initialize to be behind of
heap which initialization priority is CONFIG_KERNEL_INIT_PRIORITY_OBJECTS
which is 30 by default.

MU mailbox and SCMI objects depend on GIC, so set their init priority
to be same with GIC, the initialization sequence decided by the dts
dependency although they use the same init priority.

Signed-off-by: Jiafei Pan <[email protected]>
Add imx943_evk support, as hardware limication, it only has 832 LPIs.

Signed-off-by: Jiafei Pan <[email protected]>
Add NETCMIX block initialization for i.MX 943.

Signed-off-by: Jiafei Pan <[email protected]>
Added SCMI power dts node.

Signed-off-by: Jiafei Pan <[email protected]>
Power up NETCMIX and configure netc clock in soc_init().

Signed-off-by: Jiafei Pan <[email protected]>
Added NETC related device nodes in SoC dts.

Signed-off-by: Jiafei Pan <[email protected]>
Enabled NETC support on i.MX 943 A55 platform.

Signed-off-by: Jiafei Pan <[email protected]>
Configure heap memory size to be enough for GIC ITS.

Signed-off-by: Jiafei Pan <[email protected]>
Moved armv8-a cache driver from mcux-sdk to mcux-sdk-ng.

Signed-off-by: Jiafei Pan <[email protected]>
Copy link

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

Name Old Revision New Revision Diff
hal_nxp zephyrproject-rtos/hal_nxp@7a52cbb (master) zephyrproject-rtos/hal_nxp#571 zephyrproject-rtos/hal_nxp#571/files

DNM label due to: 1 project with PR revision

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

@github-actions github-actions bot added manifest manifest-hal_nxp DNM (manifest) This PR should not be merged (controlled by action-manifest) labels Jul 21, 2025
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DNM (manifest) This PR should not be merged (controlled by action-manifest) manifest manifest-hal_nxp
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant