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

6572 Commits

Author SHA1 Message Date
dylad
e98459f414 cpu/saml11: fix GPIO/IOBUS management 2020-12-15 17:00:54 +01:00
8f1a42cbbf
cpu/cortexm_common: fix r12 clobber in pendsv for Cortex-M0 2020-12-15 13:16:02 +01:00
Daniel Lockau
33afc0ddab cpu/native/rtc: add rtc_set_time implementation 2020-12-15 12:52:35 +01:00
Dylan Laduranty
aec905d697
Merge pull request #15620 from benpicco/cpu/sam0_common/dac_startup
cpu/sam0_common: DAC: wait for DAC to be ready
2020-12-15 12:25:32 +01:00
benpicco
89c32e5be2
Update cpu/cc2538/include/cc2538_eui_primary.h
Co-authored-by: Marian Buschsieweke <maribu@users.noreply.github.com>
2020-12-14 15:23:13 +01:00
Benjamin Valentin
fe9ae5bc80 net/eui_provider: provide index to the callback function
If the same callback function is used for multiple interfaces
(`NETDEV_INDEX_ANY`), it is necessary to also provide the index of
the interface to hand out and address.
2020-12-14 00:22:18 +01:00
dylad
c934d5dde3 kconfig: add PERIPH_ETH feature to samd5x 2020-12-13 22:30:54 +01:00
dylad
a1f5b6182d cpu/sam0: add initial Ethernet support 2020-12-13 22:01:50 +01:00
Benjamin Valentin
c5c46ba35b cpu/sam0_common: DAC: wait for DAC to be ready
The DAC can have some start-up delay.
If we try to write to it before it's ready, it will get stuck.

This happens now that `tests/driver_dac_dds` immediately sets a DAC
value after init.

The samd2x class of MCUs doesn't have this bit, but a quick test on
samd10 shows that it might not be nececary there - the DAC does not
get stuck when writing to it immediately after init.
2020-12-13 02:11:36 +01:00
Benjamin Valentin
8f72212eb0 cpu/sam0_common: SPI: add support for QSPI in SPI mode
We can use the QSPI peripheral as an additional (non-Quad) SPI peripheral.
2020-12-11 22:33:08 +01:00
Benjamin Valentin
94c7f40b9c cpu/sam0_common: SPI: add support for SAMD20 2020-12-11 22:33:07 +01:00
Benjamin Valentin
fb2a6b7024 cpu/sam0_common: SPI: cleanup
Insert whitespace and factor out functions to make it easier to
add functionality.
2020-12-11 22:33:07 +01:00
Benjamin Valentin
b6642a8cb7 cpu/samd21: add samd10 to Kconfig 2020-12-11 18:25:36 +01:00
Benjamin Valentin
a94919aeed cpu/samd21: add support for SAMD10 2020-12-11 18:25:36 +01:00
Benjamin Valentin
531fca952b cpu/sam0_common: add samd10 vendor files
Files from Atmel.SAMD10_DFP.1.1.77.atpack
2020-12-11 18:25:36 +01:00
benpicco
e6a4d0a4d5
Merge pull request #15569 from fjmolinas/pr_cc2538_uart_nonblocking
cpu/cc2538: add periph_uart_nonblocking
2020-12-11 10:57:36 +01:00
Francisco Molina
bc737a1f76
cpu/cc2538: add periph_uart_nonblocking
Add periph_uart_nonblocking. Since cc2538 has a transmit FIFO write
to the FIFO first and to a tsrb buffer only when the transmit FIFO
is full.

