Add Generic CMSIS Network Interface Template#1310
Open
HTRamsey wants to merge 1 commit intoFreeRTOS:mainfrom
Open
Add Generic CMSIS Network Interface Template#1310HTRamsey wants to merge 1 commit intoFreeRTOS:mainfrom
HTRamsey wants to merge 1 commit intoFreeRTOS:mainfrom
Conversation
There was a problem hiding this comment.
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.
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv8m_mpu.h
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv81m_pac.h
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Core/Include/m-profile/armv81m_pac.h
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/Examples/Ethernet/LAN91C111/ETH_LAN91C111.h
Show resolved
Hide resolved
source/portable/NetworkInterface/CMSIS/Driver/Examples/Ethernet/KSZ8851SNL/ETH_KSZ8851SNL.h
Show resolved
Hide resolved
e9a722c to
09e6585
Compare
09e6585 to
8b30cb8
Compare
8b30cb8 to
1874a0c
Compare
Contributor
Author
|
@htibosch This should be really convenient for getting most platforms to work at least to a minimal functional state |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Provides a Network Interface for every platform with a CMSIS implementation for the ETH peripheral