104 Commits

Author SHA1 Message Date
Andreas Galauner
d9f708ca6d Implement MII for STM32 V1 ethernet peripheral 2025-04-15 04:14:44 +02:00
Dario Nieuwenhuis
d41eeeae79 Remove Peripheral trait, rename PeripheralRef->Peri. 2025-03-27 15:18:06 +01:00
Dario Nieuwenhuis
b1245858f3 stm32/eth: rename PHY->Phy, GenericSMI -> GenericPhy. Remove unneeded unsafes.
We shouldn't use `unsafe` to mark merely "dangerous" actions, only actions that
actually cause UB.
2025-01-26 22:43:28 +01:00
nikvoid
afe6b9a192 split PHY constructor to new and new_auto 2025-01-23 13:34:54 +02:00
nikvoid
dff8be9bb6 run rustfmt 2025-01-22 18:11:32 +02:00
nikvoid
83ccbf48d7 remove cortex-m delay 2025-01-22 18:09:25 +02:00
nikvoid
2d7e0b6e0f use Delay from embassy-time to wait for PHY response 2025-01-22 13:43:45 +02:00
nikvoid
5885369f47 Option to detect Ethernet PHY address automatically 2025-01-22 13:23:29 +02:00
elagil
eba8089601 chore: fix build 2025-01-03 18:18:00 +01:00
Ian McKernan
28d58578d6 remove trailing space from comment 2025-01-01 21:59:29 -08:00
Ian McKernan
9e9fa1cbef added fix for https://github.com/embassy-rs/embassy/issues/2496 in the v1 driver 2025-01-01 21:47:44 -08:00
Dario Nieuwenhuis
aaad8450e9
Use inline const for initializing arrays. (#3567) 2024-11-24 20:58:48 +01:00
Krzysztof Królczyk
e93ac532ac
feat/stm32: disable multicast filtering on eth v2
Initially, this was feature-gated, but has been requested
to be changed to be unconditional, see PR 3488 for reasons.

When filtering is enabled, it intercepts and drops silently
ipv6 packets, possibly somewhere around
smoltcp::iface::interface::ipv6 lines 36, 44 in current head
sha e9b66eadaeacef758ebc4a12378f8d2162144cf4

With filtering disabled (this patch), packets are received
and communication over ipv6 is possible, neighbor discovery works.

related: #2496

Signed-off-by: Krzysztof Królczyk <Krzysztof.Krolczyk@o2.pl>
2024-11-01 19:02:10 +01:00
Dario Nieuwenhuis
9a45d776d8 rustfmt for new nightly. 2024-10-14 00:12:45 +02:00
Gerhard de Clercq
5ea934d4ba embassy_stm32/eth: support compliance testing
This change adds the possibility to perform compliance testing with
STM32 systems by directly exposing SMI when needed. Users can
then use this to configure PHY registers for test modes.
2024-09-20 09:57:31 +02:00
Jan Špaček
94007ce6e0 stm32/gpio: refactor AfType 2024-06-16 21:11:55 +02:00
Dario Nieuwenhuis
fb67fe0a6c stm32: add support for STM32H7[RS] "bootflash line", add HIL tests. 2024-05-01 02:24:45 +02:00
Dario Nieuwenhuis
6f44d7a9df stm32: update metapac. Adds U5 LPDMA, fixes ADC_COMMONs. 2024-04-29 20:52:27 +02:00
Dario Nieuwenhuis
5732ee7ca9 Reduce use of the full futures crate. 2024-04-26 23:22:25 +02:00
Dario Nieuwenhuis
2bca875b5f stm32: use private_bounds for sealed traits. 2024-03-23 01:38:51 +01:00
Stefan Gehr
b9d0069671
correct spelling of the word "receive" 2024-02-03 14:56:31 +01:00
Dario Nieuwenhuis
9866847375 stm32: autogenerate clocks struct, enable mux for all chips. 2024-02-02 23:24:34 +01:00
Dario Nieuwenhuis
e613324e16 stm32/eth: rename new_rmii to new, update metapac to fix issues with PC2_C. 2024-02-01 01:39:52 +01:00
Simon B. Gasse
42d8f3930a Implement MII interface
- Extend the eth/v2 module to support MII besides RMII.
- Replace `Ethernet::new` with `Ethernet::new_mii` and
  `Ethernet::new_rmii`.
- Update ethernet examples.
- Add example for MII ethernet.
2024-02-01 01:33:34 +01:00
Dario Nieuwenhuis
49534cd405 stm32: more docs. 2023-12-19 00:10:36 +01:00
Dario Nieuwenhuis
124478c5e9 stm32: more docs. 2023-12-18 19:11:23 +01:00
Dario Nieuwenhuis
80c9d04bbd stm32: add some docs. 2023-12-18 00:53:18 +01:00
xoviat
553f0158c0 stm32: resolve eth/v2 security bug
fixes #2129
2023-11-07 15:39:06 -06:00
xoviat
b24520579a rcc: ahb/apb -> hclk/pclk 2023-10-15 19:51:35 -05:00
Gabriel Górski
7526b8edba stm32/eth: Move phy_addr from Ethernet to PHY
Previously, PHY addressing was a concern of the `Ethernet` struct
which limited the `PHY` implementations which very often have to manage
multiple PHYs internally and thus possibly need to address many of them.

This change extends `StationManagement` to allow addressing different
PHY addresses via SMI.
2023-10-09 13:46:56 +02:00
xoviat
39f1b26a39 stm32: update metapac and remove sbs 2023-09-28 19:21:02 -05:00
Dario Nieuwenhuis
6200d22438 stm32/eth: fix receiving large frames on v2. 2023-09-28 05:12:35 +02:00
Dario Nieuwenhuis
e03239e88d stm32: centralize enabling pwr, syscfg, flash. 2023-09-25 01:07:55 +02:00
Ruben De Smet
4afdce4ec5
Introduce driver::HardwareAddress without smoltcp dependency 2023-07-31 14:21:26 +02:00
Dario Nieuwenhuis
036e6ae30c
Rename embassy-hal-common to embassy-hal-internal, document it's for internal use only. (#1700) 2023-07-28 13:23:22 +02:00
xoviat
55ac480cb0 stm32/eth: fix cfg(not(time)) 2023-07-17 16:24:09 -05:00
xoviat
17d5e1c470 stm32/eth: add set_poll_interval 2023-07-15 12:02:08 -05:00
xoviat
975a780efe stm32/eth: impl. poll interval 2023-07-15 09:57:09 -05:00
xoviat
c3774607a5 stm32/eth: convert static metho 2023-07-15 09:37:25 -05:00
xoviat
48b37aa2bf stm32/eth: refactor genericsmi 2023-07-15 09:32:36 -05:00
Dario Nieuwenhuis
e892014b65 Update stm32-metapac, includes chiptool changes to use real Rust enums now. 2023-06-29 02:01:33 +02:00
Dario Nieuwenhuis
558918651e stm32: update stm32-metapac. 2023-06-19 03:22:12 +02:00
Dario Nieuwenhuis
921780e6bf Make interrupt module more standard.
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.

This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
  - It works with `cortex-m` functions for manipulating interrupts, for example.
  - It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
2023-06-08 18:00:48 +02:00
Dario Nieuwenhuis
404aa29289 cortex-m: remove owned interrupts. 2023-06-01 03:25:19 +02:00
xoviat
316be179af stm32: move to bind_interrupts
disable lora functionality for now
2023-05-24 17:29:56 -05:00
Dario Nieuwenhuis
611d023829 stm32: add H5 support. 2023-04-06 18:59:37 +02:00
Davide Della Giustina
c0e40b887b
Apply fix 2023-03-01 20:57:13 +00:00
Davide Della Giustina
3c601bf8d2
PacketQueue::init() does not need to be unsafe 2023-02-28 18:04:43 +00:00
Davide Della Giustina
485bb76e46
Implemented suggestions from @Dirbaio 2023-02-28 17:39:02 +00:00
Davide Della Giustina
c1e93c0904
PacketQueue::new() uses ::init() when in nightly 2023-02-28 14:34:26 +00:00