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

42688 Commits

Author SHA1 Message Date
Gunar Schorcht
aac90884c2 tests/pkg_cryptoauthlib_internal-tests: blacklist GD32V boards 2023-02-21 15:05:07 +01:00
Gunar Schorcht
0c99859ff7 tests/nanocoap_cli: blacklist GD32V boards 2023-02-21 15:05:07 +01:00
Gunar Schorcht
8ab9164890 tests/gcoap_fileserver: blacklist GD32V boards 2023-02-21 15:05:07 +01:00
Gunar Schorcht
2808947991 tests/gcoap_dns: blacklist GD32V boards 2023-02-21 15:05:07 +01:00
Gunar Schorcht
a324352f33 examples/gcoap_dtls: blacklist GD32V boards 2023-02-21 15:04:13 +01:00
Gunar Schorcht
ebd377b271 examples/rust-gcoap: blacklist GD32V boards 2023-02-21 15:04:13 +01:00
Gunar Schorcht
31141a2350 drivers/periph_common: fix periph_usbdev_clk dependency in Kconfig
`periph_usbdev_clk` is just a pseudomodule that controls the clock selection which does not depend on full featured `periph_usbdev`.
2023-02-21 15:04:13 +01:00
Gunar Schorcht
c95bde4758 boards/seeedstudio-gd32: enable stdio_tinyusb_cdc_acm as default 2023-02-21 15:04:13 +01:00
Gunar Schorcht
fae506697f boards/sipeed-longan-nano: enable stdio_tinyusb_cdc_acm as default 2023-02-21 15:04:13 +01:00
Gunar Schorcht
80c2008bb1 boards/seeedstudio-gd32: add tinyUSB support 2023-02-21 15:04:13 +01:00
Gunar Schorcht
4540f96332 boards/sipeed-longan-nano: add tinyUSB support 2023-02-21 15:04:13 +01:00
Gunar Schorcht
dc7abdf723 pkg/tinyusb: add GD32V support 2023-02-21 15:04:13 +01:00
Gunar Schorcht
5e913a3974 boards/common/gd32v: add USB OTG support 2023-02-07 01:31:08 +01:00
Gunar Schorcht
7e0d1df9c3 drivers/usbdev_synopsys_dwc2: add config type for GD32V 2023-02-07 00:49:42 +01:00
Gunar Schorcht
47e6136269 cpu/gd32v/vendor: add USB OTG definitions
This file contains the definitions for the DWC2 USB OTG FS IP Core from Synopsys as also defined in the CMSIS Device Peripheral Access Layer for each STM32 MCU and in the same way for ESP32x SoCs. GD32V MCUs use the same USB IP Core, but the vendor headers for these MCUs use a different register structure and different identifiers. To be able to use the same driver `usbdev_synopsys_dwc2`, the relevant USB IP core definitions have been extracted from `cmsis/f7/Include/stm32f767xx.h` which is under the copyright of STMicroelectronics, see below. This is the same file used by ESP32x SoCs but modified for GD32V MCUs.
2023-02-07 00:48:21 +01:00
bors[bot]
fcc07a5248
Merge #19088
19088: boards: add esp32s3-pros3 support r=benpicco a=gschorcht

### Contribution description

