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

8765 Commits

Author SHA1 Message Date
Marian Buschsieweke
355f2335d5
cpu/msp430: implement gpio_ll_irq 2024-08-02 13:41:37 +02:00
Marian Buschsieweke
1a0da9a7af
cpu/msp430: fix warnings
clock.c: The MSP430 may need nop instructions after (and in some cases
         even before) touching the global interrupt enable bit in the
         status register. The assembler generates a warning when in
         doubt. Those nops should not be needed in our cases, but maybe
         it is better two waste flash for two instructions than having
         to live with the warning.

cpu.c: drop unneeded include
2024-08-02 13:41:37 +02:00
Marian Buschsieweke
0ce7b8dfde
cpu/msp430: add periph_gpio_ll 2024-08-02 13:41:37 +02:00
Marian Buschsieweke
422042bd00
drivers/periph_gpio_ll_irq: make support for both edges optional
The assumption that every MCU has this feature turned out wrong. Hence,
add a feature to allow testing for support of edge triggered IRQs on
both flanks.
2024-08-02 13:41:36 +02:00
Marian Buschsieweke
4a092862f8
cpu/stm32/periph_eth: adapt to GPIO LL API change 2024-08-02 09:55:25 +02:00
Marian Buschsieweke
36e8526046
drivers/periph_gpio_ll: change API to access GPIO ports
The API was based on the assumption that GPIO ports are mapped in memory
sanely, so that a `GPIO_PORT(num)` macro would work allow for constant
folding when `num` is known and still be efficient when it is not.

Some MCUs, however, will need a look up tables to efficiently translate
GPIO port numbers to the port's base address. This will prevent the use
of such a `GPIO_PORT(num)` macro in constant initializers.

As a result, we rather provide `GPIO_PORT_0`, `GPIO_PORT_1`, etc. macros
for each GPIO port present (regardless of MCU naming scheme), as well as
`GPIO_PORT_A`, `GPIO_PORT_B`, etc. macros if (and only if) the MCU port
naming scheme uses letters rather than numbers.

These can be defined as macros to the peripheral base address even when
those are randomly mapped into the address space. In addition, a C
function `gpio_port()` replaces the role of the `GPIO_PORT()` and
`gpio_port_num()` the `GPIO_PORT_NUM()` macro. Those functions will
still be implemented as efficient as possible and will allow constant
folding where it was formerly possible. Hence, there is no downside for
MCUs with sane peripheral memory mapping, but it is highly beneficial
for the crazy ones.

There are also two benefits for the non-crazy MCUs:
1. We can now test for valid port numbers with `#ifdef GPIO_PORT_<NUM>`
    - This directly benefits the test in `tests/periph/gpio_ll`, which
      can now provide a valid GPIO port for each and every board
    - Writing to invalid memory mapped I/O addresses was treated as
      triggering undefined behavior by the compiler and used as a
      optimization opportunity
2. We can now detect at compile time if the naming scheme of the MCU
   uses letters or numbers, and produce more user friendly output.
    - This is directly applied in the test app
