Commit graph

1211 commits

Author SHA1 Message Date
Declan Snyder
3d8196f41b drivers: nxp_enet: Use hwinfo API for unique mac
Use the HWINFO API for getting the unique mac address, and use the
pre-existing hardcoded macros as fallbacks if hwinfo is not implemented
properly.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-18 17:49:41 -04:00
Fin Maaß
cf8049a9ed drivers: ethernet: phy: tja11xx: Wrap driver instances in device API macro
Use the device API macro to place the driver API instance into an iterable
section.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-18 09:30:43 -04:00
Fin Maaß
1497ae6d30 drivers: mdio: remove unused bus_enable/disable
remove unused bus_enable/disable, they don't
need to be implemented, if they are not needed.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 17:46:56 +02:00
Fin Maaß
66329deb9c drivers: ethernet: phy: phy_mii: start autoneg in cfg_link
already (re-)start autonegotiation in phy_mii_cfg_link.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
97c9f0edad drivers: ethernet: phy_mii: check return values in init
check return values in init.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
38fb41a9cb drivers: ethernet: phy_mii: check condition explicitly
check condition explicitly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
6838c57679 drivers: ethernet: phy_mii: add support for disabling auto-neg
Adds support for disabling auto-negotiation.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
f24426b31f drivers: net: ethernet: phy: add support for disabling auto-negotiation
Add option in enum phy_link_speed to disable auto-negotiation.
This allows PHY drivers to support disabling auto-negotiation.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
847be49dbd drivers: ethernet: phy: add common functions for PHYs
This commit adds common functions for PHYs to the mii driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Fin Maaß
b051c7e550 drivers: ethernet: phy: remove unused/wrong cfg_link
if we can't use cfg_link to (re-)configure the link,
we don't need it and shouldn't have it.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-17 16:08:22 +02:00
Venkatesh Odela
b052a086a4 ethernet: phy: dp83867: Add support for configurable internal RGMII delays
Add support for setting RGMII RX and TX internal delays via DT properties:
`ti,rx-internal-delay` and `ti,tx-internal-delay`.

Signed-off-by: Venkatesh Odela <venkatesh.odela@amd.com>
2025-06-17 16:07:42 +02:00
Benjamin Cabé
c2d52c7f4b drivers: ethernet: remove stray semicolon vnd,ethernet
Fix trivial typo

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-16 10:43:20 -04:00
Fin Maaß
c481fedc5b drivers: ethernet: phy: only use one worker
only use one worker for monitoring and
autoneg.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-13 10:12:46 -07:00
Fin Maaß
b0048e34cd drivers: ethernet: phy: use kernel timepoint api
use kernel timepoint api.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-13 10:12:46 -07:00
Adib Taraben
9b8be4971e drivers: ethernet: nxp: timestamping to all potential packets.
add timestamping on Tx to packets marked for timestamping
add timestamping on Rx to all packets for later use
fix race condidition on adding timestamp when sending delay_req

Signed-off-by: Adib Taraben <theadib@gmail.com>
2025-06-13 10:40:49 -04:00
Fin Maaß
242d348fca drivers: ethernet: stm32: stop hal before config
make sure the hal is stopped, before
configuring the link. The phy can change the
speed without notifying a link down in between.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-13 07:39:42 +02:00
Kevin Shaju
7e56d134c2 drivers: net: phy: Add tja11xx driver
Adds the c22 tja11xx driver.

Signed-off-by: Kevin Shaju <kevin.shaju@accenture.com>
2025-06-12 15:04:32 -07:00
Fin Maaß
dfb5a31b3e drivers: ethernet: phy: add dt prop for default speeds
add dt prop for default speeds, that the phy is
configured on init by default.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-12 11:44:46 +02:00
Stanislav Poboril
34f9cd9490 drivers: ethernet: eth_nxp_enet_qos: increase default buffer descriptors
Increased the default number of TX and RX buffer descriptors from 4 to
16. Since the current default buffer size (CONFIG_NET_BUF_DATA_SIZE) is
128, increasing the number of RX buffers is needed to be able to receive
at least one frame of a maximum size split between multiple buffers.

The default number of TX buffers was increased to match the number of RX
buffers and to be able to transmit large frames with many fragments.