Rely on the FIFO TXIFLSEL condition to fill up FIFO as space becomes
available.
2020-12-11 09:36:16 +01:00
benpicco
c5b5788eb7
Merge pull request #15570 from benpicco/sys/bit.h
sys/bit: move bit.h header to sys/
2020-12-11 08:36:36 +01:00
Francisco
7bbe36ff6b
Merge pull request #15588 from benpicco/native/pm_layered
cpu/native: pm: fix build with pm_layered
2020-12-10 13:05:45 +01:00
Leandro Lanzieri
c4d832e653
Merge pull request #15001 from aabadie/pr/boards/stm32f0f1f3_clock_kconfig_only
boards/stm32f1f3: model clock configuration in Kconfig
2020-12-09 14:04:25 +01:00
benpicco
dd7a268ef8
Merge pull request #15527 from Einhornhool/pr/nrf52_i2c_reconfigure
cpu/nrf52: Add i2c reconfigure feature
2020-12-08 21:09:55 +01:00
Einhornhool
40d749644f cpu/nrf52: Add i2c reconfigure for use with CryptoAuth devices 2020-12-08 21:27:03 +02:00
Benjamin Valentin
d7ed3418b5 cpu/native: pm: fix build with pm_layered 2020-12-08 18:24:02 +01:00
8f6005b26e
boards: cpu: stm32f1: use .config for specific iotlab PLL_PREDIV 2020-12-08 18:02:57 +01:00
Francisco
ee80e5aced
Merge pull request #15534 from jia200x/pr/cc2538_rf_submac
cc2538_rf: default to netdev_ieee802154_submac
2020-12-08 17:59:37 +01:00
c68f63b318
cpu/stm32f1f3: handle custom pll prediv/mul at cpu level 2020-12-08 17:36:52 +01:00
0f23c875a2
cpu/stm32: adapt Kconfig clock configuration for f1/f3 2020-12-08 17:36:51 +01:00
Benjamin Valentin
e300dfe47e sys/bit: move bit.h from cortexm_common/ to sys/
The bit access functions are not tied to Cortex-M CPUs, here they only
provide optimisations via bit-banding.

But the functions are generally useful - so move them to an arch independent
location.
2020-12-08 17:07:41 +01:00
04ca147f59 cpu/cortexm_common: fix r12 clobber in pendsv for Cortex-M3+ 2020-12-08 13:29:54 +01:00
977f0dfd70 cpu/cortexm_common: split isr_pendsv() 2020-12-08 10:14:45 +01:00
iosabi
3890091ced cpu/qn908x: Add the RTC module.
This patch implements the real time clock module for the QN908X cpus.

This module is very straightforward with only the one notable drawback
that it doesn't have a match register like the CTIMER block to implement
the alarm function. Instead, this driver can only use the interrupt
generated ever 1 second to implement the alarm match comparison in
software.
2020-12-06 20:49:51 +00:00
iosabi
ac4c4d6132 cpu/qn908x: Fix triggering GPIO IRQ.
The IRQ for each GPIO port needs to be enabled in the NVIC on top of
enabling the corresponding bit in the GPIO port.

This was not caught in tests before because I was testing with a larger
stack of commits (including UART and timers) which also had this fix.

Manually poking the GPIOs while using tests/periph_gpio now properly
fires the interrupts.
2020-12-06 18:07:44 +00:00
benpicco
f72e98d0a0
Merge pull request #15557 from iosabi/qn908x_ctimer
cpu/qn908x: Add timer driver based on CTIMER.
2020-12-05 17:36:36 +01:00
iosabi
ef4b58f4f0 cpu/qn908x: Add timer driver based on CTIMER.
The QN908x CPU has several timer modules: one RTC (Real-Time Clock) that
can count from the 32kHz internal clock or 32.768 kHz external clock,
four CTIMER that use the APB clock and have four channels each and one
SCT timer with up to 10 channels running on the AHB clock.

This patch implements a timer driver for the CTIMER blocks only, which
is enough to make the xtimer module work. Future patches should improve
on this module to support using the RTC CNT2 32-bit free-running
counter unit and/or the SCT timer.
2020-12-04 23:18:27 +01:00
iosabi
80bd203b4d cpu/qn908x: Add missing gpio & uart enum values.
GPIO_BOTH gpio_flank_t; UART_PARTY_MARK and UART_PARTY_SPACE in
uart_parity_t; and UART_DATA_BITS_5 and UART_DATA_BITS_6
uart_data_bits_t enum values where missing from the periph_cpu.h header
since they are not supported by the CPU. This was causing some tests to
fail to compile, but only after adding the periph_timer module.

This patch adds those missing macros and makes the corresponding
functions fail when trying to use them.

A minor fix to the NWDT_TIME_LOWER_LIMIT value setting it to 1U to avoid
a -Werror=type-limits error in the tests/periph_wdt test. In theory 0
is a totally valid value although a bit useless since it will trigger
the WDT right away.
2020-12-04 23:18:27 +01:00
benpicco
ffebb5d792
Merge pull request #15529 from chrysn-pull-requests/nrf5x-periph_timer_periodic
cpu/nrf5x: implement periph_timer_periodic
2020-12-04 22:02:50 +01:00
chrysn
e3e89fe513 cpu/nrf5x: implement periph_timer_periodic 2020-12-04 19:03:44 +01:00
iosabi
bd929a3746 cpu/qn908x: Add support for UART.
The QN908x has four FLEXCOMM interfaces that support a subset of UART,
SPI or I2C each one. This patch adds generic support for dealing with
the FLEXCOMM initialization and interrupts and adds a driver for
RX/TX support in UART.

With this patch is now possible to use a shell on the device over UART.
2020-12-03 20:53:49 +01:00
benpicco
a80631a297
Merge pull request #15074 from maribu/ptp-clock
drivers/periph/ptp_clock
2020-12-03 09:59:07 +01:00
Marian Buschsieweke
ea3752db77
cpu/stm32: Added PTP clock implementation 2020-12-02 17:53:00 +01:00
benpicco
646e665a86
Merge pull request #13855 from iosabi/qn908x_initial
cpu/qn908x: Initial minimal support for NXP QN908x CPUs.
2020-12-02 10:31:38 +01:00
iosabi
cde8ac6093 cpu/qn908x: Initial minimal support for NXP QN908x CPUs.
The NXP QN908x CPU family is a Cortex-M4F CPU with integrated USB,
Bluetooth Low Energy and in some variants NFC. This patch implements the
first steps for having support for this CPU.

While the QN908x can be considered the successor of similar chips from
NXP like the KW41Z when looking at the feature set, the internal
architecture, boot image format and CPU peripherals don't match those
in the Kinetis line. Therefore, this patch creates a new directory for
just the QN908x chip under cpu/qn908x.

The minimal set of peripherals are implemented in this patch to allow
the device to boot and enable a GPIO: the gpio and wdt peripheral
modules only.

The wdt driver is required to boot and disable the wdt. On reset, the
wdt is disabled by the chip, however the QN908x bootloader stored in
the internal ROM enables the wdt and sets a timer to reboot after 10
seconds, therefore it is needed to disable the wdt in RIOT OS soon
after booting. This patch sets it up such that when no periph_wdt module
is used the Watchdog is disabled, but if the periph_wdt is used it must
be configured (initialized) within the first 10 seconds.

Tests performed:
Defined a custom board for this CPU and compiled a simple application
that blinks some LEDs. Manually tested with periph_wdt and with
periph_wdt_cb as well.
2020-12-02 02:47:07 +00:00
iosabi
21fd1f9258 Add vendor files for the NXP QN908x cpu
In preparation for adding support for the QN908x cpus, this patch adds
a pristine copy of the vendor SDK files needed for initial support.
The only modification to these files is to add '#ifdef __cplusplus'
guards to all the header files, even if not needed or already
present as '#if defined(__cplusplus)', to make sure
./dist/tools/externc/check.sh check passes.

These files are located under vendor/ directories (both
cpu/qn908x/include/vendor/ and cpu/qn908x/vendor/) and are part of NXP's
SDK for the QN908x family available for download from:
  https://mcuxpresso.nxp.com/en/builder