2024-08-02 09:55:24 +02:00
benpicco
41204c8b81
Merge pull request #20450 from benpicco/THREAD_CREATE_STACKTEST-delete
core/thread: always use THREAD_CREATE_STACKTEST when DEVELHELP is enabled
2024-07-29 11:52:06 +00:00
Benjamin Valentin
312a550f1a treewide: remove THREAD_CREATE_STACKTEST from thread creation 2024-07-29 11:45:58 +02:00
krzysztof-cabaj
99b5bc1f4f cpu/stm32/l4: enable missing star-up time 2024-07-24 12:09:42 +02:00
Benjamin Valentin
3237ed911e core/panic: don't use LOG_ functions in panic handler 2024-07-17 16:18:19 +02:00
crasbe
f93aa40186 cpu/stm32: add ADC support for WB55 2024-07-08 11:18:57 +02:00
benpicco
d312d36728
Merge pull request #20756 from krzysztof-cabaj/nucleo-l4xxx-fix-ADC
cpu/stm32-L4: fix ADC initialization
2024-07-04 14:22:39 +00:00
krzysztof-cabaj
f6e1ce779e boards/nucleo-l4xxx: fix ADC init 2024-07-01 21:49:55 +02:00
Dylan Laduranty
26b3583aa9 cpu/samd5x: avoid the use of bitfield in periph
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-29 13:26:51 +02:00
Dylan Laduranty
41c003d670 cpu/samd5x: avoid the use of bitfield in cpu init
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-27 21:51:13 +02:00
Dylan Laduranty
8f645a95a4
Merge pull request #20747 from dylad/pr/cpu/sam0/avoid_bitfield_usage
cpu/sam0_common: avoid bitfield usage
2024-06-25 20:47:20 +00:00
Dylan Laduranty
ccc155e351 cpu/sam0: remove bitfield usage in sdhc driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:17 +02:00
Dylan Laduranty
04e4770379 cpu/sam0: remove bitfield usage in headers
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:17 +02:00
Dylan Laduranty
25a04e6757 cpu/sam0/periph: remove bitfield usage in watchdog driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:17 +02:00
Dylan Laduranty
707fecbc38 cpu/sam0/periph: remove bitfield usage in usbdev driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:17 +02:00
Dylan Laduranty
f31ac8a978 cpu/sam0/periph: remove bitfield usage in UART driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
6ccaca1e76 cpu/sam0/periph: remove bitfield usage in timer driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
925e98b115 cpu/sam0/periph: remove bitfield usage in SPI driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
7c1e66bdae cpu/sam0/periph: remove bitfield usage in RTC/RTT driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
a66eebb8ac cpu/sam0/periph: remove bitfield usage in I2C driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
37b03d8172 cpu/sam0/periph: remove bitfield usage in trng driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
38c65b9531 cpu/sam0/periph: remove bitfield usage in PWM driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-25 16:13:16 +02:00
Dylan Laduranty
8af7b3b465 cpu/sam0/periph: remove bitfield usage in gpio_ll driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:42:46 +02:00
Dylan Laduranty
b2bbc4c6f1 cpu/sam0/periph: remove bitfield usage in gpio_ll_irq driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:42:46 +02:00
Dylan Laduranty
1e7167d9bf cpu/sam0/periph: remove bitfield usage in gpio driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:42:46 +02:00
Dylan Laduranty
ae7ed4612a cpu/sam0/periph: remove bitfield usage in flashpage driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:31:41 +02:00
Dylan Laduranty
1140241128 cpu/sam0/periph: remove bitfield usage in GMAC driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:31:41 +02:00
Dylan Laduranty
9d298137d6 cpu/sam0/periph: remove bitfield usage in DMAC driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:31:41 +02:00
Dylan Laduranty
292111a244 cpu/sam0/periph: remove bitfield usage in DAC driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:29:58 +02:00
Dylan Laduranty
3c64901b5e cpu/sam0/periph: remove bitfield usage in ADC driver
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-06-21 09:29:58 +02:00
Marian Buschsieweke
8821f1f301
Merge pull request #20730 from maribu/tree-wide/musl/fixes
tree wide: compilation fixes for `native64` on musl systems
2024-06-15 17:12:03 +00:00
Steve Palmer
21643524f9 cpu/nrf5x: fix erroneous mask with INTENSET reg
fixes #20736
2024-06-09 11:08:37 +01:00
Marian Buschsieweke
21151691d7
cpu/native: Fix C11 atomic sizes for musl
musl and glibc have different types for fast atomic integers. This
selects the correct size depending on the used library.
2024-06-05 22:04:43 +02:00
Dylan Laduranty
5668de68e0
Merge pull request #20722 from maribu/cpu/native/fix-gcc-14-1
cpu/native: fix compilation with GCC 14.1
2024-06-04 14:30:53 +00:00
Marian Buschsieweke
ff3f055dc7
cpu/native: fix compilation with GCC 14.1
The first argument to `calloc()` is the number of members, the
second the member size. This fixes an instance where the arguments
where switched.
2024-06-04 15:43:53 +02:00
mguetschow
2576649b52
Merge pull request #20700 from maribu/features/netif-cleanup
build system: clean up netif features
2024-06-03 12:40:35 +00:00
Marian Buschsieweke
59f37cd8f8
cpu/esp_common: fix compilation with modern newlib/gcc 2024-06-02 18:51:07 +02:00
Teufelchen
893fab953b
Merge pull request #20713 from dylad/pr/cpu/samd21/avoid_bitfields_reg
cpu/samd21: avoid the use of bitfield
2024-06-01 16:10:12 +00:00
Marian Buschsieweke
e93b5e4b98
core/thread: fix thread_measure_stack_free()
`thread_measure_stack_free()` previously assumed that reading past the
stack is safe. When the stack was indeed part of a thread, the
`thread_t` structure is put after the stack, increasing the odds of
this assumption to hold. However, `thread_measure_stack_free()` could
also be used on the ISR stack, which may be allocated at the end of
SRAM.