Added build-time configuration validation to ensure that the combined
size of all RX buffers is sufficient to receive a maximum-sized Ethernet
frame.

Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
2025-06-11 16:23:37 -07:00
Stanislav Poboril
4b06f2306d drivers: ethernet: eth_nxp_enet_qos: reassemble split frames
DMA copies frames which cannot fit into a single buffer into
multiple receive buffers. Updated the receiving code to combine
these buffers into a net_pkt with multiple fragments.

This allows the driver to handle larger Ethernet frames that
span across multiple DMA buffers.

Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
2025-06-11 16:23:37 -07:00
Stanislav Poboril
f2378172d5 drivers: ethernet: eth_nxp_enet_qos: fix rx buffer processing order
Always reading from descriptor with index 0 could cause processing
of the buffers in a different order than they were received. Fixed by
reading from the next unprocessed position in the ring of descriptors
instead.

Fixed unused variable warnings.

Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
2025-06-11 16:23:37 -07:00
Fin Maaß
f569bb523d drivers: ethernet: phy_mii: restart autoneg after phy_configure_link
make sure that autonegotiation is restarted, after
changing the speeds. Also make sure to only write
the changed registers, as mdio is pretty slow.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:21:21 -07:00
Fin Maaß
b1483a69d6 drivers: ethernet: phy_mii: correct indentation
correct indentation

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:21:21 -07:00
Fin Maaß
ed4d421ace drivers: ethernet: remove phy related configs from eth config
remove phy related configs from eth config.
phy related configs chould go directly into the phy.
Most ethernet drivers didn't support the now removed
functions yet. Users should instead use `phy_configure_link()`
together with the `net_eth_get_phy()` function.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:17:37 -07:00
Fin Maaß
c169ac07a0 drivers: ethernet: remove get configs that are unused
remove get configs that are unused by the
ethernet mgmt api.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:17:37 -07:00
Fin Maaß
7505ef3f04 drivers: ethernet: phy: mii: simplify if all are fixed link
If all instances are fixed link, remove code that is
not needed for that.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-06 08:42:41 +02:00
Derek Snell
c65100b521 drivers: ethernet: eth_nxp_enet_qos_mac: remove unused variables
Read MAC registers to clear flags without using variables to avoid
compiler warnings.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-06-06 08:41:29 +02:00
Adib Taraben
293b8d6003 drivers: enet: eth_nxp_enet_qos_mac: handle errors in RX queue worker
Handle each error individually.
Do not skip RX loop on first error.
Revise DMA buf size to CONFIG_NET_BUF_DATA_SIZE.

Signed-off-by: Adib Taraben <theadib@gmail.com>
2025-06-02 22:10:27 +02:00
Tu Nguyen Van
0e8fdf6b56 drivers: ethernet: adapt code with new RTD 2.0.1
update members in struct Netc_Eth_Ip_StationInterfaceConfigType
in RTD 2.0.1 for both psi and vsi driver code.

Netc_Eth_Ip_VsiToPsiMsgType need to relocate nocache section
in RTD 2.0.1

Signed-off-by: Tu Nguyen Van <tu.nguyenvan@nxp.com>
2025-05-28 05:54:38 +02:00
Yangbo Lu
2da6257bec drivers: eth_nxp_enet: support handling ENET timestamp events
The ENET timestamp events may be via ENET IRQ rather than ENET
timer IRQ handled in ptp driver for some platforms like i.MX RT1060.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-21 08:02:22 +02:00
Frank Duerr
3cd795ba59 drivers: ethernet: fixed calling mutex from ISR
The NXP ENET driver used a mutex inside an ISR.
Since mutexes are not allowed in ISR, an assertion had been triggered.
The mutex is not required since a semaphore ensures sequential writing
(in ISR) and subsequent reading (after eth_wait_for_ptp_ts()).
Fixed by removing calls to mutex.

