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

44452 Commits

Author SHA1 Message Date
krzysztof-cabaj
b11c22c85f examples/gcoap: add saml11-xpro to CI boards with insufficient memory 2023-09-19 09:30:59 -04:00
Gunar Schorcht
c58d71a2ef boards/seeedstudio-gd32: fix doc for doxygen 1.9.4 2023-09-18 18:25:51 +02:00
Gunar Schorcht
64a95a29b0 boards/sipeed-longan-nano-tft: fix doc for doxygen 1.9.4 2023-09-18 18:25:42 +02:00
Gunar Schorcht
ac52818a81 boards/sipeed-longan-nano: fix doc for doxygen 1.9.4 2023-09-18 18:25:36 +02:00
Gunar Schorcht
77769905cd boards/slstk3701a: add Silabs EFM32 Giant Gecko GG11 Starter Kit 2023-09-18 12:40:33 +02:00
Gunar Schorcht
b34f48c233 drivers/usdev_synopsys_dwc2: enable EFM32GG11B support 2023-09-18 12:40:33 +02:00
Gunar Schorcht
59daab0ba7 cpu/efm32: add EFM32GG11 family 2023-09-18 12:40:33 +02:00
Gunar Schorcht
165f86ad4c cpu/efm32: add family EFM32GG11 (generated with EFM2RIOT) 2023-09-18 12:40:33 +02:00
bors[bot]
9609a49da7
Merge #19924 #19925
19924: drivers/pcf857x: Move compile time check to compilation unit r=maribu a=maribu

### Contribution description

This allows including the header without using the module. Obviously, calls to the functions provided by the header won't like without using the module. But including the header can still be useful for e.g.:

    if (IS_USED(MODULE_PCF857x)) {
        /* make use of the module */
    }

In the above example all calls to pcf857x functions would be optimized out when the module is not used, full compile checks happen in either case.

### Testing procedure

- binaries should not change
- including the pcf857x header should work without having selected one of the pcf857x variants, if the driver is not actually used
    - when calling any of the functions provided, linking should fail
    - when using the `pcf857x` module without any variant, compiling should still fail with a message indicating that (at least) one of the pcf857x needs to be selected

### Issues/PRs references

None

19925: cpu/sam3: assert valid freq in timer_init() r=maribu a=maribu

### Contribution description

The API of timer_init() expects callers to know what frequencies are supported and only use valid frequencies. So let's add an `assert()` to aid debugging if the app uses an invalid.

### Testing procedure

- any valid application should compile and work as before
- an application using an unsupported timer frequency should trigger an `assert()`, rather than letting the timer silently run at a (possibly widely) different frequency

### Issues/PRs references

None

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
2023-09-15 19:05:44 +00:00
Marian Buschsieweke
63caa45746
cpu/sam3: assert valid freq in timer_init()
The API of timer_init() expects callers to know what frequencies are
supported and only use valid frequencies. So let's add an `assert()`
to aid debugging if the app uses an invalid.
2023-09-15 12:58:31 +02:00
Marian Buschsieweke
d0fccdb549
drivers/pcf857x: Move compile time check to compilation unit
This allows including the header without using the module. Obviously,
calls to the functions provided by the header won't like without using
the module. But including the header can still be useful for e.g.:

    if (IS_USED(MODULE_PCF857x)) {
        /* make use of the module */
    }

In the above example all calls to pcf857x functions would be optimized
out when the module is not used, full compile checks happen in either
case.
2023-09-15 12:52:58 +02:00
bors[bot]
7336d9c10a
Merge #19922
19922: boards/msb-430: Fix periph config & improve doc r=maribu a=maribu

### Contribution description

tl;dr: This fixes the periph config of the MSB-430 board and improves the documentation.

The pins P5.2, P5.1, P5.3 configured as SPI pins are only routed to USART1 and not to USART0, but previously USART0 was configured as peripheral backing the bus. This fixes the peripheral configuration by changing it to USART1.

This is quite unfortunate as USART1 is also used to provide the UART interface used for `stdio`. Hence, one can either use `stdio` or SPI. A feature conflict between UART and SPI has therefore been added.

Note that while it would be possible to use P3.2, P3.1, P3.3 to provide SPI with USART0, this would not work in practise: P3.1 and P3.3 are connected to the CC1020 transceiver.

Switching to P3.4/P3.5 for UART to provide it using USART 0 would also resolve the resource conflict. However, these pins are not available via any of the header and would require soldering the UART<->USB adapter directly to the pins of the MCU chip on the PCB. It is therefore much more user friendly to keep the UART bus backed by USART1 to use pins P3.6 and P3.7 that are easily accessible via the pin header.