A second parameter had to be added to indicate the stack size, so that
reading past the stack can now be prevented.

This also makes valgrind happy on `native`/`native64`.
2024-05-31 19:54:10 +02:00
Marian Buschsieweke
f34cd3f7c1
cpu/native: fix build with musl
This changes a bunch of things that allows building with the musl C lib,
provided that `libucontext-dev` and `pkg-config` are installed.

Note that installing libucontext makes absolutely zero sense on C libs
that do natively provide this deprecated System V API, such as glibc.
Hence, it no sane glibc setup is expected to ever have libucontext
installed.

A main pain point was that argv and argc are expected to be passed to
init_fini handlers, but that is actually a glibc extension. This just
parses `/proc/self/cmdline` by hand to populate argv and argc during
startup, unless running on glibc.
2024-05-31 12:18:33 +02:00
Dylan Laduranty
93639cb73e
Merge pull request #20708 from dylad/pr/cpu/saml21/avoid_bitfields_reg
cpu/saml21: avoid the use of bitfield in register call
2024-05-30 15:42:20 +00:00
Dylan Laduranty
bc188c5a48 cpu/saml21: avoid the use of bitfield
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-05-30 17:29:00 +02:00
Dylan Laduranty
16f6a4bb93 cpu/samd21: avoid the use of bitfield
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-05-30 12:01:24 +02:00
Marian Buschsieweke
ea3d4c8a65
Merge pull request #20709 from benpicco/stack_overflow-thread
cpu/cortexm_common: print last active thread on stack corruption
2024-05-30 07:17:21 +00:00
Marian Buschsieweke
be4dd0eb7c
Merge pull request #20710 from dylad/pr/cpu/saml1x/avoid_bitfields_reg
cpu/saml1x: avoid the use of bitfield in register calls
2024-05-30 07:17:03 +00:00
Benjamin Valentin
00c1f4ea4d cpu/cortexm_common: print last active thread on stack corruption 2024-05-29 18:27:27 +02:00
Dylan Laduranty
0ce8780dfa cpu/saml1x: avoid the use of bitfield
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-05-29 17:45:25 +02:00
Marian Buschsieweke
9187d16c78
features.yaml: s/esp_eth/periph_eth/
Use periph_eth instead of esp_eth for the Ethernet peripheral on ESP
MCUs for consistency
2024-05-28 20:59:29 +02:00
Marian Buschsieweke
798793e60a
build system: add netif_openwsn feature
Boards / MCUs now provide the newly introduced  netif_openwsn feature
if they have a network interface supported by OpenWSN.
2024-05-27 22:56:37 +02:00
Marian Buschsieweke
b55d79f5c6
Merge pull request #20666 from benpicco/cpu/sam0_common-netdev_new_api
sam0_eth: implement .confirm_send() to fix fragmented sending
2024-05-24 15:38:26 +00:00
benpicco
fb4e0ccf10
Merge pull request #20609 from Enoch247/improve-stm32-periph-enable.2
cpu/stm32: de-duplicate ifdefs
2024-05-24 09:52:06 +00:00
Joshua DeWeese
6c91865916 cpu/stm32: add missing include of cpu_common.c's header
Following best practice, this patch adds the module's header as its
first include. Resulting compiler errors are also fixed by adding the
header's missing include of cpu_conf.h.
2024-05-23 22:27:01 -04:00
Joshua DeWeese
c05b119fa9 cpu/stm32: de-duplicate ifdefs
This patch consolidates mutliple conditional compile blocks. This is
done to simplify adding new STM32 CPU's and ease maintenance of existing
ports.
2024-05-23 22:27:01 -04:00
Dylan Laduranty
47b74fc021
Merge pull request #20667 from firas-hamdi/feat/samd5x_can_handle_errors
cpu/samd5x: handle CAN errors
2024-05-23 20:12:08 +00:00
Benjamin Valentin
d6d7d90a2a cpu/sam0_common: eth: reduce TX buffer count 2024-05-23 17:19:32 +02:00
Benjamin Valentin
4d1a5aa62c cpu/sam0_common: eth: port to new netdev API 2024-05-23 17:19:32 +02:00
Marian Buschsieweke
97a6543c10
tree-wide: Introduce netif feature and use it
This gets rid of a long list of boards with network interfaces and
instead let's boards (or MCUs with peripheral network interfaces)
provide the netif feature.

