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

646 Commits

Author SHA1 Message Date
Martine Lenders
05b13f5029
Merge pull request #14488 from PeterKietzmann/pr_add_sha256prng
sys/random: add SHA256 mode to SHA1PRNG & tests
2020-07-29 11:20:55 +02:00
benpicco
f3bce19646
Merge pull request #14503 from maribu/cpp-feature
build system: Add libstdcpp feature and doc
2020-07-23 19:05:10 +02:00
PeterKietzmann
5a13d00b65 sys/random: make sha1prng sha256 compatible 2020-07-22 12:25:09 +02:00
54d51bb098
Makefile.dep: include per driver Makefile.dep if used and exist 2020-07-20 14:32:16 +02:00
Benjamin Valentin
af1bb27043 pkg/littlefs2: add VFS dependencies
This was done for littlefs, but not for littlefs2
2020-07-17 16:43:00 +02:00
Marian Buschsieweke
cf482c5d46
build system: Add libstdcpp feature and doc
- Add libstdcpp feature to indicate a platform is providing a libstdc++
  implementation ready for use
- The existing cpp feature now only indicates a working C++ toolchain without
  libstdc++. (E.g. still useful for the Arduino compatibility layer.)
- Added libstdcpp as required feature were needed
- Added some documentation on C++ on RIOT
2020-07-15 11:45:22 +02:00
Leandro Lanzieri
cdc252ab7b
net/gnrc/nettest: Remove module
This module has been deprecated and scheduled for removal in release
2020.07.
2020-07-10 15:58:54 +02:00
Benjamin Valentin
2f423473fc sys/random: add option to use HWRNG as source of randomness
Add the `prng_hwrng` module to enable the HWRNG as source of all randomness, not just
for seeding a PRNG.

saves ~260 bytes compared to using tinymt32.
2020-07-08 18:23:18 +02:00
Aiman Ismail
869052dcd8 cord: add RD lookup client 2020-07-07 10:54:10 +02:00
Martine S. Lenders
6ba6740231
posix_select: initial import of select() function 2020-07-01 18:10:26 +02:00
e3f6c0f340 core: make idle thread optional 2020-06-25 16:02:28 +02:00
Leandro Lanzieri
649017f0b2
cpu/cortexm_common: Rename arch_cortexm feature to cpu_core_cortexm 2020-06-16 12:05:41 +02:00
Benjamin Valentin
cd107be976 drivers/periph/timer: add timer_set_periodic() 2020-05-28 17:37:41 +02:00
benpicco
70543bba1d
Merge pull request #13275 from miri64/gnrc_ipv6_ext_opt/feat/initial
gnrc_ipv6_ext_opt: initial import
2020-05-20 14:35:58 +02:00
Martine S. Lenders
d04621fc43
gnrc_ipv6_ext_opt: initial import
This provides header parsing for IPv6 hop-by-hop and destination
options according to [RFC 8200].

[RFC 8200]: https://tools.ietf.org/html/rfc8200#section-4.2
2020-05-20 12:34:04 +02:00
Benjamin Valentin
85100ad61a gnrc_netif: add message bus to interface
Allow threads to listen for events on an interface.
2020-05-20 10:44:11 +02:00
Martine S. Lenders
5e8f8ddc4a
gnrc_netif: introduce gnrc_netif_mac pseudo-module for gnrc_mac members
This aims to reduce circular dependencies in GNRC.
2020-05-19 16:10:59 +02:00
Martine S. Lenders
a48629b395
gnrc_netif: introduce gnrc_netif_ipv6 pseudo-module for IPv6 members
This aims to reduce circular dependencies in GNRC.
2020-05-19 16:10:59 +02:00
Martine S. Lenders
9801a439fc
gnrc_netif: introduce gnrc_netif_6lo pseudo-module for 6LoWPAN members
This aims to reduce circular dependencies in GNRC.
2020-05-19 16:10:59 +02:00
Martine S. Lenders
1c251beb03
gnrc_nettype: indirect NETTYPE definition via pseudo-modules
Instead of making a NETTYPE definition dependent on an implementation
module, this change makes it dependent on a pseudo-module for each
specific NETTYPE and makes the respective implementation modules
dependent on it.

