Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a869d54
UPSTREAM: chore: change annotation for documentation
tacdom Mar 24, 2026
f36fa63
UPSTREAM: doc: licensing: add the exceptions section to REUSE.toml
kartben Jul 9, 2026
8c58c78
UPSTREAM: doc: licensing: document the Bootstrap dashboard files
kartben Jul 9, 2026
08072fd
UPSTREAM: doc: licensing: document the Bosch BMI08x sensor config
kartben Jul 9, 2026
c2853f5
UPSTREAM: dts: add dependency-mode prop key
maass-hamburg May 20, 2026
b5f3781
UPSTREAM: dts: bindings: ethernet: update values for phy-connection-type
maass-hamburg May 6, 2026
c632faf
UPSTREAM: dts: ethernet: use dependency-mode for phy-handle
maass-hamburg May 20, 2026
0e463dd
UPSTREAM: net: pkt: add NET_PKT_FRAG_FOR_EACH() macro
walidbadar May 7, 2026
c53629f
UPSTREAM: net: l2: ethernet: add struct net_if to arguments
maass-hamburg Oct 19, 2026
54d0e9b
UPSTREAM: net: net_if: add helper macros to add ifaces to a dev
maass-hamburg Mar 25, 2026
3bc7e94
UPSTREAM-PEND: dts: bindings: dma: introduce AM62L PKTDMA (Packet DMA)
Siddharth-Vadapalli-at-TI May 14, 2026
ace9a2b
UPSTREAM-PEND: soc: ti: am62l: introduce AM62L PKTDMA (Packet DMA) dr…
Siddharth-Vadapalli-at-TI May 17, 2026
94d3c75
UPSTREAM-PEND: dts: bindings: mdio: introduce AM62L CPSW MDIO
Siddharth-Vadapalli-at-TI Oct 16, 2026
6c04a8c
UPSTREAM-PEND: dts: bindings: ethernet: introduce AM62L CPSW ...
Siddharth-Vadapalli-at-TI May 14, 2026
3fe7eb4
UPSTREAM-PEND: drivers: ethernet: mdio: introduce AM62L CPSW MDIO driver
Siddharth-Vadapalli-at-TI Oct 19, 2026
c0439ef
UPSTREAM-PEND: drivers: ethernet: introduce AM62L CPSW ...
Siddharth-Vadapalli-at-TI May 17, 2026
a4656d4
UPSTREAM-PEND: boards: ti: am62l_evm: enable CPSW3G and PKTDMA
Siddharth-Vadapalli-at-TI Oct 19, 2026
39ff1c7
UPSTREAM-PEND: samples: net: zperf: add AM62L EVM config fragment
Siddharth-Vadapalli-at-TI May 20, 2026
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
28 changes: 28 additions & 0 deletions LICENSES/BSD-3-Clause.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
BSD 3-Clause License