The apps that before used the long list are not depending on the
feature instead (in case of the default example, this is an
optional dependency).

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: mewen.berthelot <mewen.berthelot@orange.com>
2024-05-22 10:39:56 +02:00
Firas Hamdi
59c9f68307 cpu/samd5x: Enable and handle errors interrupts 2024-05-16 15:00:28 +02:00
Firas Hamdi
b35e60e720 cpu/samd5x: add CAN error codes 2024-05-16 15:00:28 +02:00
Mikolai Gütschow
6af809041b
cpu/nrf5x_common: properly calibrate RC-based low-frequency clock 2024-05-14 16:23:28 +02:00
Mikolai Gütschow
350399d1c2
cpu/nrf5x_common: do not rely on latched register for LFCLK state 2024-05-13 14:35:21 +02:00
Joshua DeWeese
410e55d912 cpu/{gd32v,stm32}/periph/adc: ensure max ADC speed is honored
This patch ensures that the ADC's max clock speed is not exceded.
2024-05-10 22:06:10 -04:00
Joshua DeWeese
4218fca673 cpu/{gd32v,stm32}/periph/adc: make ADC clock setable
This patch allows boards to select a max ADC clock speed. This could be
handy if the board wants to clock the ADC differently according to the
board's front end analog circuitry or MCU model's ADC capabilities.
2024-05-10 21:58:22 -04:00
benpicco
1b9716c96d
Merge pull request #18428 from maribu/cpu/stm32/periph/stm32_eth/confirm_send
cpu/stm32/periph/stm32_eth: provide confirm_send
2024-05-09 08:20:28 +00:00
Karl Fessel
d387f323aa
Merge pull request #20644 from kfessel/p-fix-can
cpu/samd5x/can: fix flag handling on receive
2024-05-08 23:04:09 +00:00
Karl Fessel
c623c50fcf cpu/samd5x/can: assert eff-flag if extended id range 2024-05-08 22:43:01 +02:00
Karl Fessel
2bdca8d6c9
Merge pull request #16809 from kfessel/p-backtrace-fix
native/backtrace: improve its print capabilitys and test
2024-05-08 19:57:18 +00:00
Marian Buschsieweke
14795d4de0
cpu/stm32/periph/eth: update to new API 2024-05-08 21:06:00 +02:00
Karl Fessel
37627ce2b8 native/backtrace: improve print capabilitys and test 2024-05-08 12:53:57 +02:00
Teufelchen
e2541c8528
Merge pull request #20525 from Teufelchen1/deprecate/muxpos
cpu/sam0: Remove deprecated muxpos
2024-05-07 14:15:04 +00:00
Karl Fessel
1d53d31339 cpu/samd5x/can: set EFF and RTR Flag if received 2024-05-07 10:48:14 +02:00
Marian Buschsieweke
59956fd371
Merge pull request #20613 from maribu/cpu/msp430/pm
cpu/msp430: implement power management
2024-05-07 06:13:50 +00:00
Marian Buschsieweke
2e9ce4d6b4
Merge pull request #20633 from dylad/pr/cpu/cortexm33/add_splim_support
cpu/cortexm: add stack limit support for Cortex-M33
2024-05-06 17:05:20 +00:00
Dylan Laduranty
683d4a249d cpu/cortexm: add stack limit support for CM33
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-05-06 17:14:49 +02:00
Marian Buschsieweke
751d96fe04
Merge pull request #20643 from maribu/mulle/fixup
boards/mulle: fix flashing
2024-05-06 13:49:54 +00:00
benpicco
3791db3941
Merge pull request #18427 from maribu/lwip/confirm_send
pkg/lwip: make use of confirm send
2024-05-06 11:05:10 +00:00
Marian Buschsieweke
d1167d9d77
cpu/kinetis/dist-check-fcfield.sh: minor fixes
- `printf "%d" ""` triggers an "invalid number" warning on ash, so
  let's use `0` as portable default for zero
- add quotes where needed to make shellcheck happy
2024-05-01 14:05:36 +02:00
Marian Buschsieweke
dd585f9e9d
cpu/esp32/gpio_ll: fix & cleanup
- `gpio_ll_toggle()` now is race-free
- avoid using a look up table but branch to the two different registers
  in the `gpio_ll*()` functions
    - in most cases the GPIO port is a compile time constant and the
      dead branch is eliminated by the optimizer, making this vastly
      more efficient
    - some MCUs do only have a single port, in which case
      `GPIO_PORT_NUM(port)` is known to return `0` even if `port` is
      not known, resulting in one of the branch being eliminated as
      dead branch no matter what
    - in case it really is unknown at compile time which port to work
      on, the branch can still be implemented efficiently by the
      compiler e.g. using a conditional move; likely more efficient
      than fetching a value from the look up table.