This has two advantages:

- one does not need include the whole implementation module to
  subscribe to a NETTYPE for testing or to provide an alternative
  implementation
- A lot of circular dependencies related to GNRC could be untangled.
  E.g. the only reason `gnrc_icmpv6` needs the `gnrc_ipv6` is because it
  uses `GNRC_NETTYPE_IPV6` to search for the IPv6 header in an ICMPv6
  when demultiplexing an ICMPv6 header.

This change does not resolve these dependencies or include usages where
needed. The only dependency change is the addition of the
pseudo-modules to the implementation modules.
2020-05-05 19:16:06 +02:00
Francisco
919249f361
Merge pull request #13862 from maribu/extra_boards
Makefile*: Allow multiple external board dirs
2020-04-29 20:12:06 +02:00
Marian Buschsieweke
ba7815163c
Makefile*: Allow multiple external board dirs
- Add the new EXTERNAL_BOARD_DIRS variable that can contain a space separated
  list of folders containing external boards
- Introduce $(BOARDDIR) as shortcut for $(BOARDSDIR)/$(BOARD)
- Map the existing BOARDSDIR to the new approach
    - If BOARDSDIR is provided by the user, it will be added to
      EXTERNAL_BOARD_DIRS for backward compatibility. (And a warning is issued
      to encourage users migrating to EXTRA_BOARDS.)
    - BOARDSDIR is updated after the board is found to "$(BOARDDIR)/..".
        - Useful for `include $(BOARDSDIR)/common/external_common/Makefile.dep`
        - Provides backward compatibility
2020-04-29 18:32:39 +02:00
Martine Lenders
633d0f486d
Merge pull request #13669 from bergzand/pr/netif/async_events
gnrc_netif: Add support for internal event loop
2020-04-28 13:03:39 +02:00
Joakim Nohlgård
2013ac75f5
gnrc_netif: Add support for internal event loop
Enabled by the gnrc_netif_events pseudo module. Using an internal event
loop within the gnrc_netif thread eliminates the risk of lost interrupts
and lets ISR events always be handled before any send/receive requests
from other threads are processed.
The events in the event loop is also a potential hook for MAC layers and
other link layer modules which may need to inject and process events
before any external IPC messages are handled.

Co-Authored-By: Koen Zandberg <koen@bergzand.net>
2020-04-17 12:02:39 +02:00
Sören Tempel
9e72f717e0 sys/fuzzing: Initialize
This adds a utility module which is used to write applications for
fuzzing RIOT network modules. The module provides a dummy network
interface which is configured with a static IPv6 addresses for modules
which perform operations on the underlying network interface. Besides,
it contains a utility function for transforming data received on
standard input into a `gnrc_pktsnip_t`.
2020-04-07 17:48:39 +02:00
Marian Buschsieweke
7bc15acee2
build system: Restructure dependency resolution
Goals:
- Untangle dependency resolution and feature checking for better maintainability
- Improve performance of "make info-boards-supported"

Changes:
- Makefile.dep
    - Dropped handling of default modules and recursion
    - Now only dependencies of the current set of used modules and pkgs are
      added
  ==> External recursion is needed to catch transient dependencies
- Changed Makefile.features:
    - Dropped checking of provided features
    - Dropped populating FEATURES_USED with provided features that are required
      or optional
    - Dropped populating FEATURES_MISSING with required but not provided
      features
    - Dropped adding modules implementing used features to USE_MODULE
  ==> This now only populates FEATURES_PROVIDED, nothing more
- Added makefiles/features_check.inc.mk:
    - This performs the population of FEATURES_USED and FEATURES_MISSING now
- Added makefiles/features_modules.inc.mk:
    - This performs now the addition of modules implementing used features
- Added makefiles/dependency_resolution.inc.mk:
    - This now performs the recursion required to catch transient dependencies
    - Also the feature check is performed recursively to handle also required
      and optional features of the transient dependencies
    - DEFAULT_MODULES are added repeatedly to allow it to be extended based on
      used features and modules
      ==> This allows modules to have optional dependencies, as these
          dependencies can be blacklisted
- Use simply expanded variables instead of recursively expended variables
  (`foo := $(bar)` instead `foo = $(bar)`) for internal variables during feature
  resolution. This improves performance significantly for
  `make info-boards-supported`.
- Reduce dependency resolution steps in `make info-boards-supported`
    - Globally resolve dependencies without any features (including arch)
      provided
      ==> This results in the common subset of feature requirements and modules
          used
        - But for individual boards additional modules might be used on top due
          to architecture specific dependencies or optional features
    - Boards not supporting this subset of commonly required features are not
      supported, so no additional dependency resolution is needed for them
    - For each board supporting the common set of requirements a complete
      dependency resolution is still needed to also catch architecture specific
      hacks
         - But this resolution is seeded with the common set of dependencies to
           speed this up
2020-04-02 09:55:07 +02:00
Martine Lenders
210543dd76
Merge pull request #13648 from fjmolinas/pr_periph_init_cleanup
Makefile.dep: filter periph_init modules
2020-03-31 21:51:34 +02:00
Benjamin Valentin
fc89531c61 sys/base64: Implement Base 64 Encoding with URL Safe Alphabet
RFC4648 specifies an alternate alphabet for base64 encoding / decoding
where '+' and '/' are exchanged for '-' and '-' to make the resulting
string safe to use in filenames and URLs.

This adds a base64url_encode() function that uses the alternate alphabet.

