Skip to content

Add Generic CMSIS Network Interface Template#1310

Open
HTRamsey wants to merge 1 commit intoFreeRTOS:mainfrom
HTRamsey:dev-networkinterface-cmsis
Open

Add Generic CMSIS Network Interface Template#1310
HTRamsey wants to merge 1 commit intoFreeRTOS:mainfrom
HTRamsey:dev-networkinterface-cmsis

Conversation

@HTRamsey
Copy link
Copy Markdown
Contributor

@HTRamsey HTRamsey commented Feb 8, 2026

Provides a Network Interface for every platform with a CMSIS implementation for the ETH peripheral

Copilot AI review requested due to automatic review settings February 8, 2026 03:16
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a generic CMSIS-based FreeRTOS+TCP NetworkInterface template and wires it into the build so FREERTOS_PLUS_TCP_NETWORK_IF=CMSIS can be selected.

Changes:

  • Added CMSIS network interface CMake integration (new subdir build + top-level selector).
  • Vendored CMSIS Core headers plus example MAC/PHY driver headers/templates for bring-up.
  • Added example Ethernet register/driver definitions for LAN91C111 and KSZ8851SNL.

Reviewed changes

Copilot reviewed 39 out of 81 changed files in this pull request and generated 17 comments.

Show a summary per file
File Description
source/portable/NetworkInterface/CMSIS/Driver/Examples/Ethernet/LAN91C111/ETH_LAN91C111.h Adds LAN91C111 register definitions and driver control struct.
source/portable/NetworkInterface/CMSIS/Driver/Examples/Ethernet/KSZ8851SNL/ETH_KSZ8851SNL.h Adds KSZ8851SNL register definitions and driver control struct.
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c Adds a CMSIS ETH PHY driver template (stub implementation).
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c Adds a CMSIS ETH MAC driver template (stub implementation).
source/portable/NetworkInterface/CMSIS/Core/Include/tz_context.h Adds TrustZone context management header from CMSIS Core.
source/portable/NetworkInterface/CMSIS/Core/Include/r-profile/cmsis_iccarm_r.h Adds CMSIS-Core(R) ICCARM compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/r-profile/cmsis_gcc_r.h Adds CMSIS-Core(R) GCC compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/r-profile/cmsis_clang_r.h Adds CMSIS-Core(R) clang compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/r-profile/cmsis_armclang_r.h Adds CMSIS-Core(R) armclang compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/cmsis_iccarm_m.h Adds CMSIS-Core(M) ICCARM compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv8m_pmu.h Adds Armv8.1-M PMU API header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv8m_mpu.h Adds Armv8-M / Armv8.1-M MPU API header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv81m_pac.h Adds Armv8.1-M PAC key access header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv7m_mpu.h Adds Armv7-M MPU API header.
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv7m_cachel1.h Adds Armv7-M L1 cache API header.
source/portable/NetworkInterface/CMSIS/Core/Include/cmsis_version.h Adds CMSIS version macros.
source/portable/NetworkInterface/CMSIS/Core/Include/cmsis_iccarm.h Adds CMSIS compiler abstraction for ICCARM across profiles.
source/portable/NetworkInterface/CMSIS/Core/Include/cmsis_compiler.h Adds CMSIS generic compiler dispatch header.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/irq_ctrl.h Adds CMSIS-Core(A) IRQ controller API header.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/cmsis_iccarm_a.h Adds CMSIS-Core(A) ICCARM compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/cmsis_gcc_a.h Adds CMSIS-Core(A) GCC compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/cmsis_cp15.h Adds CP15 accessor intrinsics for A-profile.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/cmsis_clang_a.h Adds CMSIS-Core(A) LLVM/Clang compiler header.
source/portable/NetworkInterface/CMSIS/Core/Include/a-profile/cmsis_armclang_a.h Adds CMSIS-Core(A) armclang compiler header.
source/portable/NetworkInterface/CMSIS/CMakeLists.txt Adds CMSIS network interface target setup and extension points.
CMakeLists.txt Makes CMSIS selectable via FREERTOS_PLUS_TCP_NETWORK_IF.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@HTRamsey HTRamsey force-pushed the dev-networkinterface-cmsis branch from e9a722c to 09e6585 Compare February 8, 2026 03:28
@HTRamsey HTRamsey marked this pull request as draft February 8, 2026 15:49
@HTRamsey HTRamsey force-pushed the dev-networkinterface-cmsis branch from 09e6585 to 8b30cb8 Compare February 19, 2026 18:33
@HTRamsey HTRamsey force-pushed the dev-networkinterface-cmsis branch from 8b30cb8 to 1874a0c Compare February 25, 2026 15:09
@HTRamsey HTRamsey marked this pull request as ready for review February 25, 2026 15:09
@HTRamsey
Copy link
Copy Markdown
Contributor Author

@htibosch This should be really convenient for getting most platforms to work at least to a minimal functional state

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants