Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions ARM.CMSIS.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
<releases>
<release version="6.3.1-dev">
Active development ...
- CMSIS-Driver: 2.12.0
- Added Gigabit Ethernet support to the Ethernet driver API
</release>
<release version="5.9.0" date="2022-05-02">
CMSIS-Core(M): 5.6.0
Expand Down Expand Up @@ -493,22 +495,22 @@
<file category="header" name="CMSIS/Driver/Include/Driver_NAND.h" />
</files>
</api>
<api Cclass="CMSIS Driver" Cgroup="Ethernet" Capiversion="2.2.0" exclusive="0">
<api Cclass="CMSIS Driver" Cgroup="Ethernet" Capiversion="2.3.0" exclusive="0">
Comment thread
RobertRostohar marked this conversation as resolved.
<description>Ethernet MAC (Media Access Control) and PHY (Physical layer) Driver API</description>
<files>
<file category="doc" name="CMSIS/Documentation/html/Driver/group__eth__interface__gr.html" />
<file category="header" name="CMSIS/Driver/Include/Driver_ETH_MAC.h" />
<file category="header" name="CMSIS/Driver/Include/Driver_ETH_PHY.h" />
</files>
</api>
<api Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Capiversion="2.2.0" exclusive="0">
<api Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Capiversion="2.3.0" exclusive="0">
Comment thread
RobertRostohar marked this conversation as resolved.
<description>Ethernet MAC (Media Access Control) Driver API</description>
<files>
<file category="doc" name="CMSIS/Documentation/html/Driver/group__eth__mac__interface__gr.html" />
<file category="header" name="CMSIS/Driver/Include/Driver_ETH_MAC.h" />
</files>
</api>
<api Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Capiversion="2.2.0" exclusive="0">
<api Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Capiversion="2.3.0" exclusive="0">
<description>Ethernet PHY (Physical layer) Driver API</description>
<files>
<file category="doc" name="CMSIS/Documentation/html/Driver/group__eth__phy__interface__gr.html" />
Expand Down Expand Up @@ -780,20 +782,20 @@
<file category="sourceC" attr="template" name="CMSIS/Driver/DriverTemplates/Driver_NAND.c" select="NAND Flash Driver"/>
</files>
</component>
<component Cclass="CMSIS Driver" Cgroup="Ethernet" Csub="Custom" Cversion="1.0.0" Capiversion="2.2.0" custom="1">
<component Cclass="CMSIS Driver" Cgroup="Ethernet" Csub="Custom" Cversion="1.1.0" Capiversion="2.3.0" custom="1">
<description>Access to #include Driver_ETH_PHY/MAC.h files and code templates for custom implementation</description>
<files>
<file category="sourceC" attr="template" name="CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c" select="Ethernet PHY and MAC Driver"/>
<file category="sourceC" attr="template" name="CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c" select="Ethernet PHY and MAC Driver"/>
</files>
</component>
<component Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Csub="Custom" Cversion="1.0.0" Capiversion="2.2.0" custom="1">
<component Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Csub="Custom" Cversion="1.1.0" Capiversion="2.3.0" custom="1">
<description>Access to #include Driver_ETH_MAC.h file and code template for custom implementation</description>
<files>
<file category="sourceC" attr="template" name="CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c" select="Ethernet MAC Driver"/>
</files>
</component>
<component Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Csub="Custom" Cversion="1.0.0" Capiversion="2.2.0" custom="1">
<component Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Csub="Custom" Cversion="1.1.0" Capiversion="2.3.0" custom="1">
<description>Access to #include Driver_ETH_PHY.h file and code template for custom implementation</description>
<files>
<file category="sourceC" attr="template" name="CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c" select="Ethernet PHY Driver"/>
Expand Down
2 changes: 1 addition & 1 deletion CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
@}
*/
5 changes: 4 additions & 1 deletion CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 6 additions & 0 deletions CMSIS/Documentation/Doxygen/Driver/src/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ The table below provides information about the changes delivered with specific v
<th>Version</th>
<th>Description</th>
</tr>
<tr>
<td>2.12.0</td>
<td>
- Added Gigabit Ethernet support to the Ethernet driver API
</td>
</tr>
<tr>
<td>2.11.0</td>
<td>
Expand Down
23 changes: 17 additions & 6 deletions CMSIS/Driver/DriverTemplates/Driver_ETH_MAC.c
Original file line number Diff line number Diff line change
@@ -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
*
Expand All @@ -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 = {
Expand Down Expand Up @@ -127,7 +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_MAC_SPEED_1G:
break;
default:
return ARM_DRIVER_ERROR_UNSUPPORTED;
Expand All @@ -137,19 +139,27 @@ static int32_t ARM_ETH_MAC_Control(uint32_t control, uint32_t arg)
{
case ARM_ETH_MAC_DUPLEX_FULL:
break;
case ARM_ETH_MAC_DUPLEX_HALF:
break;
default:
return ARM_DRIVER_ERROR_UNSUPPORTED;
}

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)
{
return ARM_DRIVER_ERROR_UNSUPPORTED;
}

if (!(arg & ARM_ETH_MAC_ADDRESS_BROADCAST))
if (arg & ARM_ETH_MAC_CHECKSUM_OFFLOAD_TX)
{
return ARM_DRIVER_ERROR_UNSUPPORTED;
}

if (arg & ARM_ETH_MAC_ADDRESS_BROADCAST)
{
}

Expand Down Expand Up @@ -187,6 +197,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)
Expand Down
18 changes: 16 additions & 2 deletions CMSIS/Driver/DriverTemplates/Driver_ETH_PHY.c
Original file line number Diff line number Diff line change
@@ -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
*
Expand All @@ -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 = {
Expand Down Expand Up @@ -67,9 +67,18 @@ static int32_t ARM_ETH_PHY_SetInterface(uint32_t interface)
break;
case ARM_ETH_INTERFACE_RMII:
break;
case ARM_ETH_INTERFACE_SMII:
break;
case ARM_ETH_INTERFACE_GMII:
break;
case ARM_ETH_INTERFACE_RGMII:
break;
case ARM_ETH_INTERFACE_SGMII:
break;
default:
return ARM_DRIVER_ERROR_UNSUPPORTED;
}
return ARM_DRIVER_OK;
}

static int32_t ARM_ETH_PHY_SetMode(uint32_t mode)
Expand All @@ -80,6 +89,8 @@ static int32_t ARM_ETH_PHY_SetMode(uint32_t mode)
break;
case ARM_ETH_PHY_SPEED_100M:
break;
case ARM_ETH_PHY_SPEED_1G:
break;
default:
return ARM_DRIVER_ERROR_UNSUPPORTED;
}
Expand All @@ -90,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)
Expand All @@ -103,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)
Expand Down
13 changes: 9 additions & 4 deletions CMSIS/Driver/Include/Driver_ETH.h
Original file line number Diff line number Diff line change
@@ -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
*
Expand All @@ -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
Expand All @@ -46,13 +48,16 @@
#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)
Comment thread
RobertRostohar marked this conversation as resolved.

/**
\brief Ethernet link speed
*/
#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
Expand Down
14 changes: 8 additions & 6 deletions CMSIS/Driver/Include/Driver_ETH_MAC.h
Original file line number Diff line number Diff line change
@@ -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
*
Expand All @@ -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
Expand Down Expand Up @@ -61,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
Expand Down Expand Up @@ -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 : 4; ///< Ethernet Media Interface type
Comment thread
RobertRostohar marked this conversation as resolved.
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 : 13; ///< Reserved (must be zero)
} ARM_ETH_MAC_CAPABILITIES;


Expand Down
10 changes: 6 additions & 4 deletions CMSIS/Driver/Include/Driver_ETH_PHY.h
Original file line number Diff line number Diff line change
@@ -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
*
Expand All @@ -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 (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
Expand All @@ -46,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
Expand Down
Loading