This PR provides the support for [ESP32 ProS3](https://esp32s3.com/pros3.html#home) board from Unexpected Maker.

This board doesn't have a USB-to-Serial chip on board. Therefore, USB Serial/JTAG is used for STDIO and the board is flashed via the USB Seral/JTAG interface by default.

### Testing procedure

Flashing `tests/shell` should work.

### Issues/PRs references

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-06 15:30:15 +00:00
Gunar Schorcht
90dc95eba1 boards/common/stdio_tinyusb_cdc_acm: let tests wait for serial port
After a reset, it can take several seconds before the CDC ACM interface becomes available as serial device `ttyACMx`. This was a change that was already made for `stdio_cdc_acm` in #19128.
2023-02-06 16:19:11 +01:00
Gunar Schorcht
e3b1c81603 sys/usb_board_reset: allow to enable it also for stdio_usb_serial_jtag
Even if only `stdio_usb_serial_jtag` is enabled as STDIO, `usb_board_reset` is enabled since there should be a CDC ACM interface in any case. This is necessary, for example, to reset the board into bootloader if `stdio_cdc_acm` or `stdio_tinyusb_cdc_acm` was previously used.
2023-02-06 16:19:11 +01:00
Gunar Schorcht
df46c458e6 boards: add support for ESP32 ProS3 board 2023-02-06 16:19:11 +01:00
bors[bot]
ebc869a83f
Merge #19216
19216: drivers/mtd_sdcard: add mtd_sdcard_default module r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benpicco@beuth-hochschule.de>
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-05 20:30:12 +00:00
Benjamin Valentin
f78cdbb095 boards/sipeed-longan-nano: make use of mtd_sdcard_default 2023-02-05 19:05:44 +01:00
Benjamin Valentin
b1feb0fd93 boards/waspmote-pro: make use of mtd_sdcard_default 2023-02-05 19:05:43 +01:00
Benjamin Valentin
b71b097be4 boards/sensebox_samd21: make use of mtd_sdcard_default 2023-02-05 19:05:43 +01:00
Benjamin Valentin
d2988b00ac boards/waveshare-nrf52840-eval-kit: make use of mtd_sdcard_default 2023-02-05 19:05:43 +01:00
Benjamin Valentin
4a85d7905e boards/remote-revb: make use of mtd_sdcard_default 2023-02-05 19:05:43 +01:00
Benjamin Valentin
6f9dd8cf86 drivers/mtd_sdcard: add mtd_sdcard_default module 2023-02-05 19:03:09 +01:00
bors[bot]
3a3d7cb82e
Merge #19246
19246: sys/stdio_rtt: move documentation to doc.txt r=maribu a=aabadie



Co-authored-by: Alexandre Abadie <alexandre.abadie@inria.fr>
2023-02-05 15:00:47 +00:00
bb878f64da
sys/stdio_rtt: move documentation in doc.txt 2023-02-05 15:49:20 +01:00
bors[bot]
a05c4f1ccd
Merge #19241
19241: CI: .murdock: fix bors fast build r=kaspar030 a=kaspar030



Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2023-02-04 19:46:54 +00:00
bors[bot]
c3796d3bc6
Merge #19244
19244: Make: Add generate-Makefile.ci r=maribu a=bergzand

### Contribution description

This is the same as the create-Makefile.ci. The alias is added to stay in line with other generate-* Make targets. Now the documentation should also be valid again

### Testing procedure

The target should now match the documentation in the doxygen.

### Issues/PRs references

follow-up to #19239 

Co-authored-by: Koen Zandberg <koen@bergzand.net>
2023-02-04 17:34:15 +00:00
df18af5195
Make: default to docker with generate-Makefile.ci 2023-02-04 16:53:49 +01:00
820a895684
Make: rename create-Makefile.ci to generate-Makefile.ci
With this rename it is in line with the other generate-* targets
2023-02-04 16:51:36 +01:00
49da7a446a CI: .murdock: add some docs to CI_BASE_BRANCH and is_bors_build() 2023-02-04 15:38:23 +01:00
Benjamin Valentin
4e3151406c sys/vfs_default: make include save with !vfs module
This allows to remove #ifdefs on the board level.
2023-02-04 15:35:05 +01:00
bors[bot]
f3a487b5e4
Merge #12509
12509: black/white e-Paper/e-Ink display driver r=bergzand a=silkeh



Co-authored-by: Silke Hofstra <silke@slxh.eu>
2023-02-04 09:57:17 +00:00
Silke Hofstra
081a69b68e tests: add epd_bw_spi_disp_dev test 2023-02-03 22:55:45 +01:00
Silke Hofstra
d066588db7 tests: add epd_bw_spi test 2023-02-03 22:55:45 +01:00
76d8a7e732 CI: .murdock: get CI_BASE_COMMIT from previous merge for bors builds 2023-02-03 22:32:50 +01:00
bors[bot]
9027179fcc
Merge #19239
19239: Doc: document generate-makefile.ci r=maribu a=bergzand

### Contribution description

This documents the `generate-makefile.ci` target


### Testing procedure

Read the added section to the advanced build system tricks

### Issues/PRs references

None

Co-authored-by: Koen Zandberg <koen@bergzand.net>
2023-02-03 12:06:11 +00:00
fc471d659d
Doc: document generate-makefile.ci 2023-02-03 10:56:05 +01:00
bors[bot]
0fb6a09598
Merge #18903
18903: pkg/tinyusb: add tinyUSB netdev driver r=dylad a=gschorcht

### Contribution description

This PR adds the tinyUSB netdev driver.

The tinyUSB netdev driver is part of the tinyUSB package and is enabled by module `tinyusb_netdev`. It is available for boards that provide the `tinyusb_device` feature.

**Please note** Since the tinyUSB package is distinct from (and incompatible with) the USB stack provided around USBUS in RIOT (see USB), the tinyUSB netdev driver cannot be used together with with any USBUS device class.

The tinyUSB netdev driver uses Ethernet over USB and supports the following protocols:
- CDC ECM (Ethernet Control Model)
- CDC NCM (Network Control Model)
- RNDIS (Microsoft Remote NDIS)

While Linux and macOS support all these protocols, Microsoft Windows only supports the RNDIS protocol and since Windows version 11 also the CDC NCM protocol. macOS supports the RNDIS protocol since version 10.15 (Catalina).

Which protocol is used is selected by the corresponding pseudomodules `tinyusb_class_net_cdc_ecm`, `tinyusb_class_net_cdc_ncm` and `tinyusb_class_net_rndis`.

The CDC ECM protocol (`tinyusb_class_net_cdc_ecm`) and the RNDIS protocol (`tinyusb_class_net_rndis`) can be used simultaneously to support all operating systems, for example :
```
USEMODULE='tinyusb_netdev tinyusb_class_net_rndis tinyusb_class_net_cdc_ecm' \
BOARD=... make -C ... flash
 ```
In this case, the CDC ECM protocol is the default protocol and the RNDIS protocol the alternative protocol defined as second device configuration. The CDC NCM protocol cannot be used together with the CDC ECM or the RNDIS protocol.

This PR includes PR #18983 for now to be compilable. 

Comparison with USBUS CDC ECM (`nucleo-f767zi` board):
```
   text	   data	    bss	    dec	    hex	filename
  65916	    596	  18728	  85240	  14cf8	tests_pkg_tinyusb_netdev.elf
```
```
   text	   data	    bss	    dec	    hex	filename
  63120	    544	  15444	  79108	  13504	tests_usbus_cdc_ecm.elf

```

### Testing procedure

Use a board that is supported by tinyUSB. Compile and flash the test application for each protocol:

1. RNDIS
    ```
    BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
2. CDC ECM
    ```
    CLASS=tinyusb_class_net_cdc_ecm BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
3. CDC NCM
    ```
    CLASS=tinyusb_class_net_cdc_ncm BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
For each test, a network interface should be added on the host. Use command `ifconfig` on USB device and on the host and check that both have a link local address. In syslog there should be an output like the following:
<details>

```
Nov 13 18:14:46 gunny8 kernel: [4611465.480025] usb 1-2.2: new full-speed USB device number 28 using xhci_hcd
Nov 13 18:14:47 gunny8 kernel: [4611465.581641] usb 1-2.2: New USB device found, idVendor=1209, idProduct=7d01, bcdDevice= 1.00
Nov 13 18:14:47 gunny8 kernel: [4611465.581646] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 13 18:14:47 gunny8 kernel: [4611465.581650] usb 1-2.2: Product: nucleo-f767zi
Nov 13 18:14:47 gunny8 kernel: [4611465.581653] usb 1-2.2: Manufacturer: RIOT-os.org
Nov 13 18:14:47 gunny8 kernel: [4611465.581654] usb 1-2.2: SerialNumber: 6591620BCB270283
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.1066] manager: (usb0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/528)
Nov 13 18:14:47 gunny8 kernel: [4611465.594604] rndis_host 1-2.2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2.2, RNDIS device, fa:db:7c:1b:58:80
Nov 13 18:14:47 gunny8 mtp-probe: checking bus 1, device 28: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2"
Nov 13 18:14:47 gunny8 mtp-probe: bus: 1, device: 28 was not an MTP device
Nov 13 18:14:47 gunny8 systemd-udevd[17796]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 kernel: [4611465.643852] rndis_host 1-2.2:1.0 enp0s20f0u2u2: renamed from usb0
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.1833] device (usb0): interface index 508 renamed iface from 'usb0' to 'enp0s20f0u2u2'
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.1
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2037] device (enp0s20f0u2u2): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnetBridge: Adding interface enp0s20f0u2u2 index:508
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2075] device (enp0s20f0u2u2): carrier: link connected
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2129] settings: (enp0s20f0u2u2): created default wired connection 'Kabelgebundene Verbindung 2'
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <warn>  [1668359687.2142] device (enp0s20f0u2u2): connectivity: "/proc/sys/net/ipv4/conf/enp0s20f0u2u2/rp_filter" is set to "1". This might break connectivity checking for IPv4 on this device
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2151] device (enp0s20f0u2u2): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2
Nov 13 18:14:47 gunny8 systemd-udevd[17796]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2403] policy: auto-activating connection 'Kabelgebundene Verbindung 2' (0b1ae45e-c76e-3efb-a2cd-138ca2b2a59c)
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2414] device (enp0s20f0u2u2): Activation: starting connection 'Kabelgebundene Verbindung 2' (0b1ae45e-c76e-3efb-a2cd-138ca2b2a59c)
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2419] device (enp0s20f0u2u2): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2429] device (enp0s20f0u2u2): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2440] device (enp0s20f0u2u2): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2445] dhcp4 (enp0s20f0u2u2): activation: beginning transaction (timeout in 45 seconds)
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: Joining mDNS multicast group on interface enp0s20f0u2u2.IPv6 with address fe80::dba4:adb8:9ffe:d93e.
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: New relevant interface enp0s20f0u2u2.IPv6 for mDNS.
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: Registering new address record for fe80::dba4:adb8:9ffe:d93e on enp0s20f0u2u2.*.
Nov 13 18:14:47 gunny8 kernel: [4611465.895046] userif-1: sent link down event.
Nov 13 18:14:47 gunny8 kernel: [4611465.895052] userif-1: sent link up event.
```

</details>

Ping from and to the host.

### Issues/PRs references

Depends on PR https://github.com/RIOT-OS/RIOT/pull/18983

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-03 09:32:29 +00:00
bors[bot]
8700157f92
Merge #19220 #19232
19220: dist/tools/doccheck: Fix grep warning r=benpicco a=maribu

### Contribution description

Fix `grep: warning: stray \ before -` warnings.

### Testing procedure

```
$ ./dist/tools/doccheck/check.sh
```
Should no longer print lots of the warning anymore

### Issues/PRs references


19232: build system: Fix linker feature test with newlib 4.3.0 r=benpicco a=maribu

### Contribution description

Before the build system used something like

    echo "int main(){} void _exit(int n) {(void)n;while(1);}" | LC_ALL=C $(LINK) -xc - -o /dev/null -lc -Wall -Wextra -pedantic <FLAGS_TO_TEST>

to check for flags supported by the compiler (used as linker frontend). This however no longer works with newlib 4.3.0, which requires the symbols `_sbrk_r`, `_close_r`, `_lseek_r`, `_read_r`, and `_write_r` to be present. Instead, now a new file `minimal_linkable.c` was added that adds all the missing symbols and is used in the linker feature tests instead.

### Testing procedure

- No regressions on the CI
- No changes in binaries
- Building rust apps with newlib 4.3.0 should work again

### Issues/PRs references


Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2023-02-02 23:40:57 +00:00
Marian Buschsieweke
2b2506c052
build system: Fix linker feature test with newlib 4.3.0
Before the build system used something like

    echo "int main(){} void _exit(int n) {(void)n;while(1);}" | LC_ALL=C $(LINK) -xc - -o /dev/null -lc -Wall -Wextra -pedantic <FLAGS_TO_TEST>

to check for flags supported by the compiler (used as linker frontend).
This however no longer works with newlib 4.3.0, which requires the
symbols `_sbrk_r`, `_close_r`, `_lseek_r`, `_read_r`, and `_write_r` to
be present. Instead, now a new file `minimal_linkable.c` was added that
adds all the missing symbols and is used in the linker feature tests
instead.
2023-02-02 20:47:37 +01:00
bors[bot]
247b8d0a47
Merge #19235 #19236 #19237 #19238
19235: pkg/nimble/autoadv: fix flag comparisons r=benpicco a=kaspar030



19236: sys/vfs: vfs.c missing includes r=benpicco a=kaspar030



19237: sys/net/crosslayer/inet_csum: add missing "modules.h" include r=benpicco a=kaspar030



19238: sys/net/grnc/netreg: avoid creating an infinite loop r=benpicco a=benpicco



Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-02 17:52:10 +00:00
Benjamin Valentin
b7a5261508 sys/net/grnc/netreg: avoid creating an infinite loop 2023-02-02 17:56:19 +01:00
1db6c4a9de sys/net/crosslayer/inet_csum: add missing "modules.h" include 2023-02-02 16:37:21 +01:00
177b50dfc2 sys/vfs: vfs.c: add missing "container.h" include 2023-02-02 16:34:28 +01:00
47a610e732 sys/vfs: vfs.c: add missing modules.h include 2023-02-02 16:34:28 +01:00
ebc643ffb0 pkg/nimble/autoadv: fix flag comparisons 2023-02-02 15:45:00 +01:00
bors[bot]
7d1ef9d99b
Merge #18863
18863: boards/esp32s2-mini: add definition for ESP32 S2 Mini r=gschorcht a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@bht-berlin.de>
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-02 14:26:25 +00:00