The base64_decode() function is extended to accept both alphabets.
2020-03-31 19:01:05 +02:00
Francisco Molina
9279282acb
Makefile.dep: filter periph_int modules
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2020-03-26 16:43:18 +01:00
Francisco Molina
15ab36409f
Makefile.dep: add auto_init_usbus as usbus DEFAULT_MODULE 2020-03-24 14:33:09 +01:00
7d0c475113
Merge pull request #13486 from bergzand/pr/suit/ietf_v3
SUIT: Update to draft-ietf-v3
2020-03-20 14:44:29 +01:00
Francisco Molina
9536a80e52
Makefile.dep: use stdio.inc.mk
Move all stdio dependencies to its own makefile
2020-03-18 15:58:38 +01:00
14bdf8f46b
sys/suit: Add SUIT draft ietf-v3 firmware upgrade module
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2020-03-18 14:13:12 +01:00
eb20cfe9ca
Makefile.dep: blacklist bootloader_arduino feature when required
- bootloader_arduino cannot be used if stdio_cdc_acm is not used
- stdio_cdc_acm is disabled when other stdio modules are already used
2020-03-18 10:53:17 +01:00
6538687a4c
Merge pull request #13613 from fjmolinas/pr_light_shell_interactive_sync
tests: add interactive_sync adapted to shell
2020-03-17 18:16:51 +01:00
Francisco Molina
a31003a23c
tests: add interactive_sync adapted to shell 2020-03-17 17:23:27 +01:00
Francisco Molina
8cbfc3686e
Makefile.dep: periph_init based on USEMODULE 2020-03-16 08:57:40 +01:00
benpicco
52cc02c9a9
Merge pull request #13387 from nmeum/mpu_noexec_ram_ng
Add optional support for executable space protections
2020-03-11 20:00:44 +01:00
benpicco
bb025e46ac
Merge pull request #13360 from wosym/tests/candev_native4
Tests/candev: Initial version with native support
2020-03-11 11:40:24 +01:00
Wouter Symons
9b829c99a9 tests/conn_can: make auto_init_can explicit
in other apps we might not want to automatically select the auto_init
2020-03-10 18:12:37 +01:00
Sören Tempel
2c1a627118 Add mpu_noexec_ram pseudomodule 2020-03-07 13:09:55 +01:00
bba96a1cd5
examples/gnrc_lorawan: use crypto_aes module instead of CFLAGS 2020-03-06 19:49:58 +01:00
benpicco
7877ffdf2a
Merge pull request #13511 from fjmolinas/pr_auto_init_periph
drivers/periph_common: add periph_init% modules
2020-03-06 13:05:57 +01:00
Francisco Molina
6b6479e6e9
drivers/periph_common: add periph_init% module 2020-03-06 11:21:19 +01:00
ed316309c8
Merge pull request #11874 from kaspar030/ztimer
sys/ztimer: initial import
2020-03-06 09:46:27 +01:00
Martine Lenders
ff425576a0
slipdev_stdio: provide stdio multiplexing over SLIP 2020-03-06 08:58:45 +01:00
Benjamin Valentin
521b1ce440 sys/auto_init: allow delayed initialisation of SAUL
Co-authored-by: Martine S. Lenders <m.lenders@fu-berlin.de>
2020-03-04 16:13:40 +01:00
Benjamin Valentin
d765098d72 sys/auto_init: allow delayed initialisation of gnrc_netif
Co-authored-by: Martine S. Lenders <m.lenders@fu-berlin.de>
2020-03-04 16:13:40 +01:00
dd218333c2 sys/ztimer: add xtimer_on_ztimer
This commit adds logic to make xtimer use ztimer_usec as backend
(instead of periph_timer). This allows ztimer_usec and xtimer to
coexist. It also allows xtimer to profit from eventually implemented
power mode blocking in ztimer's periph_timer backend.
2020-03-04 12:44:03 +01:00
8c1e577a06 sys/ztimer: move dependencies to sys/ztimer/Makefile.dep 2020-03-04 12:44:03 +01:00
616daff945 sys/ztimer: introduce xtimer wrapper 2020-03-04 12:44:02 +01:00
6dd79366bb sys: add ztimer subsystem
Co-authored-by: Joakim Nohlgård <joakim.nohlgard@eistec.se>
2020-03-04 12:44:02 +01:00
68ec8b2c2b
Merge pull request #13391 from kaspar030/mpu_feature
cpu/cortex-m: turn MPU support into a feature
2020-03-04 07:09:40 +01:00
Leandro Lanzieri
20bbe439c6 Makefile.dep: Add auto_init_% DEFAULT_MODULES only once
The logic that adds auto_init_% DEFAULT_MODULES was placed at the end of
Makefile.dep, which is recursively included. That means that the logic
is executed multiple times.

This moves the logic so it is only executed once, when the break
condition of the iteration is met.
2020-03-03 09:45:32 +01:00
Martine Lenders
cba056d560
Merge pull request #13386 from kb2ma/gcoap/sock_async
net/gcoap: use sock_async and events
2020-02-23 16:17:53 +01:00
Sören Tempel
0e2a620788 gnrc_tftp: remove module
Has been deprecated for awhile (01fc3d8f0b).
2020-02-20 12:04:01 +01:00
benpicco
030e7ebc06
Merge pull request #13307 from miri64/dhcpv6-client-6lbr/feat/init
gnrc_dhcpv6_client_6lbr: initial import of a 6LBR DHCPv6 client
2020-02-20 11:00:35 +01:00
Martine S. Lenders
db463a3373
gnrc_dhcpv6_client_6lbr: initial import of a 6LBR DHCPv6 client 2020-02-19 17:37:47 +01:00
Leandro Lanzieri
c829f820ee pkg: Remove OONF API package
The package has been flagged as deprecated in
07099d99d8, due to lack of users, tests
and maintenance.
2020-02-19 15:04:21 +01:00
950a206bad cpu/cortex-m: MPU: turn into feature "cortexm_mpu" 2020-02-18 16:41:36 +01:00
Leandro Lanzieri
9026823bb9 net: Remove NHDP module
NHDP has been flagged as deprecated in
056bd35e6c, due to lack of maintenance.
2020-02-18 13:20:05 +01:00
Ken Bannister
20e912fcfa make.dep/gcoap: add dependency on sock_async and events 2020-02-16 08:04:11 -05:00
Benjamin Valentin
4f8224b6e4 Makefile.dep: deduplicate DEFAULT_MODULE
I think those were added twice by accident.
This cleans that up.