The files included in these vendor/ directories are released by NXP
under an Open Source license as described in each file, but only the
files used by the next patch are included here.
2020-12-02 02:45:53 +00:00
benpicco
418aaa6e67
Merge pull request #15388 from benpicco/boards/e104-bt5010a-tb
boards/e104-bt5011a-tb: add support for the E104-BT5011A Test Board
2020-12-02 00:24:33 +01:00
Jose Alamos
28ca3e202f cc2538_rf: default to netdev_ieee802154_submac 2020-12-01 13:20:49 +01:00
Martine Lenders
e2af953cc8
Merge pull request #15132 from benpicco/nrf802154-submac
cpu/nrf52: nrf802154: default to netdev_ieee802154_submac
2020-12-01 12:23:42 +01:00
b0b19203a7
Merge pull request #15190 from benpicco/boards/wefun-f401cc
boards/common/weact-f4x1cx: create common WeAct boards
2020-12-01 12:03:38 +01:00
Benjamin Valentin
fea9e68b88 nrf802154: don't hard-code max TX power
The smaller family members only have 4dBm max output power.
2020-12-01 11:42:52 +01:00
d527ab6994
cpu: boards: esp: use common esptool makefile 2020-12-01 10:36:42 +01:00
Francisco
4afc04523c
Merge pull request #14490 from yarrick/esp32_eth_kit
boards: add support for the ESP32-Ethernet-Kit board
2020-12-01 10:09:36 +01:00
Benjamin Valentin
0ed34cdb4d cpu/stm32: periph_eth: drop addr from eth_conf_t
MAC address is now supplied by EUI provider, no need to hard-code
it for the board.
2020-11-29 23:11:14 +01:00
Benjamin Valentin
a28a60f16c cpu/stm32: periph_eth: register with netdev 2020-11-29 23:10:37 +01:00
6e658868e0
cpu/cc2538: enable UART IRQ only if cb is not NULL 2020-11-28 10:30:33 +01:00
Erik Ekman
2afa93c9f7 boards/esp32-ethernet-kit: Setup Kconfig to match makefiles 2020-11-28 10:18:54 +01:00
Erik Ekman
064f58e7aa boards/esp32: add ESP32-Ethernet-Kit v1.2 board 2020-11-28 10:18:54 +01:00
Erik Ekman
db91be6ef8 cpu/esp32: add esp_jtag pseudomodule and feature
Available on esp32-wrover-kit and esp32-ethernet-kit boards.
2020-11-28 10:18:54 +01:00
Erik Ekman
e3142c39f0 boards/esp32: add ESP32-Ethernet-Kit board
Mostly copied from esp32-wroom-kit and Ethernet part from
esp32-olimex-evb.

Ethernet and serial port has been tested (on v1.2 board).
2020-11-28 10:18:54 +01:00
Erik Ekman
f28de6a544 cpu/esp32: add support for IP101G Ethernet phy
As used in ESP32-Ethernet-Kit board:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit.html

Inspired by existing code for lan8720 PHY as well as latest ESP32 code:
https://github.com/espressif/esp-idf/blob/master/components/esp_eth/src/esp_eth_phy_ip101.c

Phy datasheet available: http://www.bdtic.com/ICplus/IP101G.html
2020-11-28 10:15:14 +01:00
a1ca06d6f4 cpu/efm32: coretemp.h: add missing stdint.h include 2020-11-25 17:52:34 +01:00
1d5e2e9cd9 all: remove traces of kernel_types.h
Automatically removed using:

    $ git grep -l kernel_types | xargs sed -i '/^#include .kernel_types/d'
