1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

513 Commits

Author SHA1 Message Date
Gunar Schorcht
75071319de cpu/stm32: define HSE_VALUE for tinyUSB Synopsys DWC2 driver 2022-10-04 11:10:43 +02:00
Gunar Schorcht
9cf0119233 pkg/tinyusb: add tinyusb_hw_defaults.h for platform specific defaults 2022-10-04 07:40:18 +02:00
Gunar Schorcht
76848492b0 cpu/stm32: add tinyUSB package support 2022-09-30 19:05:51 +02:00
benpicco
45afb8f986
Merge pull request #18644 from gschorcht/drivers/synopsys_dwc2
drivers: add driver for Synopsys DWC2 that is used as USB OTG peripheral on STM32 and ESP32x SoCs
2022-09-29 04:44:32 +02:00
Gunar Schorcht
78fc60c700 cpu/stm32: use usbdev_synopsys_dwc2 driver as periph_usbdev 2022-09-27 01:00:57 +02:00
Gunar Schorcht
7db66e49b3 drivers: add USB OTG FS/HS driver for Synopsys DWC2 IP core 2022-09-27 01:00:57 +02:00
chrysn
feff412bcc pkg: Move versions to dedicated line
Makefiles don't do comments, so these were forwarded into the variable.
*Most* users would expand the arguments to a shell where it'd be
ignored, but not all of them.

Contributes-To: https://github.com/RIOT-OS/RIOT/pull/18489

(This is also where the one version that is added here was removed).
2022-09-26 17:45:54 +02:00
Marian Buschsieweke
e402f1d885
Merge pull request #18418 from maribu/cpu/stm32/periph/stm32_eth_tracing
cpu/stm32/periph_eth: Add stm32_eth_tracing
2022-09-18 22:19:34 +02:00
Benjamin Valentin
838a5e4bd3 netdev_drivers: make sure to signal LINK_UP at least once 2022-09-16 22:57:28 +02:00
Benjamin Valentin
7abaae7bbd treewide: fix typos 2022-09-15 12:12:23 +02:00
Marian Buschsieweke
44b62e879d
cpu/stm32/periph_eth: add stm32_eth_tracing
Add tracing support via GPIOs to trace the basic state of the Ethernet
peripheral. The following signals are provided:

- One GPIO pin is toggled on entry of the Ethernet ISR
- On TX start an GPIO is set, on TX completion it is cleared
- On RX complete an GPIO is set, once this is passed to the upper layer
  the GPIO is cleared again

In order to reduce the overhead, GPIO LL is used. By default the
on-board LEDs are used as tracing GPIOs. This makes it easy to debug
when the state machine gets stuck without the need to attach a scope or
logic analyzer.
2022-09-14 14:00:27 +02:00
Marian Buschsieweke
efc307455e
cpu/stm32/periph_eth: increase debug output 2022-09-14 13:58:40 +02:00
Benjamin Valentin
74dc558972 cpu/{sam0_common, stm32}: select netdev_legacy_api in KConfig 2022-08-17 23:37:05 +02:00
Leandro Lanzieri
2dd59236c8
Merge pull request #18423 from MrKevinWeiss/pr/disable/hashchecks
.murdock: disable hash checks of kconfig/make
2022-08-17 18:30:36 +02:00
MrKevinWeiss
f79f43903d
cpu/periph_eth: Fix kconfig model
This probably can be done better as the periph_eth should not be
only part of the stm32 as the sam0 also uses it.
2022-08-17 14:37:22 +02:00
Marian Buschsieweke
276ad5716a
sys/net/gnrc/netif: allow checking if a netdev is legacy or new API
A if `netdev_driver_t::confirm_send()` is provided, it provides the
new netdev API. However, detecting the API at runtime and handling
both API styles comes at a cost. This can be optimized in case only
new or only old style netdevs are in use.

To do so, this adds the pseudo modules `netdev_legacy_api` and
`netdev_new_api`. As right now no netdev actually implements the new
API, all netdevs pull in `netdev_legacy_api`. If `netdev_legacy_api` is
in used but `netdev_new_api` is not, we can safely assume at compile
time that only legacy netdevs are in use. Similar, if only
`netdev_new_api` is used, only support for the new API is needed. Only
when both are in use, run time checks are needed.

This provides two helper function to check for a netif if the
corresponding netdev implements the old or the new API. (With one
being the inverse of the other.) They are suitable for constant folding
when only new or only legacy devices are in use. Consequently, dead
branches should be eliminated by the optimizer.
2022-08-17 12:56:07 +02:00
Marian Buschsieweke
bf67a9cdc5
cpu/stm32/periph_eth: optimize IRQ handler
We can just clear both TX and RX IRQ flags in any case, as clearing a
non-set flag is just a nop.
2022-08-09 07:33:34 +02:00
Marian Buschsieweke
82fbe08728
cpu/stm32/periph_eth: fix typo in initialization code
A single character type resulted in way fewer TX descriptors being
available than allocated. Not only resulted this in wasting memory,
but also when more iolist chunks than descriptors are send, the

```C
    assert(iolist_count(iolist) <= ETH_TX_DESCRIPTOR_COUNT);
```