introduced by #13089
2020-02-13 11:43:30 +01:00
Francisco Molina
7bfb855a86
Makefile.dep: auto_init_% as DEFAULT_MODULES
Having the modules as DEFAULT_MODULES allows disabling them.
2020-02-12 16:51:32 +01:00
Francisco Molina
e446920cd2
Makefile.dep: add auto_init_gnrc_% MODULEs 2020-02-12 16:51:29 +01:00
Francisco Molina
73bf2293bc
Makefile.dep: add auto_init_random MODULE 2020-02-12 16:51:25 +01:00
Francisco Molina
a5a036be43
Makefile.dep: add auto_init_xtimer pseudomodule 2020-02-12 16:51:22 +01:00
Francisco Molina
370998cc3e
Makefile.dep: include new DEFAULT_MODULEs
Currently default modules resolution is only performed in
Makefile.include. This avoids DEFAULT_MODULES being declared
in Makefile.dep since they never become USEMODULE.

Duplicate at the end of the dependency resolutiion after recursive
cach of transitive depdencies since at this stage DEFAULT_MODULES
can't and SHOULD NOT trigger depedency resolutions.
2020-02-12 16:51:21 +01:00
benpicco
f3d5f64163
Merge pull request #13346 from maribu/fix-dependency-resolution
Makefile.dep: Fix dependency resolution
2020-02-12 15:56:51 +01:00
Martine Lenders
ff0d2284b6
Merge pull request #12931 from haukepetersen/fix_deps_sockudpusers
make.dep: fix sock_udp deps for stnp
2020-02-12 11:15:00 +01:00
Marian Buschsieweke
9e38f5caa3
Makefile.dep: Fix dependency resolution
The addition of the `ecc` dependency was done after the recursion is done to
catch transient dependencies. This could potentially miss transient deps.
This commit moves the affected code before the recursion is triggered.
2020-02-11 19:25:55 +01:00
Gunar Schorcht
3514eecf9d
Merge pull request #12474 from kaspar030/add_event_threads
sys: add shared event threads
2020-02-07 13:29:29 +01:00
e01ad86eb3 sys/event: add shared event threads 2020-02-07 12:17:56 +01:00
7a1859d660
pkg/nordic-softdevice: define dependencies in package 2020-01-27 12:51:19 +01:00
2b3a9d0e4b
pkg/ndn-riot: define dependencies in package 2020-01-27 12:51:19 +01:00
ed0a8d67c4
Makefile.dep: include package deps earlier 2020-01-27 12:50:50 +01:00
Sören Tempel
5ef5ab7e4b Add CPU feature for stack smash protections 2020-01-22 15:59:02 +01:00
Sebastian Meiling
48fbd446fe
Merge pull request #8796 from miri64/dhcpv6c-pd/feat/initial
dhcpv6: Initial implementation of a client (with IA_PD support)
2020-01-16 13:32:51 +01:00
Martine Lenders
15c828cf92
gnrc_dhcpv6_client: provide GNRC-specific DHCPv6 parts 2020-01-16 12:36:10 +01:00
Martine Lenders
1048d67c76
dhcpv6: provide initial client implementation
This implements a client for DHCPv6 IA_PD (Identity Association for
Prefix Delegation). Goal was to have a IETF-compliant alternative to
UHCP. The implementation was based on RFC 8415.
2020-01-16 12:36:03 +01:00
Martine S. Lenders
a3bf3ef95b Makefile.dep: disable stdio_rtt with any other STDIO than stdio_rtt
f5cbe00118 disables `stdio_rtt` when `stdio_uart` is used. However,
if a board has `periph_usbdev` in `FEATURES_PROVIDED` and
`stdio_cdc_acm` is used by the application, linking fails, as now both
`stdio_rtt` and `stdio_cdc_acm` implement the STDIO functions.

