From 1eedc7bb5ab1f3234e07c75199cd9c91d13b4d48 Mon Sep 17 00:00:00 2001 From: Franc Urbanc Date: Wed, 9 Sep 2026 12:38:56 +0200 Subject: [PATCH 1/6] CMSIS-Driver: Add Gigabit Ethernet support to the Ethernet driver API --- ARM.CMSIS.pdsc | 10 ++++++---- CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in | 2 +- CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c | 6 ++++++ .../Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c | 5 ++++- CMSIS/Documentation/Doxygen/Driver/src/history.md | 6 ++++++ CMSIS/Driver/Include/Driver_ETH.h | 9 +++++++-- CMSIS/Driver/Include/Driver_ETH_MAC.h | 10 ++++++---- 7 files changed, 36 insertions(+), 12 deletions(-) diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc index ab5a9e947..b48a9c6be 100644 --- a/ARM.CMSIS.pdsc +++ b/ARM.CMSIS.pdsc @@ -16,6 +16,8 @@ Active development ... + - CMSIS-Driver: 2.12.0 + - Added Gigabit Ethernet support to the Ethernet driver API CMSIS-Core(M): 5.6.0 @@ -493,7 +495,7 @@ - + Ethernet MAC (Media Access Control) and PHY (Physical layer) Driver API @@ -501,7 +503,7 @@ - + Ethernet MAC (Media Access Control) Driver API @@ -780,14 +782,14 @@ - + Access to #include Driver_ETH_PHY/MAC.h files and code templates for custom implementation - + Access to #include Driver_ETH_MAC.h file and code template for custom implementation diff --git a/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in b/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in index 503833e50..b1329381a 100644 --- a/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in +++ b/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in @@ -47,7 +47,7 @@ PROJECT_NAME = "CMSIS-Driver" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "Version 2.11.0" +PROJECT_NUMBER = "Version 2.12.0" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c index 2714a3011..d32f39f9b 100644 --- a/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c +++ b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c @@ -220,5 +220,11 @@ The function \ref ARM_ETH_MAC_GetCapabilities retrieves the media interface type \sa ARM_ETH_PHY_SetInterface \def ARM_ETH_INTERFACE_SMII \sa ARM_ETH_PHY_SetInterface +\def ARM_ETH_INTERFACE_GMII +\sa ARM_ETH_PHY_SetInterface +\def ARM_ETH_INTERFACE_RGMII +\sa ARM_ETH_PHY_SetInterface +\def ARM_ETH_INTERFACE_SGMII +\sa ARM_ETH_PHY_SetInterface @} */ diff --git a/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c index 38f398b23..7298cb835 100644 --- a/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c +++ b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c @@ -160,7 +160,10 @@ Parameter \em interface | Media Type :-----------------------------|:------------------------- \ref ARM_ETH_INTERFACE_MII | Media Independent Interface (MII) \ref ARM_ETH_INTERFACE_RMII | Reduced Media Independent Interface (RMII) -\ref ARM_ETH_INTERFACE_SMII | Serial Media Independent Interface (SMII); +\ref ARM_ETH_INTERFACE_SMII | Serial Media Independent Interface (SMII) +\ref ARM_ETH_INTERFACE_GMII | Gigabit Media Independent Interface (GMII) +\ref ARM_ETH_INTERFACE_RGMII | Reduced Gigabit Media Independent Interface (RGMII) +\ref ARM_ETH_INTERFACE_SGMII | Serial Gigabit Media Independent Interface (SGMII) \note Some \em interface values may be unsupported by a driver implementation. For example \ref ARM_ETH_INTERFACE_SMII may return \b ARM_DRIVER_ERROR_UNSUPPORTED. diff --git a/CMSIS/Documentation/Doxygen/Driver/src/history.md b/CMSIS/Documentation/Doxygen/Driver/src/history.md index b43b97b72..a34921608 100644 --- a/CMSIS/Documentation/Doxygen/Driver/src/history.md +++ b/CMSIS/Documentation/Doxygen/Driver/src/history.md @@ -9,6 +9,12 @@ The table below provides information about the changes delivered with specific v Version Description + + 2.12.0 + + - Added Gigabit Ethernet support to the Ethernet driver API + + 2.11.0 diff --git a/CMSIS/Driver/Include/Driver_ETH.h b/CMSIS/Driver/Include/Driver_ETH.h index d7bfaf4cb..8a82dec26 100644 --- a/CMSIS/Driver/Include/Driver_ETH.h +++ b/CMSIS/Driver/Include/Driver_ETH.h @@ -15,13 +15,15 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * $Date: 24. January 2020 - * $Revision: V2.2 + * $Date: 9. September 2026 + * $Revision: V2.3 * * Project: Ethernet PHY and MAC Driver common definitions */ /* History: + * Version 2.3 + * Added gigabit ethernet support * Version 2.2 * Removed volatile from ARM_ETH_LINK_INFO * Version 2.1 @@ -46,6 +48,9 @@ #define ARM_ETH_INTERFACE_MII (0U) ///< Media Independent Interface (MII) #define ARM_ETH_INTERFACE_RMII (1U) ///< Reduced Media Independent Interface (RMII) #define ARM_ETH_INTERFACE_SMII (2U) ///< Serial Media Independent Interface (SMII) +#define ARM_ETH_INTERFACE_GMII (3U) ///< Gigabit Media Independent Interface (GMII) +#define ARM_ETH_INTERFACE_RGMII (4U) ///< Reduced Gigabit Media Independent Interface (RGMII) +#define ARM_ETH_INTERFACE_SGMII (5U) ///< Serial Gigabit Media Independent Interface (SGMII) /** \brief Ethernet link speed diff --git a/CMSIS/Driver/Include/Driver_ETH_MAC.h b/CMSIS/Driver/Include/Driver_ETH_MAC.h index 60f672c3c..f19f6ab25 100644 --- a/CMSIS/Driver/Include/Driver_ETH_MAC.h +++ b/CMSIS/Driver/Include/Driver_ETH_MAC.h @@ -15,13 +15,15 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * $Date: 24. January 2020 - * $Revision: V2.2 + * $Date: 9. September 2026 + * $Revision: V2.3 * * Project: Ethernet MAC (Media Access Control) Driver definitions */ /* History: + * Version 2.3 + * Added gigabit ethernet support * Version 2.2 * Removed volatile from ARM_ETH_LINK_INFO * Version 2.1 @@ -269,13 +271,13 @@ typedef struct _ARM_ETH_MAC_CAPABILITIES { uint32_t checksum_offload_tx_udp : 1; ///< 1 = UDP payload checksum generated on transmit uint32_t checksum_offload_tx_tcp : 1; ///< 1 = TCP payload checksum generated on transmit uint32_t checksum_offload_tx_icmp : 1; ///< 1 = ICMP payload checksum generated on transmit - uint32_t media_interface : 2; ///< Ethernet Media Interface type + uint32_t media_interface : 3; ///< Ethernet Media Interface type uint32_t mac_address : 1; ///< 1 = driver provides initial valid MAC address uint32_t event_rx_frame : 1; ///< 1 = callback event \ref ARM_ETH_MAC_EVENT_RX_FRAME generated uint32_t event_tx_frame : 1; ///< 1 = callback event \ref ARM_ETH_MAC_EVENT_TX_FRAME generated uint32_t event_wakeup : 1; ///< 1 = wakeup event \ref ARM_ETH_MAC_EVENT_WAKEUP generated uint32_t precision_timer : 1; ///< 1 = Precision Timer supported - uint32_t reserved : 15; ///< Reserved (must be zero) + uint32_t reserved : 14; ///< Reserved (must be zero) } ARM_ETH_MAC_CAPABILITIES; From c0b36ebd1fc2d69c63603d0499d74777f6c4b3a3 Mon Sep 17 00:00:00 2001 From: Franc Urbanc Date: Thu, 10 Sep 2026 08:22:29 +0200 Subject: [PATCH 2/6] Applied the changes recommended by Copilot --- ARM.CMSIS.pdsc | 4 ++-- CMSIS/Driver/Include/Driver_ETH.h | 6 +++--- CMSIS/Driver/Include/Driver_ETH_MAC.h | 8 ++++---- CMSIS/Driver/Include/Driver_ETH_PHY.h | 6 ++++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc index b48a9c6be..44e357f30 100644 --- a/ARM.CMSIS.pdsc +++ b/ARM.CMSIS.pdsc @@ -510,7 +510,7 @@ - + Ethernet PHY (Physical layer) Driver API @@ -795,7 +795,7 @@ - + Access to #include Driver_ETH_PHY.h file and code template for custom implementation diff --git a/CMSIS/Driver/Include/Driver_ETH.h b/CMSIS/Driver/Include/Driver_ETH.h index 8a82dec26..562dbf825 100644 --- a/CMSIS/Driver/Include/Driver_ETH.h +++ b/CMSIS/Driver/Include/Driver_ETH.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 ARM Limited. All rights reserved. + * Copyright (c) 2013-2026 ARM Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -23,7 +23,7 @@ /* History: * Version 2.3 - * Added gigabit ethernet support + * Added Gigabit Ethernet support * Version 2.2 * Removed volatile from ARM_ETH_LINK_INFO * Version 2.1 @@ -57,7 +57,7 @@ */ #define ARM_ETH_SPEED_10M (0U) ///< 10 Mbps link speed #define ARM_ETH_SPEED_100M (1U) ///< 100 Mbps link speed -#define ARM_ETH_SPEED_1G (2U) ///< 1 Gpbs link speed +#define ARM_ETH_SPEED_1G (2U) ///< 1 Gbps link speed /** \brief Ethernet duplex mode diff --git a/CMSIS/Driver/Include/Driver_ETH_MAC.h b/CMSIS/Driver/Include/Driver_ETH_MAC.h index f19f6ab25..56ab7b357 100644 --- a/CMSIS/Driver/Include/Driver_ETH_MAC.h +++ b/CMSIS/Driver/Include/Driver_ETH_MAC.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 ARM Limited. All rights reserved. + * Copyright (c) 2013-2026 ARM Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -23,7 +23,7 @@ /* History: * Version 2.3 - * Added gigabit ethernet support + * Added Gigabit Ethernet support * Version 2.2 * Removed volatile from ARM_ETH_LINK_INFO * Version 2.1 @@ -271,13 +271,13 @@ typedef struct _ARM_ETH_MAC_CAPABILITIES { uint32_t checksum_offload_tx_udp : 1; ///< 1 = UDP payload checksum generated on transmit uint32_t checksum_offload_tx_tcp : 1; ///< 1 = TCP payload checksum generated on transmit uint32_t checksum_offload_tx_icmp : 1; ///< 1 = ICMP payload checksum generated on transmit - uint32_t media_interface : 3; ///< Ethernet Media Interface type + uint32_t media_interface : 4; ///< Ethernet Media Interface type uint32_t mac_address : 1; ///< 1 = driver provides initial valid MAC address uint32_t event_rx_frame : 1; ///< 1 = callback event \ref ARM_ETH_MAC_EVENT_RX_FRAME generated uint32_t event_tx_frame : 1; ///< 1 = callback event \ref ARM_ETH_MAC_EVENT_TX_FRAME generated uint32_t event_wakeup : 1; ///< 1 = wakeup event \ref ARM_ETH_MAC_EVENT_WAKEUP generated uint32_t precision_timer : 1; ///< 1 = Precision Timer supported - uint32_t reserved : 14; ///< Reserved (must be zero) + uint32_t reserved : 13; ///< Reserved (must be zero) } ARM_ETH_MAC_CAPABILITIES; diff --git a/CMSIS/Driver/Include/Driver_ETH_PHY.h b/CMSIS/Driver/Include/Driver_ETH_PHY.h index cb7c0f566..80d4beb0d 100644 --- a/CMSIS/Driver/Include/Driver_ETH_PHY.h +++ b/CMSIS/Driver/Include/Driver_ETH_PHY.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 ARM Limited. All rights reserved. + * Copyright (c) 2013-2026 ARM Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -16,12 +16,14 @@ * limitations under the License. * * $Date: 24. January 2020 - * $Revision: V2.2 + * $Revision: V2.3 * * Project: Ethernet PHY (Physical Transceiver) Driver definitions */ /* History: + * Version 2.3 + * Added Gigabit Ethernet support * Version 2.2 * Removed volatile from ARM_ETH_LINK_INFO * Version 2.1 From 124935a492bd4ff2c4653e0c2d074064554e4d43 Mon Sep 17 00:00:00 2001 From: Franc Urbanc Date: Thu, 10 Sep 2026 10:37:38 +0200 Subject: [PATCH 3/6] Updated after review by Copilot --- CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c | 21 ++++++++++++------- CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c | 19 +++++++++++------ CMSIS/Driver/Include/Driver_ETH_MAC.h | 2 +- CMSIS/Driver/Include/Driver_ETH_PHY.h | 4 ++-- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c index 2817b8cb1..aade39329 100644 --- a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c +++ b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 Arm Limited. All rights reserved. + * Copyright (c) 2013-2026 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -18,7 +18,7 @@ #include "Driver_ETH_MAC.h" -#define ARM_ETH_MAC_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) /* driver version */ +#define ARM_ETH_MAC_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 1) /* driver version */ /* Driver Version */ static const ARM_DRIVER_VERSION DriverVersion = { @@ -129,27 +129,31 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) break; case ARM_ETH_SPEED_100M: break; - default: - return ARM_DRIVER_ERROR_UNSUPPORTED; + case ARM_ETH_SPEED_1G: + break; } switch (arg & ARM_ETH_MAC_DUPLEX_Msk) { case ARM_ETH_MAC_DUPLEX_FULL: break; + case ARM_ETH_MAC_DUPLEX_HALF: + break; } if (arg & ARM_ETH_MAC_LOOPBACK) { } - if ((arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_RX) || - (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_TX)) + if (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_RX) + { + } + + if (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_TX) { - return ARM_DRIVER_ERROR_UNSUPPORTED; } - if (!(arg & ARM_ETH_MAC_ADDRESS_BROADCAST)) + if (arg & ARM_ETH_MAC_ADDRESS_BROADCAST) { } @@ -187,6 +191,7 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) default: return ARM_DRIVER_ERROR_UNSUPPORTED; } + return ARM_DRIVER_OK; } static int32_t ARM_ETH_MAC_ControlTimer(uint32_t control, ARM_ETH_MAC_TIME *time) diff --git a/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c b/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c index e496a28ae..403b42889 100644 --- a/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c +++ b/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 Arm Limited. All rights reserved. + * Copyright (c) 2013-2026 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -18,7 +18,7 @@ #include "Driver_ETH_PHY.h" -#define ARM_ETH_PHY_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) /* driver version */ +#define ARM_ETH_PHY_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 1) /* driver version */ /* Driver Version */ static const ARM_DRIVER_VERSION DriverVersion = { @@ -67,9 +67,16 @@ static int32_t ARM_ETH_PHY_SetInterface(uint32_t interface) break; case ARM_ETH_INTERFACE_RMII: break; - default: - return ARM_DRIVER_ERROR_UNSUPPORTED; + case ARM_ETH_INTERFACE_SMII: + break; + case ARM_ETH_INTERFACE_GMII: + break; + case ARM_ETH_INTERFACE_RGMII: + break; + case ARM_ETH_INTERFACE_SGMII: + break; } + return ARM_DRIVER_OK; } static int32_t ARM_ETH_PHY_SetMode(uint32_t mode) @@ -80,8 +87,8 @@ static int32_t ARM_ETH_PHY_SetMode(uint32_t mode) break; case ARM_ETH_PHY_SPEED_100M: break; - default: - return ARM_DRIVER_ERROR_UNSUPPORTED; + case ARM_ETH_SPEED_1G: + break; } switch (mode & ARM_ETH_PHY_DUPLEX_Msk) diff --git a/CMSIS/Driver/Include/Driver_ETH_MAC.h b/CMSIS/Driver/Include/Driver_ETH_MAC.h index 56ab7b357..deed17835 100644 --- a/CMSIS/Driver/Include/Driver_ETH_MAC.h +++ b/CMSIS/Driver/Include/Driver_ETH_MAC.h @@ -63,7 +63,7 @@ extern "C" #include "Driver_ETH.h" -#define ARM_ETH_MAC_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2) /* API version */ +#define ARM_ETH_MAC_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3) /* API version */ #define _ARM_Driver_ETH_MAC_(n) Driver_ETH_MAC##n diff --git a/CMSIS/Driver/Include/Driver_ETH_PHY.h b/CMSIS/Driver/Include/Driver_ETH_PHY.h index 80d4beb0d..a2b78ff53 100644 --- a/CMSIS/Driver/Include/Driver_ETH_PHY.h +++ b/CMSIS/Driver/Include/Driver_ETH_PHY.h @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * $Date: 24. January 2020 + * $Date: 9. September 2026 * $Revision: V2.3 * * Project: Ethernet PHY (Physical Transceiver) Driver definitions @@ -48,7 +48,7 @@ extern "C" #include "Driver_ETH.h" -#define ARM_ETH_PHY_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2) /* API version */ +#define ARM_ETH_PHY_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3) /* API version */ #define _ARM_Driver_ETH_PHY_(n) Driver_ETH_PHY##n From c12b21dbf1fffa6f0abe7e5516847dae9b5c2d94 Mon Sep 17 00:00:00 2001 From: Franc Urbanc Date: Thu, 10 Sep 2026 12:34:30 +0200 Subject: [PATCH 4/6] Update templates per Copilot recommendations --- CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c | 6 ++++++ CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c index aade39329..dd48c343e 100644 --- a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c +++ b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c @@ -131,6 +131,8 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) break; case ARM_ETH_SPEED_1G: break; + default: + return ARM_DRIVER_ERROR_UNSUPPORTED; } switch (arg & ARM_ETH_MAC_DUPLEX_Msk) @@ -139,6 +141,8 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) break; case ARM_ETH_MAC_DUPLEX_HALF: break; + default: + return ARM_DRIVER_ERROR_UNSUPPORTED; } if (arg & ARM_ETH_MAC_LOOPBACK) @@ -147,10 +151,12 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) if (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_RX) { + return ARM_DRIVER_ERROR_UNSUPPORTED; } if (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_TX) { + return ARM_DRIVER_ERROR_UNSUPPORTED; } if (arg & ARM_ETH_MAC_ADDRESS_BROADCAST) diff --git a/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c b/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c index 403b42889..051dbed7b 100644 --- a/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c +++ b/CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c @@ -75,6 +75,8 @@ static int32_t ARM_ETH_PHY_SetInterface(uint32_t interface) break; case ARM_ETH_INTERFACE_SGMII: break; + default: + return ARM_DRIVER_ERROR_UNSUPPORTED; } return ARM_DRIVER_OK; } @@ -87,8 +89,10 @@ static int32_t ARM_ETH_PHY_SetMode(uint32_t mode) break; case ARM_ETH_PHY_SPEED_100M: break; - case ARM_ETH_SPEED_1G: + case ARM_ETH_PHY_SPEED_1G: break; + default: + return ARM_DRIVER_ERROR_UNSUPPORTED; } switch (mode & ARM_ETH_PHY_DUPLEX_Msk) @@ -97,6 +101,8 @@ static int32_t ARM_ETH_PHY_SetMode(uint32_t mode) break; case ARM_ETH_PHY_DUPLEX_FULL: break; + default: + return ARM_DRIVER_ERROR_UNSUPPORTED; } if (mode & ARM_ETH_PHY_AUTO_NEGOTIATE) @@ -110,6 +116,7 @@ static int32_t ARM_ETH_PHY_SetMode(uint32_t mode) if (mode & ARM_ETH_PHY_ISOLATE) { } + return ARM_DRIVER_OK; } static ARM_ETH_LINK_STATE ARM_ETH_PHY_GetLinkState(void) From 462240dbdbec871ffc716799d5a53c27f9ba7287 Mon Sep 17 00:00:00 2001 From: Robert Rostohar Date: Fri, 11 Sep 2026 10:55:18 +0200 Subject: [PATCH 5/6] Fix ETH MAC Driver Template --- CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c index dd48c343e..ca5aec4fc 100644 --- a/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c +++ b/CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c @@ -127,9 +127,9 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg) { case ARM_ETH_MAC_SPEED_10M: break; - case ARM_ETH_SPEED_100M: + case ARM_ETH_MAC_SPEED_100M: break; - case ARM_ETH_SPEED_1G: + case ARM_ETH_MAC_SPEED_1G: break; default: return ARM_DRIVER_ERROR_UNSUPPORTED; From 6d851f4b7396179dfcf1c6ba391ebacb41b21401 Mon Sep 17 00:00:00 2001 From: Robert Rostohar Date: Fri, 11 Sep 2026 11:10:36 +0200 Subject: [PATCH 6/6] Update Ethernet driver versions in pack description --- ARM.CMSIS.pdsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc index 44e357f30..be4b7d5e5 100644 --- a/ARM.CMSIS.pdsc +++ b/ARM.CMSIS.pdsc @@ -782,20 +782,20 @@ - + Access to #include Driver_ETH_PHY/MAC.h files and code templates for custom implementation - + Access to #include Driver_ETH_MAC.h file and code template for custom implementation - + Access to #include Driver_ETH_PHY.h file and code template for custom implementation