Signed-off-by: Frank Duerr <frank.duerr@ipvs.uni-stuttgart.de>
2025-05-16 19:00:38 +02:00
Fin Maaß
003aa520d0 drivers: ethernet: litex: add length to log
log the length, if obtaining a rx buffer fails.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-12 16:47:41 +02:00
Alberto Escolar Piedras
f01a96c2f3 drivers/ethernet/eth_native_tap: Avoid reusing tag name
Don't use the same name for the structure instance and type.
As that is a violation of MISRA-C 2012 rule 5.7.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-05-12 09:47:59 +02:00
Seppo Takalo
673853ae5a drivers: eth: native_tap: Init MAC properly
Set static or random MAC before calling net_linkaddr_set().

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-05-08 15:56:27 +02:00
Dean Sellers
be894849f1 drivers: ethernet: enc28j60: Add set config for runtime macaddr
Allow runtime setting of the MAC address for this driver.

Signed-off-by: Dean Sellers <dsellers@evos.com.au>
2025-05-07 11:44:50 +02:00
Immo Birnbaum
3dcc1d2dd6 drivers: ethernet: xlnx_gem: add set_config function
Add an implementation for the Ethernet API's set_config
hook. Supported features:
- change MAC address at run-time
- enable/disable promiscuous mode if enabled at system level

Signed-off-by: Immo Birnbaum <mail@birnbaum.immo>
2025-05-07 03:59:23 +02:00
Robert Hancock
3a0f26f02a drivers: ethernet: vsc8541: add RGMII clock delay configuration
As the code noted, the RGMII RX and TX clock delay values may need to
change depending on the MAC configuration or the PCB layout. Add
properties to allow configuring these in the device tree, defaulting to
the previous hard-coded values if not present.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-05-05 21:57:05 +02:00
Fin Maaß
1736736454 drivers: ethernet: stm32: remove asserts and move var initialization
remove unneded asserts and move variables initialization

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
745d76292a eth: stm32: streamline eth_initialize function
streamline eth_initialize function by removing
redundant variable assignments

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
bccd8abe0e ethernet: stm32: use HAL_ETH_SetMACFilterConfig
use HAL_ETH_SetMACFilterConfig for all soc, that
support hal api v2

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
6978f24e61 ethernet: stm32: use DEVICE_DT_GET(STM32_CLOCK_CONTROL_NODE)
use DEVICE_DT_GET(STM32_CLOCK_CONTROL_NODE) directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
d1f63abc78 ethernet: stm32: use DT_INST_*
use DT_INST_* where possible

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Yangbo Lu
383d4f499e drivers: eth_nxp_enet: fix data share with ptp driver
The enet handle in mac driver was not shared with ptp driver
properly. This was causing wrong TX timestamp.
This patch is to fix it.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-02 09:17:12 +02:00
Cliff Brake
346bd7d16d drivers: eth/mdio: esp32: enable GPIO0 for phy clock out
Currently, GPIO16/17 are supported for Ethernet phy
clock out, but some boards are also using GPIO0.
This change allows GPIO0 to be configured.

Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
2025-05-01 09:34:13 +02:00
Fin Maaß
3a195a08da drivers: net: ethernet: change ETHERNET_LINK_*BASE_T
change ETHERNET_LINK_*BASE_T to ETHERNET_LINK_*BASE.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-28 09:22:09 +01:00
Fin Maaß
203ca6fcde drivers: ethernet: phy: rename LINK_*_*BASE_T
rename  LINK_*_*BASE_T to  LINK_*_*BASE

speed options for ethernet drivers shouldn't end with a _T, implying
that ethernet is only supported via a twisted pair cable.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-28 09:22:09 +01:00
Fin Maaß
780379e333 drivers: nxp_enet: move phy_link_callback_set()
move phy_link_callback_set() to the iface init,
so we don't have to manually check the link state,
as phy_link_callback_set() will also invoke the callback.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-25 18:58:35 +02:00
Jukka Rissanen
f3cd029cce drivers: eth: e1000: Add Ethernet statistics support
Support e1000 driver Ethernet statistics if relevant config
options are enabled.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-04-24 20:27:58 +02:00
Yangbo Lu
12ccaa1b46 drivers: ethernet: dsa_nxp_imx_netc: adapt to new DSA framework
Adapted to use new DSA framework. And related platforms converted
in samples too.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-04-24 01:26:46 +02:00
Yangbo Lu
2967b8db7e drivers: ethernet: eth_nxp_imx_netc: support no-tag type DSA conduit
Added support for no-tag type DSA conduit.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-04-24 01:26:46 +02:00