2024-04-30 14:16:28 +02:00
Marian Buschsieweke
9462ab576e
cpu/native: netdev_tap implements the legacy netdev API 2024-04-30 09:49:36 +02:00
Marian Buschsieweke
b5650915c9
cpu/esp_common: esp_eth implements the legacy netdev API 2024-04-30 09:49:36 +02:00
Marian Buschsieweke
4824bb38e0
cpu/nrf5x: nrfmin implements the legacy netdev API 2024-04-30 08:41:07 +02:00
Marian Buschsieweke
43f07fa261
cpu/msp430: implement power management
This implements `pm_set_lowest()` for the MSP430. Unlike most other
platforms, it intentionally does not use pm_layered. It is pretty
similar to `pm_layered` in that is does use reference counters, but it
uses them for two independent clock sources.

The main difference is that the low frequency clock domain can be
disabled even when the high frequency clock is still active. With the
layers, disabling layer n-1 while layer n is still blocked would not
work.
2024-04-26 15:52:41 +02:00
Marian Buschsieweke
01caa1900b
cpu/msp430: use SR alias instead of r2
The register r2 is the status register, which has the SR alias. Using
SR is a lot more readable than r2.
2024-04-26 15:52:41 +02:00
benpicco
70c70e2afc
Merge pull request #20623 from maribu/cpu/msp430/periph_usci/fix-prescaler
cpu/msp430/perriph_usci: fix prescaler values for ACLK
2024-04-26 09:42:25 +00:00
Marian Buschsieweke
4c0d6f8f7d
cpu/msp430/perriph_usci: fix prescaler values for ACLK
For super low symbol rates the auxiliary clock (ACLK) is used to
conserve power. But with only 32,678 Hz clock just prescaling will
result in poor bit timing, hence correct modulation control settings
to compensate are needed. Since computing this is too expensive, a
look-up table (as switch statement) for the four most common symbol
rates was used.

The datasheet gave the prescaler values ordered by ascending symbol
rate, the switch statement was ordered descending.
This changes the order to match the datasheets order and matches the
correct prescaler setting to the corresponding symbol rate.

Fixes https://github.com/RIOT-OS/RIOT/issues/20620
2024-04-25 22:39:45 +02:00
Teufelchen
925644e4ce
Merge pull request #20596 from Teufelchen1/fix/esp_print
cpu/esp: Handle format print errors
2024-04-25 13:58:12 +00:00
Teufelchen1
01e78ed333 cpu/esp: Handle format print errors 2024-04-25 15:19:02 +02:00
Dylan Laduranty
e784794b37 cpu/cortexm: uncrustify panic.c
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-04-24 13:20:59 +02:00
Dylan Laduranty
5d3324d3a9 cpu/cortexm: rework bkpt instruction call on panic
Only call this instruction if a debug session is active otherwise it will trigger a hardfault

Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-04-24 13:19:45 +02:00
Marian Buschsieweke
a8ffb340fc
Merge pull request #20599 from crasbe/pr/nrf52840_jlink
boards/nRF52xx: correctly set JLINK_DEVICE
2024-04-22 11:53:15 +00:00
crasbe
6f0e81fb34 boards/nRF52xx: correctly set JLINK_DEVICE 2024-04-22 11:25:08 +02:00
benpicco
5a7bcc9f87
Merge pull request #20601 from maribu/cpu/msp430/clock
cpu/msp430: clean up and fix clock driver
2024-04-22 08:44:20 +00:00
benpicco
3cd83c7709
Merge pull request #20602 from maribu/cpu/msp430/get_caller_pc
cpu/msp430: implement get_caller_pc
2024-04-22 08:41:56 +00:00
Marian Buschsieweke
f01fb53529
cpu/msp430: implement get_caller_pc
This "implements" the `get_caller_pc()` function by simply wiring up
compiler intrinsics.
2024-04-19 21:21:32 +02:00
Marian Buschsieweke
024832aa6d
cpu/msp430: clean up and fix clock driver
- The validity test for the high frequency crystal did not take
  into account the higher range supported by the MSP430 F2xx / G2xx
  family. This fixes the issue.
    - The CPU family used is exposed to C as `CPU_FAM_<NAME>` macro
- Unused headers where dropped
- The status register is aliased `SR`, so let's use that more readable
  name.
2024-04-19 19:17:18 +02:00