Since all CAN controllers drivers seem to support automatic recovery (for
any future drivers for hardware without this hardware capability this can
easily be implemented in the driver), change the Zephyr CAN controller API
policy to:
- Always enable automatic bus recovery upon driver initialization,
regardless of Kconfig options. Since CAN controllers are initialized in
"stopped" state, no unwanted bus-off recovery will be started at this
point.
- Invert and rename the Kconfig CONFIG_CAN_AUTO_BUS_OFF_RECOVERY, which is
enabled by default, to CONFIG_CAN_MANUAL_RECOVERY_MODE, which is disabled
by default. Enabling CONFIG_CAN_MANUAL_RECOVERY_MODE=y enables support
for the can_recover() API function and a new manual recovery mode (see
next bullet). Keeping this guarded by Kconfig allows keeping the flash
footprint down for applications not using manual bus-off recovery.
- Introduce a new CAN controller operational mode
CAN_MODE_MANUAL_RECOVERY. Support for this is only enabled if
CONFIG_CAN_MANUAL_RECOVERY_MODE=y. Having this as a mode allows
applications to inquire whether the CAN controller supports manual
recovery mode via the can_get_capabilities() API function and either fail
or rely on automatic recovery - and it allows CAN controller drivers not
supporting manual recovery mode to fail early in can_set_mode() during
application startup instead of failing when can_recover() is called at a
later point in time.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
It turns out that currently LTO is enabled only for the kernel.
This commit updates it to enable it for the whole application
and adds additional LTO exclusions required for the standard
C libraries to build and link properly.
Signed-off-by: Radosław Koppel <radoslaw.koppel@nordicsemi.no>
clean up headers under include/ and move handling of priority queue to
own file/header.
No need for the header include/zephyr/kernel/internal/sched_priq.h
anymore. Move the relevant structures where they are being used in
kernel_structs.h.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Add 2 new Kconfig promptless options that are shorthand
for whether the ISO configuration can support RX and TX.
This also applies these new options as guards for existing
and missing code pieces.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The __WEAK-tagged function `nrf_802154_clock_hfclk_ready` is removed.
The implementation is provided by the nRF 802.15.4 Radio Driver.
Existence of __WEAK-tagged version causes incorrect behavior when
Link Time Optimization is used.
Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
Set a thread name for net conn_mgr, so that e.g. thread listings
within the shell are easier to look at.
Signed-off-by: Florian La Roche <Florian.LaRoche@gmail.com>
The API coverage documentation support was (relatively) recently introduced
in bad87f1684 and is not available in older
release branches.
Since doc-publish workflows always run in the default (main) branch
context, it is necessary to make the API coverage documentation handling
optional for the workflow runs that are triggered from older release
branches.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Update the documentation page to reflect the latest LTSv2
release and tentative end-of-life (EOL) date.
Note: the actual EOL date is still dependant on the
official LTSv3 release date and may be subject to change.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Fixes implicit double promotion in RegionCommon.c.
The calculation is done with float variables. However, the floor
function is meant for double variables. floorf should be used instead.
The implicit double promotion leads to a warning/error if compiled with
LLVM in CI.
Signed-off-by: Martin Jäger <martin@libre.solar>
The work item for re-synchronization should be rescheduled immediately
after the periodicity is changed.
Calculation of the periodicity incl. jitter is moved to a dedicated
function so that it can be re-used.
Signed-off-by: Martin Jäger <martin@libre.solar>
Only the first resync transmission was sent out immediately because
the work item was rescheduled to the usual periodicity in the work
handler immediately after sending out the first transmission.
Signed-off-by: Martin Jäger <martin@libre.solar>
The emulator can be used for unit testing of LoRaWAN services.
It provides interfaces to send arbitrary messages to the LoRaWAN
stack and receive the response through callbacks without using
actual LoRa hardware.
Signed-off-by: Martin Jäger <martin@libre.solar>
Add additional validation of the config data in the broadcast
sink test, both ensuring that the BASE is properly parsed,
that the BASE contains mandatory information and that the
stream get the right values copied.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
When using the LC3 codec, all codec configuration are LTV encoded.
The broadcast source did not properly validate this, and it also
uncovered a bug in the bsim test for broadcast sources.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The codec configuration data from the BIS in the BASE was not
properly copied to the stream->codec_cfg, and thus it only
contained the subgroup codec configuration values.
This commit fixes that by first copying the subgroup codec
configuration to the stream, and then setting or overwriting
any fields (if they exist).
This requires that each stream have their own codec configuration
struct allocated, so this will slightly increase memory usage.
This also adds verification of the SDU size from the BIGInfo
in the ISO receive callback.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This is not used by anyone, and is unlikely to be useful actually.
Helps to save 4 bytes for each instance of struct net_nbr also (removing
a 2 bytes attributes, which was anyway generating a 4bytes loss due to
structure misalignment).
Removing relevant useless functions related to it as well.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
As noted in net_if.c:net_if_ipv6_addr_add() IPv6 ND needs MLD.
It is not selected during test, as the combination of ND without DAD/MLD
breaks (something to study/fix further it seems).
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Net MGMT uses layer identifiers that are meaningful only for itself, but
for users it requires a trivial operation to show the real layer value.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Net MGMT mask should be fully configured first, prior to be used to
initialize and add the callback.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
As for adding an ipv6 address, removing one should return the same error
code when the network interface is not found.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
It's an optional support, and it should not select it by default.
Improving information message in case such support is disabled.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Prior to this, 8 bytes were implicitely used for alignement. Which could
be fully avoided. Now no bytes are lost.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
* Implement LL/IST/SNC/BV-01-C ISO Test Receive
* Refactor data structure for common code between CIS and BIS
Signed-off-by: Mads Winther-Jensen <mdwt@demant.com>
This commit does several but minor changes to the USB handling of
the broadcast audio sink, such as improving logging, removing a few
unncessary pieces of code and some minor performance improvements.
It removes some uses of the ring buffers, which effectively clears
up around 30KB of RAM, while also reducing how much memory is being
copied, improving performance.
Some of this removes the existing code for partial support for
stereo, but that code did not work in the first place. Proper stereo
support will be added in a later commit.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Introduce a backend for the Shell subsystem using a RPMsg endpoint.
This is useful for tooling & testing a remote processor from linux.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Move part of the Nanopb sample documentation to a serialization entry
and add information on how to configure proto files.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Extend the nanopb sample with a Kconfig option to optionally include
a field in a protobuf message.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
The latest version of nanopb allows for using kconfig symbols in files
with an "options.in" extension.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Add memory-region to nordic,nrf-spis binding. This commit aligns SPIS
shim to utilize memory-region property. This optional property enables
user to specify placement of dma buffers in memory region. It is done
by assigning to memory-region property, phandle to node with
zephyr,memory-region and mimo-sram compatible.
When memory-region property is not specified for given device, buffer
is placed in default RAM region with other data.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
- Removed unused variables from the data struct
- Set all members of capability struct in `ssd1306_get_capabilities`
instead of zeroing it. This has the same effect but saves some bytes.
- Removed empty log
Signed-off-by: Greter Raffael <rgreter@baumer.com>
This allows to invert the display at runtime using the function
`ssd1306_set_pixel_format`. The current format is stored in the data
struct.
Also adjusted `ssd1306_get_capabilities` to return both supported
formats and the current one.
From the ssd1306 doc: 'In normal display a RAM data of 1 indicates an
"ON" pixel while in inverse display a RAM data of 0 indicates an "ON"
pixel.' Thus `PIXEL_FORMAT_MONO01 == SSD1306_SET_NORMAL_DISPLAY`.
Signed-off-by: Greter Raffael <rgreter@baumer.com>
Implemented link status detection using the W5500 built-in registers.
Added periodic link status polling, configurable via Kconfig.
Speeds up DHCPv4 from 9 seconds at best, to ~2 seconds after power-up.
Signed-off-by: Volodymyr Shymanskyy <vshymanskyi@gmail.com>
The adxl367_trigger.c file was missing a DT_COMPAT definition,
which resulted in the driver config structs being misaligned
between the driver source files. This is fixed here.
Signed-off-by: Maximilian Deubel <maximilian.deubel@nordicsemi.no>
By default, the sensor should be factory-programmed to operate
in Sleep Mode. A Measurement Request (MR) command is required
to exit the sensor from its sleep state. An MR command should
consist of the 7-bit address followed by an eighth bit set to
0 (write). However, many I2C controllers cannot generate merely
the address byte with no data. To overcome this limitation the
MR command should be followed by a dummy byte (zero value).
Signed-off-by: Ioannis Karachalios <ioannis.karachalios.px@renesas.com>
The zperf received or sent bytes length and duration are in 32bits,
if running long-duration zperf test more than 20min, the value will
overflow, and the test result is wrong. Change it to 64bits can fix
this issue.
Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
When the zperf command is called with '-S' option which means IP_TOS
for IPv4 and IPV6_TCLASS for IPv6, an error is printed and the
setting does not work. The socket option handling was changed by
commit 77e522a5a243('net: context: Refactor option setters'), but the
callers of option setters were not changed. This causes the IP_TOS
or IPV6_TCLASS option failed to set. The fix is to use uint8_t to
store the value of the -S option.
Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
Clear the whole 192 bytes of bbram, before writing the magic value to it.
test pass "west twister -cviG -T tests/drivers/bbram/".
Fixes#69119
Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>