### Testing procedure

![20230914_14h59m43s_grim](https://github.com/RIOT-OS/RIOT/assets/2041729/f8220a56-6093-4924-8539-9fcb499c6fa6)

Check in above screenshot of the datasheet that P5.2, P5.1, and P5.3 indeed can only provide SPI via USART 1, as indicated by the names SOMI1 (SOMI = slave out, master in ≈ master in, slave out = MISO; 1 for USART 1), SIMO1, and UCLK1 (UCLK = USART clock, used as SCK in SPI mode or SCL in I2C mode).

### Issues/PRs references

None


Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
2023-09-14 15:13:13 +00:00
Marian Buschsieweke
0ae471116e
boards/msb-430: Fix periph config & improve doc
The pins P5.2, P5.1, P5.3 configured as SPI pins are only routed to
USART1 and not to USART0, but previously USART0 was configured as
peripheral backing the bus. This fixes the peripheral configuration by
changing it to USART1.

This is quite unfortunate as USART1 is also used to provide the UART
interface used for `stdio`. Hence, one can either use `stdio` or SPI.
A feature conflict between UART and SPI has therefore been added.

Note that while it would be possible to use P3.2, P3.1, P3.3 to provide
SPI with USART0, this would not work in practise: P3.1 and P3.3 are
connected to the CC1020 transceiver.

Switching to P3.4/P3.5 for UART to provide it using USART 0 would also
resolve the resource conflict. However, these pins are not available
via any of the header and would require soldering the UART<->USB
adapter directly to the pins of the MCU chip on the PCB. It is therefore
much more user friendly to keep the UART bus backed by USART1 to use
pins P3.6 and P3.7 that are easily accessible via the pin header.
2023-09-14 14:38:05 +02:00
Gunar Schorcht
bdfbe6f8a6 periph/sdmmc: add ADD_CMD12 feature in Kconfig 2023-09-14 10:01:14 +02:00
bors[bot]
e15304788b
Merge #19921
19921: dist/tools/pyterm: set exclusive access on port r=benpicco a=benpicco




Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-09-13 11:22:52 +00:00
Benjamin Valentin
dad593a5f5 dist/tools/pyterm: set exclusive access on port
A common source of error is that a user connects to a serial port that
has already been opened in another terminal.
This may lead to garbled output or no output at all.

To avoid this, claim exclusive access on the serial port so we get a
proper error instead of corrupted output.
2023-09-13 12:04:52 +02:00
bors[bot]
d9367b14e7
Merge #19920
19920: gnrc_ipv6_nib: disable router advertisements on interface startup r=miri64 a=benpicco





Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-09-13 07:20:15 +00:00
bors[bot]
f32b661666
Merge #19899
19899: drivers/sdmmc: store SDMMC device descriptor references in XFA r=gschorcht a=gschorcht

### Contribution description

SDIO/SD/MMC device descriptor references are now defined as members of an XFA array `sdmmc_devs`. The i-th device in this array can then be accessed with `sdmmc_devs[i]`. The number of SDIO/SD/MMC device descriptors `SDMMC_NUMOF` is `XFA_LEN(sdmmc_devs)`.

### Testing procedure

Green CI

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-09-12 13:02:17 +00:00
Gunar Schorcht
4a6f4ad798 drivers/sdmmc: store SDMMC devs in XFA 2023-09-12 14:30:18 +02:00
Benjamin Valentin
c337992236 net/gnrc/rpl: enable RTR_ADV on RPL interface 2023-09-12 10:32:16 +02:00
Benjamin Valentin
0572a9571b gnrc_ipv6_nib: disable router advertisements on interface startup
Router Advertisements are enabled automatically for routing nodes
as soon as they obtain a prefix (e.g. via DHCPv6, UHCP, …).

Enabling router advertisements without a prefix to advertise is
wrong and causes no router solicitations to be send on an upstream
interface.

Also from https://www.rfc-editor.org/rfc/rfc4861#section-6.2.1

	Note that AdvSendAdvertisements MUST be FALSE by
	default so that a node will not accidentally start
	acting as a router unless it is explicitly
	configured by system management to send Router
	Advertisements.
2023-09-11 16:03:54 +02:00
Gunar Schorcht
af9e1207d0 boards/sipeed-longan-nano: use ST77xx rotation in degree 2023-09-08 12:01:41 +02:00
Gunar Schorcht
a14d71ee83 boards/esps3-usb-otg: use ST77xx rotation in degree 2023-09-08 12:01:30 +02:00
Gunar Schorcht
2784288506 boards/esp32s2-lilygo-ttgo-t8: use ST77xx rotation in degree 2023-09-08 12:01:20 +02:00
Gunar Schorcht
1f41d19c89 boards/adafruit-pybadge: use ST77xx rotation in degree 2023-09-08 12:01:00 +02:00
Gunar Schorcht
093593a3bd drivers/st77xx: add ST77XX_ROTATION macros that are more clear 2023-09-08 12:00:47 +02:00
Gunar Schorcht
f03bc3327c drivers/lcd: rename low-level functions
To be clear that the functions are low-level functions, they are renamed to `lcd_ll_*`.
2023-09-08 08:07:09 +02:00
bors[bot]
a102560e53
Merge #19827
19827: drivers/st77xx: implement initialization r=aabadie a=gschorcht

### Contribution description

This PR implements correct initialization for ST7735, ST7789 and ST7796. A number of configuration parameters are exposed via Kconfig. The user can decide whether to use custom configuration parameters or reset defaults.

~To be compilable, the PR includes PR #19824 and PR #19825~

### Testing procedure

- Green CI
- `tests/drivers/disp_dev` and `tests/drivers/st77xx` should still work for all boards using a ST77xx display.
- The PR was already tested for these tests for:
   - [x] `adafruit-pybadge`
   - [x] `esp32s2-lilygo-ttgo-t8`
   - [x] `esp32s3-usb-otg`
   - [x] `sipeed-longan-nano`

### Issues/PRs references

~Depends on #19825~
Fixes #19818 

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-09-07 14:50:20 +00:00
Gunar Schorcht
7599ce7b00 drivers/st77xx: expose configuration parameters in Kconfig 2023-09-07 16:33:31 +02:00
Gunar Schorcht
5c7a9cc966 drivers/lcd: assert controller-specific init function 2023-09-07 16:33:31 +02:00
Gunar Schorcht
9447f59d59 drivers/st77xx: fix initialization sequences fror ST77xx 2023-09-07 16:33:31 +02:00
bors[bot]
85c7bd937c
Merge #19825
19825: drivers: rename st7735 to more generic st77xx r=aabadie a=gschorcht

### Contribution description

This PR provides the following changes:
- renames the driver `st7735` to `st77xx`
- renames the test `st7735` to `st77xx`
- models controller variants as pseudomodules `st7735`, `st7789` and `st7796`
- removes the buggy initialization as a workaround to use reset defaults, see issue #19818 
- adds backward compatibility header files for `ST7735_PARAM_*` symbols
- adds a test board for compilation test of backward compatibility
- updates the corresponding board definitions

The PR should solve the remaining dependency issues in KConfig we had by using `st7735` module for different controller variants. The backward compatibility header files should work for boards that still use `ST7735_PARAM_*` in their board definitions so that the board defintions at user's side use shouldn't be affected.

~To be compilable, the PR includes PR #19824.~

### Testing procedure

- Green CI
- `tests/drivers/disp_dev` and `tests/drivers/st77xx` should still work for all boards using a ST77xx display.
- The PR was already tested for these tests for:
   - [x] `adafruit-pybadge`
   - [x] `esp32s2-lilygo-ttgo-t8`
   - [x] `esp32s3-usb-otg`
   - [x] `sipeed-longan-nano`

### Issues/PRs references

Workaround for issue #19818
Preqruisite for PR #19827 

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-09-06 10:19:01 +00:00
Gunar Schorcht
020861b2ea drivers/lcd.h: fixes and improvements of documentation 2023-09-06 11:52:11 +02:00
Gunar Schorcht
7f28ab8ec1 drivers/lcd.h: move doc to module section 2023-09-06 11:52:11 +02:00
Gunar Schorcht
cb1c972dc2 boards/sipeed-longan-nano: update for st77xx driver 2023-09-06 11:52:11 +02:00
Gunar Schorcht
1e99e9a9ce boards/esp32s3-usb-otg: update for st77xx driver 2023-09-06 11:52:11 +02:00
Gunar Schorcht
f8c9770db0 boards/esp32s2-lilygo-ttgo-t8: update for st77xx driver 2023-09-06 11:52:11 +02:00
Gunar Schorcht
5406793bff boards/adafruit-pybadge: update for st77xx driver 2023-09-06 11:52:10 +02:00
Gunar Schorcht
b5b4ad4a69 sys/auto_init/screen: rename st7735 to more generic st77xx 2023-09-06 11:52:10 +02:00
Gunar Schorcht
f64890a43b tests/drivers: rename st3577 test to more generic st77xx 2023-09-06 11:52:10 +02:00
Gunar Schorcht
1c2cce7c66 drivers/st77xx: add st7735 compatibility headers
If a board definition already used the ST7735 driver, `st7735*.h` header files and `ST7735_*` macros were used in the board definitions to define the default configuration parameter set. For backward compatibility these header files are kept and the `ST7735_*` macros are mapped to the `ST77XX_*` macros if they are defined.
2023-09-06 11:52:10 +02:00
Gunar Schorcht
b5a7101f5e drivers: rename st7735 driver to more generic st77xx 2023-09-06 11:52:10 +02:00
Gunar Schorcht
ef7234b455 drivers/lcd: support of controller variant parameter
If the controller-specific driver supports multiple controller variants, the variant has to be specified in the configuration parameter set.
2023-09-06 11:52:10 +02:00
bors[bot]
7c04094430
Merge #19910
19910: boards/stm32f469i-disco: enable FMC with SDRAM support r=aabadie a=gschorcht

### Contribution description

This PR enables the FMC support on the `stm32f469i-disco` board and the on-board SDRAM ISSI IS42S32400F-6BL with 16 MByte.

### Testing procedure

1. `tests/periph/fmc` should succeed, just compile and flash the app with
   
   ```
   BOARD=stm32f469i-disco make -C tests/periph/fmc flash term
   ```
2. `tests/sys/malloc` should also use the SDRAM. Use
   
   ```
   USEMODULE=periph_fmc_sdram CFLAGS='-DCHUNK_SIZE=131072' \
   BOARD=stm32f469i-disco make -C tests/sys/malloc flash term
   ```
   and check that the heap also uses the memory in the range from `0xc0000000` to `0xc0fffffff`.

### Issues/PRs references



Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-09-06 09:42:58 +00:00
bors[bot]
da7deb518b
Merge #19794 #19912
19794: drivers/periph: Add documentation on thread safety and initialization r=aabadie a=maribu



19912: drivers/at86rf215: switch example config to use EXT3 on same54-xpro  r=aabadie a=benpicco



Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-09-05 12:03:37 +00:00
Marian Buschsieweke
6bf23bd683
drivers/periph: Add documentation on thread safety and initialization 2023-09-05 09:40:12 +02:00
Benjamin Valentin
05bf94492f drivers/at86rf215: switch example config to use EXT3 on same54-xpro
This avoids the conflict of using the same IRQ line (EXTI07) as the PHY
2023-09-04 16:03:40 +02:00
Benjamin Valentin
4ebf58d47a cpu/sam0_common: gpio: warn if EXTI line is re-used 2023-09-04 16:03:40 +02:00
bors[bot]
9be022afd8
Merge #18547
18547: sys: PSA Crypto API implementation r=MrKevinWeiss a=Einhornhool

### Contribution description
This adds an implementation of the ARM [PSA Crypto API](https://armmbed.github.io/mbed-crypto/html/index.html) specification to RIOT. 

It is a cryptographic API that supports software and hardware backends as well as the use of multiple secure elements, which can be configured with Kconfig.
It integrates indirect, identifier based key management to support persistent storage of key material in local memory and devices with protected key storage.

A description of the implementation design and an evaluation of the processing time and memory overhead in RIOT has been published here: [Usable Security for an IoT OS: Integrating the Zoo of Embedded Crypto Components Below a Common API](https://arxiv.org/abs/2208.09281)

#### Implementation status
So far this implementation supports the following operations:
- Volatile key storage
- AES in CBC mode
- Hashes (MD5, SHA1, SHA224, SHA256)
- HMAC SHA256
- ECDSA with NIST P192 and P256 curves

The following backends are supported so far:
- RIOT Cipher Module
- RIOT Hash Module
- Micro ECC library package
- Cryptocell 310 hardware accelerator on the Nordic NRF52840dk
- Microchip ATECC608A secure element

Other operations and backends as well as persistent key storage can and will be implemented by me and anyone who wants to contribute in the future.

### Testing procedure
So far there is a show case application in `examples/psa_crypto` to demonstrate the usage and configuration of different backends of the API (refer to the application README for more information). 


Co-authored-by: Lena Boeckmann <lena.boeckmann@haw-hamburg.de>
2023-09-04 08:15:08 +00:00
Lena Boeckmann
a0ccbce5a8 dist/tools/codespell: Add ignored words 2023-09-04 09:58:49 +02:00