2020-11-25 17:52:34 +01:00
575189510d
Merge pull request #15465 from maribu/atomic-utils-volatile
sys/atomic_utils: Use volatile qualifier
2020-11-24 22:05:33 +01:00
Marian Buschsieweke
dd48ced151
cpu/*/atomic_utils_arch.h: Add volatile qualifier 2020-11-24 14:00:52 +01:00
3f0ea86963 cpu/stm32/include/periph_cpu.h: add missing limits.h include 2020-11-23 16:56:34 +01:00
ba28bf849c cpu/esp_common: add missing include for limits.h in freertos/task.h 2020-11-23 16:56:34 +01:00
benpicco
ba8c8e29ad
Merge pull request #15498 from kaspar030/efm32_fix_tim_t
cpu/efm32/periph/timer: fix timer_t -> tim_t
2020-11-23 16:22:04 +01:00
Benjamin Valentin
264d0e3354 cpu/nrf52: nrf802154: default to netdev_ieee802154_submac
The basic nrf802154 driver lacks ACK handling and retransmissions,
which degrades it's usefulness.

The 802.15.4 Sub-MAC fixes all those issues.

Enable it by default for this driver to make it better behaved.
2020-11-23 13:09:32 +01:00
925056c829 cpu/efm32/periph/timer: fix timer_t -> tim_t 2020-11-23 12:33:28 +01:00
Bas Stottelaar
3881b2f0cd cpu/efm32: add support for efr32mg1b 2020-11-23 00:21:32 +01:00
benpicco
63af227f01
Merge pull request #15464 from maribu/esp-cast-align
cpu/esp*: Fix cast alignment issues
2020-11-19 23:34:42 +01:00
benpicco
5e819632be
Merge pull request #15463 from maribu/riscv-cast-align
cpu/fe310: Silence -Wcast-align
2020-11-19 19:05:53 +01:00
Bas Stottelaar
6f60185bfa cpu/efm32: define Kconfig option for efm32_coretemp 2020-11-18 18:43:33 +01:00
Bas Stottelaar
34c252d0e6
Merge pull request #15461 from basilfx/feature/efm32_driver_coretemp
cpu/efm32: add coretemp driver
2020-11-18 15:08:29 +01:00
e322bfbd47
Merge pull request #15421 from leandrolanzieri/pr/kconfig/native/hello_world
Kconfig: add modules to test on native
2020-11-18 15:02:34 +01:00
81c270dc1b
stm32/flashpage: Remove page address casts from erase
This removes the redefinitions of the page address in the erase
function.
2020-11-18 12:30:40 +01:00
Bas Stottelaar
431e6efdf6 cpu/efm32: add coretemp driver 2020-11-18 12:28:45 +01:00
aebf6f06d8
stm32/flashpage: Add common stm32_flashpage_block_t type
This commits adds a common type for the block writes to the flash of the
stm32. Depending on the family, the type has a different size. This
allows the removal of a number of ifdefs to track the differences
between families, simplifying the flashpage code
2020-11-18 12:04:57 +01:00
Marian Buschsieweke
921bc7f6e0
cpu/esp*: Fix cast alignment issues
- Add `WORD_ALIGNED` attribute to potentially unaligned allocations
- Use intermediate cast to `uintptr_t` to silence false positives of
  `-Wcast-align`
2020-11-18 10:19:23 +01:00
Leandro Lanzieri
43cc7beb26
cpu/native: add periph_spidev module to Kconfig 2020-11-18 10:08:01 +01:00
Leandro Lanzieri
2306516d0d
drivers/periph_common: add CPU specific RTC Kconfig 2020-11-18 10:08:00 +01:00
Leandro Lanzieri
c4fda9f4a9
cpu/native/backtrace: add module to Kconfig 2020-11-18 10:08:00 +01:00
Leandro Lanzieri
1d868f2b7b
cpu/native: select needed modules in Kconfig 2020-11-18 10:07:59 +01:00
Leandro Lanzieri
8715f19c26
cpu/native/periph: add Native GPIO modules to Kconfig 2020-11-18 10:07:59 +01:00
Leandro Lanzieri
8df4512960
cpu/native: add default configuration 2020-11-18 10:07:58 +01:00
Marian Buschsieweke
21bf7c0d01
cpu/fe310: Silence -Wcast-align 2020-11-18 09:58:52 +01:00
benpicco
1f7fdbc97a
Merge pull request #15099 from maribu/cortexm-common-cast-align
cpu/cortexm_common: Silence -Wcast-align false positives
2020-11-18 00:38:03 +01:00
Leandro Lanzieri
5a04f94b63
Merge pull request #14967 from aabadie/pr/boards/stm32f0_clock_kconfig_only
boards/stm32f0: add Kconfig for clock configuration
2020-11-17 12:14:10 +01:00
Francisco
fe510cd823
Merge pull request #15439 from leandrolanzieri/pr/drivers/network_devices_remove_netif_dep
drivers/network devices: remove unused netif dependency
2020-11-17 12:06:18 +01:00
benpicco
309d79c763
Merge pull request #15453 from benpicco/cpu/sam0_common-flashpage_aux_write
cpu/sam0_common: flashpage: rename to sam0_flashpage_aux_write()
2020-11-17 10:41:45 +01:00
benpicco
dbba4f9393
Merge pull request #15378 from benpicco/native/mtd_pagewise
native/mtd: implement .write_page()
2020-11-17 10:34:55 +01:00
Benjamin Valentin
2845554b4e cpu/sam0_common: flashpage: rename to sam0_flashpage_aux_write()
`flashpage_write_raw()` got renamed to `flashpage_write()`.
Now `sam0_flashpage_aux_write_raw()` is the only remaining 'raw'
function, even though it behaves just like `flashpage_write()`.

So let's also rename that for consistency.
2020-11-17 00:34:31 +01:00
Martine Lenders
a07d3e0fc9
Merge pull request #14755 from benpicco/examples/gnrc_border_router-native
examples/gnrc_border_route: simplify ZEP setup on native
2020-11-13 18:41:03 +01:00
Benjamin Valentin
90f3c15084 socket_zep: send dummy HELLO packet on connect 2020-11-13 18:10:57 +01:00
f626758aaf
Merge pull request #15392 from fjmolinas/pr_cc2538_riotboot
boards/cc2538: add riotboot feature
2020-11-13 15:39:55 +01:00
Francisco Molina
8598176544
boards: add riotboot to cc2538 based boards 2020-11-13 14:51:58 +01:00
Francisco Molina
ab9abf2f51
cpu/cc2538: add riotboot
Flash Customer Configuration Area (CCA) is never written when the
riotboot module is used. This required a riot application to have
been previously flashed. riotboot will completely ignore this
section, neither writing or erasing it.

Slot flashing is currenly only supported with Jlink.

Co-authored-by: Brenton Chetty <brent7984@gmail.com>
2020-11-13 14:51:57 +01:00
57116e737b
Merge pull request #14691 from gdoffe/mp1_dev
Port of RIOT-OS to stm32mp1
2020-11-13 12:34:19 +01:00
Gilles DOFFE
e4fa203db4 cpu/stm32: STM32MP1 family has no flash
Then CPU_FLASH_BASE cannot be defined as FLASH_BASE does not exist.

Signed-off-by: Gilles DOFFE <gilles.doffe@savoirfairelinux.com>
2020-11-13 10:43:08 +01:00
Gilles DOFFE
5ec5b335f1 cpu/stm32: add Kconfig files for STM32MP157CAC model
Note that Kconfig.models was not generated with gen_kconfig.py tool
due to lack of ProductsList.xlsx file for STM32MP1 family.

Signed-off-by: Gilles DOFFE <gilles.doffe@savoirfairelinux.com>
2020-11-13 10:43:08 +01:00
Gilles DOFFE
ce0ef8939c cpu/stm32: disable periph_wdt for mp1 family
In STM32MP1 family, independant watchdogs (IWDG1 and IWDG2) are
dedicated to the MPU (Cortex-A7). Thus simply disable the feature
for STM32MP1 family.

Signed-off-by: Gilles DOFFE <gilles.doffe@savoirfairelinux.com>
2020-11-13 10:43:08 +01:00
Gilles DOFFE
2ac0467807 cpu/stm32: configure timer2 for stm32mp1 boards
This timer will be used by RIOT-OS as the scheduling timer for
stm32mp157c-dk2 board.

Signed-off-by: Gilles DOFFE <gilles.doffe@savoirfairelinux.com>
2020-11-13 10:43:08 +01:00