does not trigger. As a result, old TX descriptors are being overwritten
in this case.
2022-08-08 15:13:27 +02:00
Leandro Lanzieri
1716638792
cpu/stm32/periph_eth: model in Kconfig 2022-07-25 11:08:32 +02:00
Dmitriy Okladov
9304e2bf37 cpu/stm32: support for B subfamily of g0 to determine ram length 2022-07-05 19:10:16 +03:00
Marian Buschsieweke
c9798c86ce
cpu/stm32/periph_eth: enable stm32_eth_link_up with lwip_ipv6
An network devices that supports netdev_driver_t::get(NETOPT_LINK, ...)
also has to emit NETDEV_EVENT_LINK_UP and NETDEV_EVENT_LINK_DOWN with
lwip for IPv6 duplicate address detection to work. The background is
that the STM32 Ethernet MAC requires a periodic timer to poll for the
state to emit these events. For this reason, `stm32_eth_link_up` was
introduced to allow applications to select if they need these events.

With this dependency in place, IPv6 addresses won't get stuck in a
tentative state any more.
2022-06-16 15:45:24 +02:00
benpicco
9b8f032c04
Merge pull request #17981 from maribu/gpio_ll/stm32
cpu/stm32: Implement periph/gpio_ll{,_irq} except for STM32F1
2022-05-24 11:34:53 +02:00
Marian Buschsieweke
bae91c1660
Merge pull request #17723 from benpicco/periph_timer_periodic-set_stopped
drivers/periph/timer: add TIM_FLAG_SET_STOPPED flag
2022-05-03 12:06:37 +02:00
Benjamin Valentin
d6b5bf33b2 cpu/stm32: timer: implement TIM_FLAG_SET_STOPPED 2022-04-28 13:27:59 +02:00
Marian Buschsieweke
8bab36f1c5
cpu/stm32: Implement periph/gpio_ll{,_irq} except for STM32F1
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Alexandre Abadie <alexandre.abadie@inria.fr>
2022-04-22 14:34:57 +02:00
eb6afbba98
cpu/stm32: adapt ltdc periph disp_dev interface 2022-04-13 12:49:58 +02:00
Fabian Hüßler
e261db28c9 cpu/stm32/include/periph/f7: add missing ADC_DEVS 2022-04-12 22:39:17 +02:00
Benjamin Valentin
0340ac6129 cpu: include IDLE in PM_NUM_MODES 2022-04-06 12:29:25 +02:00
Leandro Lanzieri
37908431a1
cpu/stm32/eth: call netdev register from the setup function 2022-03-24 09:44:54 +01:00
cb5fef4486
cpu/stm32: use HSI with I2C 2022-03-23 10:10:08 +01:00
a7c1be8844
cpu/stm32: f439 line has hardware rng 2022-03-21 08:11:46 +01:00
chrysn
facb5e633f
Merge pull request #17436 from Ollrogge/reserve_flash
cpu: add flash_writable section to linker script
2022-03-17 21:44:32 +01:00
Ollrogge
41f961a197 periph/flashpage: Add _in_address_space feature 2022-03-17 19:45:54 +01:00
benpicco
6ddcfc07fb
Merge pull request #17727 from jeandudey/2022_03_01-stm32l1-line
cpu/stm32: Add STM32_LINE cases for STM32L1xxx6
2022-03-03 17:28:56 +01:00
Jean-Pierre De Jesus DIAZ
919d1b5094
cpu/stm32: Add STM32_LINE cases for STM32L1xxx6 2022-03-01 17:20:16 +01:00
Jean-Pierre De Jesus DIAZ
d64bbdffe5
cpu/stm32: Fix CLOCK_CORECLOCK on stm32l0/l1
With the previous order of the operation there was a loss of precision
when using certain values as the divider
2022-03-01 17:11:16 +01:00
Fabian Hüßler
e3509fc023 cpu/stm32: add sampling time to F4/F7 ADC driver 2022-02-21 10:49:43 +01:00
Fabian Hüßler
fa52f1e986 cpu/stm32: Consider VBAT on CPU init 2022-02-21 10:49:43 +01:00
Fabian Hüßler
33c2944076 cpu/stm32: add VBAT for stm32 2022-02-21 10:49:43 +01:00
Karl Fessel
726c461cb5
Merge pull request #17574 from kfessel/p-fix-asserth
core/assert: avoid including panic.h with assert.h
2022-02-15 11:57:55 +01:00
Karl Fessel
5e42af7935 cpu/stm32: i2c include panic.h 2022-02-12 18:30:58 +01:00
MrKevinWeiss
58097a20aa
cpu/stm32: clk tree account for 16 MHz 2022-02-10 13:27:50 +01:00
MrKevinWeiss
656be63fc0
cpu/stm32/wl: Model clock tree in kconfig 2022-02-07 13:58:43 +01:00
MrKevinWeiss
68e94ea2aa
cpu/stm32: Add clock config for mp1 to kconfig 2022-02-03 12:20:53 +01:00
MrKevinWeiss
7bebbc5545
cpu/stm32: Fix clock config in kconfig 2022-02-01 13:58:07 +01:00
Fabian Hüßler
70d3d647d1 cpu/{cortexm_common, stm32}: add support for backup RAM 2022-01-21 15:53:18 +01:00
Francisco Molina
579ca6d941 drivers/periph_spi: spi_init_with_gpio_mode mode by reference 2022-01-18 16:22:18 +01:00
4e582b360f
cpu/stm32: add disp_dev interface for LTDC 2022-01-07 14:32:24 +01:00
deccc720e3
cpu/stm32: add support for LTDC periph 2022-01-07 14:32:24 +01:00
796e127df9
boards/stm32: replace GPIO_UNDEF with SPI_CS_UNDEF 2022-01-06 12:34:09 +01:00