Skip to content

Commit 1671ca8

Browse files
committed
drivers: ethernet: Add Intel i226 Ethernet MAC device driver
The Intel i226 Ethernet Controller is a PCIe Gen 2 one-lane modular endpoint device that integrates a GbE Media Access Control (MAC) and Physical Layer (PHY) port. This driver provides support for MAC and DMA-specific initialization and runtime TX/RX operations. Key features supported by the driver: - Full duplex support for 10/100/1000 Mbps. - Half duplex support for 10/100 Mbps. - MSI-X interrupts for TX/RX DMA channels. - MSI-X interrupts for link status change detection. - Multiple TX/RX DMA channel support with exclusive bottom-half processing. - Auto-negotiation for 10/100/1000 Mbps. - MTU customization for flexible packet sizes. - MAC address filtering based on: - Pre-programmed MAC addresses. - MAC addresses specified in the device tree. - Support for multiple Ethernet interface instances. Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com> Signed-off-by: Ling Pei Lee <pei.lee.ling@intel.com>
1 parent 0bec4fe commit 1671ca8

File tree

6 files changed

+2094
-0
lines changed

6 files changed

+2094
-0
lines changed

drivers/ethernet/intel/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
zephyr_library_sources_ifdef(CONFIG_ETH_INTEL_PLAT eth_intel_plat.c)
5+
zephyr_library_sources_ifdef(CONFIG_ETH_INTEL_IGC eth_intel_igc.c)

drivers/ethernet/intel/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ config ETH_INTEL_PLAT
88
Enable Platform driver to retrieve the MMIO mapping details and
99
share them with all the child devices such as MDIO, PHY, MAC
1010
and PTP_CLOCK.
11+
source "drivers/ethernet/intel/Kconfig.intel_igc"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright (c) 2025 Intel Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
menuconfig ETH_INTEL_IGC
5+
bool "Intel IGC MAC driver"
6+
default y
7+
depends on DT_HAS_INTEL_IGC_MAC_ENABLED
8+
select MDIO
9+
select PCIE_MSI_MULTI_VECTOR
10+
select PCIE_MSI_X
11+
help
12+
Ethernet device driver for Intel i226 MAC.
13+
14+
if ETH_INTEL_IGC
15+
16+
config ETH_INTEL_IGC_INT_PRIORITY
17+
int "Interrupt priority"
18+
default 6
19+
help
20+
MSI-X vectors priority for IGC interrupts.
21+
22+
config ETH_INTEL_IGC_NET_MTU
23+
int "MTU size"
24+
default 1500
25+
range 64 1522
26+
help
27+
Maximum Transmission Unit (MTU) size configuration.
28+
29+
endif # ETH_INTEL_IGC

0 commit comments

Comments
 (0)