Copyright (c) [year], [fullname]

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
156 changes: 156 additions & 0 deletions LICENSES/CC-BY-4.0.txt

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions LICENSES/MIT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
47 changes: 46 additions & 1 deletion REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ path = [
"**/*.ecl",
"**/*.html",
"**/*.json",
"**/*.rst",
"**/*.yaml",
"**/*.yml",
"**/*_defconfig",
Expand All @@ -24,3 +23,49 @@ path = [
]
SPDX-License-Identifier = "Apache-2.0"
SPDX-FileCopyrightText = "Copyright The Zephyr Project Contributors"

[[annotations]]
path = "**/*.rst"
SPDX-License-Identifier = "CC-BY-4.0"
SPDX-FileCopyrightText = "Copyright The Zephyr Project Contributors"

# -----------------------------------------------------------------------------
# Licensing exceptions
# -----------------------------------------------------------------------------
#
# Zephyr as a whole is Apache-2.0 licensed, but it imports or reuses a few
# components that use other licenses. Each such component is described below as
# a single REUSE annotation and is rendered on the licensing documentation page
# (see doc/LICENSING.rst) by the "zephyr.licensing" Sphinx extension.
#
# The license metadata is standard REUSE/SPDX and the standard SPDX-FileComment
# holds the free-text rationale ("Impact"). SPDX has no non-deprecated file-level
# field for an upstream URL (the ArtifactOf* file tags were deprecated in favour
# of relationships, which REUSE.toml cannot express, and Package* fields are not
# valid on files), so three Zephyr-specific keys are used (the `reuse` tool
# ignores keys it does not know about):
#
# Zephyr-Description Short human description of the component, used as
# its title on the page. Its presence promotes a
# plain REUSE annotation to a documented exception.
# Zephyr-Origin URL of the upstream project the files come from.
# Zephyr-Kconfig-Condition Kconfig option(s) gating whether the files end up in
# a build, rendered as :kconfig:option: references.

[[annotations]]
path = [
"scripts/dashboard/static/css/bootstrap-chop.css",
"scripts/dashboard/static/js/bootstrap-chop.js",
]
SPDX-License-Identifier = "MIT"
SPDX-FileComment = "Used by the dashboard tool only and never linked into a Zephyr firmware image."
Zephyr-Description = "Bootstrap JavaScript and CSS Files"
Zephyr-Origin = "https://getbootstrap.com/"

[[annotations]]
path = "drivers/sensor/bosch/bmi08x/bmi08x_config_file.h"
SPDX-License-Identifier = "BSD-3-Clause"
SPDX-FileComment = "Sensor configuration data compiled into the firmware only when the BMI08x driver is enabled."
Zephyr-Description = "Bosch BMI08x Sensor Configuration File"
Zephyr-Origin = "https://github.com/BoschSensortec/BMI08x-Sensor-API"
Zephyr-Kconfig-Condition = "CONFIG_BMI08X"
3 changes: 3 additions & 0 deletions boards/ti/am62l_evm/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

if BOARD_AM62L_EVM

configdefault ETH_DRIVER
default y

if FLASH

config BOARD_TI_MSPI_FLASH_BOOT_MODE_RESET
Expand Down
36 changes: 36 additions & 0 deletions boards/ti/am62l_evm/am62l_evm_am62l3_a53.dts
Original file line number Diff line number Diff line change
Expand Up @@ -297,3 +297,39 @@ zephyr_udc0: &main_usb0 {
ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl>;
ti,vbus-divider;
};

&pktdma {
status = "okay";
};

&cpsw3g {
status = "okay";
};

&cpsw_port1 {
phy-handle = <&cpsw_phy1>;
};

&cpsw_port2 {
phy-handle = <&cpsw_phy2>;
};

&cpsw_mdio {
status = "okay";

cpsw_phy1: ethernet-phy@0 {
compatible = "ti,dp83867";
reg = <0>;
ti,interface-type = "rgmii-id";
ti,rx-internal-delay = <7>; /* 2 ns delay */
ti,tx-internal-delay = <0>; /* Delay added by MAC */
};

cpsw_phy2: ethernet-phy@1 {
compatible = "ti,dp83867";
reg = <1>;
ti,interface-type = "rgmii-id";
ti,rx-internal-delay = <7>; /* 2 ns delay */
ti,tx-internal-delay = <0>; /* Delay added by MAC */
};
};
2 changes: 1 addition & 1 deletion boards/ti/am62l_evm/am62l_evm_am62l3_a53.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ supported:
- uart
- shdc
- pwm
- netif:eth
testing:
ignore_tags:
- net
- bluetooth
vendor: ti
8 changes: 8 additions & 0 deletions boards/ti/am62l_evm/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ the TI AM62L platform. The board configuration provides support for:
- On-chip SRAM (oc_sram)
- UART interfaces (uart0 to uart6)
- I/O expander (via ti-io-exp snippet)
- CPSW3G Ethernet Switch with two 1Gbps capable MAC Ports

The board configuration also enables support for the semihosting debugging console.

Expand Down Expand Up @@ -85,6 +86,13 @@ Serial Port
This board configuration uses a single serial communication channel with the
MAIN domain UART (main_uart0).

CPSW3G (Common Platform Switch) Ethernet Switch
-----------------------------------------------

The CPSW3G Ethernet Switch integrated in the SoC has two 1 Gbps capable MAC Ports
which are brought out on the board and interface with the DP83867 Ethernet PHY.
CPSW3G enables Ethernet functionality on the board.

Building and Booting
*********************

Expand Down
1 change: 1 addition & 0 deletions drivers/ethernet/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ zephyr_library_sources_ifdef(CONFIG_ETH_SMSC91X eth_smsc91x.c)
zephyr_library_sources_ifdef(CONFIG_ETH_STELLARIS eth_stellaris.c)
zephyr_library_sources_ifdef(CONFIG_ETH_SY1XX eth_sensry_sy1xx_mac.c)
zephyr_library_sources_ifdef(CONFIG_ETH_TEST eth_test.c)
zephyr_library_sources_ifdef(CONFIG_ETH_TI_AM62L_CPSW eth_ti_am62l_cpsw.c)
zephyr_library_sources_ifdef(CONFIG_ETH_VIRTIO_NET eth_virtio_net.c)
zephyr_library_sources_ifdef(CONFIG_ETH_W5500 eth_w5500.c)
zephyr_library_sources_ifdef(CONFIG_ETH_W6100 eth_w6100.c)
Expand Down
1 change: 1 addition & 0 deletions drivers/ethernet/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ source "drivers/ethernet/Kconfig.stellaris"
source "drivers/ethernet/Kconfig.stm32_hal"
source "drivers/ethernet/Kconfig.sy1xx_mac"
source "drivers/ethernet/Kconfig.test"
source "drivers/ethernet/Kconfig.ti_am62l_cpsw"
source "drivers/ethernet/Kconfig.virtio_net"
source "drivers/ethernet/Kconfig.w5500"
source "drivers/ethernet/Kconfig.w6100"
Expand Down
76 changes: 76 additions & 0 deletions drivers/ethernet/Kconfig.ti_am62l_cpsw
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# TI AM62L CPSW Ethernet driver configuration

# Copyright (c) 2026 Texas Instruments Incorporated
# SPDX-License-Identifier: Apache-2.0

menuconfig ETH_TI_AM62L_CPSW
bool "TI AM62L CPSW Ethernet Driver"
default y
depends on DT_HAS_TI_AM62L_CPSW_ENABLED
select DYNAMIC_INTERRUPTS
select DMA
imply NVMEM if $(dt_compat_any_has_prop,$(DT_COMPAT_TI_AM62L_CPSW),nvmem-cells)
help
Enable TI AM62L CPSW (Common Platform Ethernet Switch) driver.
Uses the TI AM62L PKTDMA driver for DMA-based packet transmission
and reception. Requires the MDIO subsystem for PHY management via
the CPSW MDIO controller if Ethernet PHY(s) is(are) used with CPSW
MAC Ports.

if ETH_TI_AM62L_CPSW

config ETH_TI_AM62L_CPSW_TX_DESC_NUM
int "TX descriptor count"
default 128
help
Number of TX descriptors

config ETH_TI_AM62L_CPSW_RX_DESC_NUM
int "RX descriptor count"
default 128
help
Number of RX descriptors

config ETH_TI_AM62L_CPSW_TX_THREAD_STACK_SIZE
int "TX completion thread stack size"
default 2048
help
TX completion thread stack size

config ETH_TI_AM62L_CPSW_RX_THREAD_STACK_SIZE
int "RX thread stack size"
default 2048
help
RX thread stack size

config ETH_TI_AM62L_TX_THREAD_PRIO
int "TX completion thread priority"
default 2
help
TX completion thread priority

config ETH_TI_AM62L_RX_THREAD_PRIO
int "RX thread priority"
default 2
help
RX thread priority

config ETH_TI_AM62L_CPSW_TX_BUDGET
int "TX completion budget"
default 64
help
Number of TX completions processed before yielding

config ETH_TI_AM62L_CPSW_RX_BUDGET
int "RX budget"
default 64
help
Number of packets received before yielding

config ETH_TI_AM62L_CPSW_TX_DESC_ACQUIRE_TIMEOUT
int "TX descriptior acquire timeout"
default 100
help
Timeout in milliseconds for acquiring a TX descriptor

endif #ETH_TI_AM62L_CPSW
15 changes: 9 additions & 6 deletions drivers/ethernet/dwc_xgmac/eth_dwc_xgmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,7 @@ static void eth_dwc_xgmac_iface_init(struct net_if *iface)
* @param dev Pointer to the ethernet device
* @retval 0 upon successful completion
*/
static int eth_dwc_xgmac_start_device(const struct device *dev)
static int eth_dwc_xgmac_start_device(const struct device *dev, struct net_if *iface __unused)
{
const struct eth_dwc_xgmac_config *dev_conf = (struct eth_dwc_xgmac_config *)dev->config;
struct eth_dwc_xgmac_dev_data *dev_data = (struct eth_dwc_xgmac_dev_data *)dev->data;
Expand Down Expand Up @@ -1267,7 +1267,7 @@ static int eth_dwc_xgmac_start_device(const struct device *dev)
* @param dev Pointer to the ethernet device
* @retval 0 upon successful completion
*/
static int eth_dwc_xgmac_stop_device(const struct device *dev)
static int eth_dwc_xgmac_stop_device(const struct device *dev, struct net_if *iface __unused)
{
const struct eth_dwc_xgmac_config *dev_conf = (struct eth_dwc_xgmac_config *)dev->config;
struct eth_dwc_xgmac_dev_data *dev_data = (struct eth_dwc_xgmac_dev_data *)dev->data;
Expand Down Expand Up @@ -1521,7 +1521,9 @@ static inline void disable_filter_for_mac_addr(const struct device *dev, uint8_t
* (1) if existing configuration is equals to input configuration
* -ENOTSUP for invalid config type
*/
static int eth_dwc_xgmac_set_config(const struct device *dev, enum ethernet_config_type type,
static int eth_dwc_xgmac_set_config(const struct device *dev,
struct net_if *iface __unused,
enum ethernet_config_type type,
const struct ethernet_config *config)
{
struct eth_dwc_xgmac_dev_data *dev_data = (struct eth_dwc_xgmac_dev_data *)dev->data;
Expand Down Expand Up @@ -1592,9 +1594,9 @@ static int eth_dwc_xgmac_set_config(const struct device *dev, enum ethernet_conf
* @param dev Pointer to the ethernet device
* @return Enumeration containing the current XGMAC device's capabilities
*/
static enum ethernet_hw_caps eth_dwc_xgmac_get_capabilities(const struct device *dev)
static enum ethernet_hw_caps eth_dwc_xgmac_get_capabilities(const struct device *dev __unused,
struct net_if *iface __unused)
{
ARG_UNUSED(dev);
enum ethernet_hw_caps caps = (enum ethernet_hw_caps)0;

caps = (ETHERNET_LINK_1000BASE | ETHERNET_LINK_100BASE | ETHERNET_LINK_10BASE);
Expand Down Expand Up @@ -1626,7 +1628,8 @@ static enum ethernet_hw_caps eth_dwc_xgmac_get_capabilities(const struct device
* @param dev Pointer to the ethernet device
* @return Pointer to the current XGMAC device's statistics data
*/
static struct net_stats_eth *eth_dwc_xgmac_stats(const struct device *dev)
static struct net_stats_eth *eth_dwc_xgmac_stats(const struct device *dev,
struct net_if *iface __unused)
{
struct eth_dwc_xgmac_dev_data *dev_data = (struct eth_dwc_xgmac_dev_data *)dev->data;

Expand Down
8 changes: 5 additions & 3 deletions drivers/ethernet/eth_adin2111.c
Original file line number Diff line number Diff line change
Expand Up @@ -1216,9 +1216,9 @@ static void adin2111_port_iface_init(struct net_if *iface)
}
}

static enum ethernet_hw_caps adin2111_port_get_capabilities(const struct device *dev)
static enum ethernet_hw_caps adin2111_port_get_capabilities(const struct device *dev __unused,
struct net_if *iface __unused)
{
ARG_UNUSED(dev);
return ETHERNET_LINK_10BASE |
ETHERNET_HW_FILTERING
#if defined(CONFIG_NET_LLDP)
Expand All @@ -1228,6 +1228,7 @@ static enum ethernet_hw_caps adin2111_port_get_capabilities(const struct device
}

static int adin2111_port_set_config(const struct device *dev,
struct net_if *iface __unused,
enum ethernet_config_type type,
const struct ethernet_config *config)
{
Expand Down Expand Up @@ -1273,7 +1274,8 @@ static int adin2111_port_set_config(const struct device *dev,
}

#if defined(CONFIG_NET_STATISTICS_ETHERNET)
static struct net_stats_eth *adin2111_port_get_stats(const struct device *dev)
static struct net_stats_eth *adin2111_port_get_stats(const struct device *dev,
struct net_if *iface __unused)
{
struct adin2111_port_data *data = dev->data;

Expand Down
Loading
Loading