This fix excludes `stdio_rtt` if any STDIO but `stdio_rtt` is provided.
If no STDIO is provided the fall-back is used as before.
2020-01-15 22:12:02 +01:00
Francisco
43d2ca4771
Merge pull request #12602 from miri64/sock_async_event/feat/initial
sock_async: initial import of event-based implementation
2020-01-15 14:32:05 +01:00
Martine Lenders
e46ad92cd3
sock_async_event: initial import of event-based implementation 2020-01-15 09:56:11 +01:00
f5cbe00118
Makefile.dep: disable stdio_rtt when stdio_uart is used 2020-01-14 07:48:08 +01:00
Martine S. Lenders
0957b6301b
stdio_native: initial import 2019-12-18 14:15:40 +01:00
Gunar Schorcht
ff506ccf07 pkg/lwip: start DHCP for a netif with lwip_dhcp
The NETDEV_EVENT_LINK_UP is used to start DHCP for a network interface
2019-12-18 07:16:41 +01:00
Gaëtan Harter
90692ac92b
makefiles: use 'BOARDSDIR' for the boards directory in compilation
Replace uses of 'RIOTBOARD' by 'BOARDSDIR' during the compilation.
2019-12-16 15:35:04 +01:00
Hauke Petersen
b06c01a03c make.dep/sntp: remove gnrc dependency
This module should depend on sock_udp instead of gnrc_sock_udp.
2019-12-12 10:15:31 +01:00
Hauke Petersen
17ecba0e89 make.dep: add dep for gnrc_sock_udp in GNRC deps
If some any module wants to use sock_udp and GNRC is configured as
network stack, this PR takes care of pulling in gnrc_sock_udp then.
2019-12-12 10:15:22 +01:00
Francisco
20d89af043
Merge pull request #12755 from aabadie/pr/application_dep
make: add possibility to provide board specific application dependencies in a separate Makefile
2019-12-09 16:52:19 +01:00
Martine Lenders
7b13781cd2
Merge pull request #12625 from miri64/gnrc_sock/enh/async-support
gnrc_sock: provide asynchronous event implementation
2019-12-09 12:39:58 +01:00
Hauke Petersen
3ffe08d07a shell/sc_nimble_netif: allow connect using name 2019-12-09 10:12:44 +01:00
a131ea7576
Makefile.dep: include board specific application dependency file
This commit allows to add a Makefile.dep file in an application directory to finely tune application dependencies, based on a board.
Using this mechanism, if an application has dependencies pulled-in based on a board, info-boards-supported, will take this into account to determine the boards supported by an application
2019-12-06 21:18:21 +01:00
bd254dfc63
Merge pull request #10741 from basilfx/feature/stdio_null
sys: stdio_null: add null driver
2019-12-03 18:08:26 +01:00
Benjamin Valentin
0d977b3b3c cpu/sam0_common/periph/uart: implement buffered write
Implement interrupt based uart_write() using a tsrb for the TX buffer.

To enable it, add

    USEMODULE += periph_uart_nonblocking

to your Makefile.
2019-11-27 19:01:00 +01:00
MichelRottleuthner
bf676d4728
Merge pull request #11022 from jia200x/pr/gnrc_lorawan
gnrc_lorawan: add support for GNRC based LoRaWAN stack
2019-11-27 09:25:20 +01:00
Jose Alamos
2edaead13e gnrc_netif: add gnrc_lorawan adaption layer 2019-11-26 21:52:06 +01:00
Jose Alamos
39951b8f70 gnrc_lorawan: add initial support for LoRaWAN stack 2019-11-26 21:52:06 +01:00
Bas Stottelaar
810a06903a sys: stdio_null: add null driver 2019-11-26 21:12:41 +01:00
0845cac3b8
sys/arduino: provide implementation for analogWrite 2019-11-15 17:51:45 +01:00