-
Notifications
You must be signed in to change notification settings - Fork 7.6k
add NETC support on imx95 A55 #92585
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
Open
JiafeiPan
wants to merge
27
commits into
zephyrproject-rtos:main
Choose a base branch
from
nxp-upstream:develop/imx95-netc
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
add NETC support on imx95 A55 #92585
JiafeiPan
wants to merge
27
commits into
zephyrproject-rtos:main
from
nxp-upstream:develop/imx95-netc
+871
−117
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The following west manifest projects have changed revision in this Pull Request:
⛔ DNM label due to: 1 project with PR revision Note: This message is automatically posted and updated by the Manifest GitHub Action. |
58bf988
to
9816039
Compare
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 <Jiafei.Pan@nxp.com>
In case of ITS is enabled, need to include LPI in the total number of irq. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
GIC redistribute on i.MX 95 is DMA noncoherent, so enable CONFIG_GIC_V3_RDIST_DMA_NONCOHERENT. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
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 <Jiafei.Pan@nxp.com>
Add imx95_evk support, as hardware limication, it only has 832 LPIs. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Tmp patch to depend on hal_nxp PR 571. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
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 <Jiafei.Pan@nxp.com>
f3a0a8d
to
26c8fa8
Compare
yangbolu1991
reviewed
Jul 4, 2025
26c8fa8
to
8f0c4ef
Compare
v2:
|
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 <Jiafei.Pan@nxp.com>
Added MMIO memory mapping for NETC MDIO driver. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Added MMIO memory mapping support in nxim_imx_netc driver as need to do MMU mapping for Cortex-A Core, but the update is also feasible for Cortex-M Core. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
In order to support MMU mapping on Cortex-A core, added MMIO mapping support in imx_netc_psi driver. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
i.MX 95 has no NETC switch, so disable it on this platform. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
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 to handle MMIO mapping in the driver. 3. Added all memory region in MMIO reg propertiy to let driver to handle MMIO mapping for all memory region. 4. Move MMIO device node out of netc device node to decouple the device initialization priority, so that MMIO could be initialized before netc driver initialization. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Update NETC device nodes according to NETC driver update: 1. Added "nxp,imx-netc" compatible for netc driver to handle MMIO mapping in the driver. 2. Added all memory region in MMIO reg propertiy to let driver to handle MMIO mapping for all memory region. 3. Move MMIO device node out of netc device node to decouple the device initialization priority, so that MMIO could be initialized before netc driver initialization. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Update NETC device nodes according to NETC driver update: 1. Added "nxp,imx-netc" compatible for netc driver to handle MMIO mapping in the driver. 2. Added all memory region in MMIO reg propertiy to let driver to handle MMIO mapping for all memory region. 3. Move MMIO device node out of netc device node to decouple the device initialization priority, so that MMIO could be initialized before netc driver initialization. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Added NETC dts nodes in imx95_evk A55 platform. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Added SCMI power dts node. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Power up NETCMIX and configure netc clock in soc_init(). Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
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 <Jiafei.Pan@nxp.com>
8f0c4ef
to
d6c9cda
Compare
v3: enlarge networking stack size to avoid net_mgmt thread crash. |
|
Added NETC PSI0 support on the i.MX 95 EVK board for A55 platform. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
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 <Jiafei.Pan@nxp.com>
Add i.MX 95 EVK A55 support for zperf sample. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
yangbolu1991
approved these changes
Jul 10, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area: ARM64
ARM (64-bit) Architecture
area: Ethernet
area: Interrupt Controller
area: MDIO
DNM (manifest)
This PR should not be merged (controlled by action-manifest)
manifest
manifest-hal_nxp
platform: ARM
Arm Limited
platform: NXP Drivers
NXP Semiconductors, drivers
platform: NXP MPU
platform: NXP
NXP
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is to enable NETC support on i.MX 95 A55.
Actually it includes two main update, one is to enable GIC ITS on A55, the other one is to enable NETC support on Cortex-A core, so I created two PR, the first part for GIC update is in PR #92346, and this PR is for NETC driver related update, so this PR is based and depends on #92346
This PR also depends on hal PR: zephyrproject-rtos/hal_nxp#571