Add initial version of clock control for Atmel SAM SoC series. This add
support to Power Management which allows control peripherals clock.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
The structure k_cycle_stats uses the bool type. Consequently it
should include the stdbool.h header file.
Fixes#55972
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Create a new Bluetooth library and add Encrypted Advertising Data to it.
Encrypted Advertising Data is a new feature from the Bluetooth Core
Specification 5.4. It provides a way to communicate encrypted data in
advertising, scan response and EIR packets. To do that it introduce a
new advertising data type called `Encrypted Advertising Data`. Also, it
introduce a new characteristic called `Encrypted Data Key Material`,
this provides a way to share the key material.
The library add two main functions `bt_ead_encrypt` and
`bt_ead_decrypt`.
Two helper functions are added to `bluetooth.h`. `bt_data_get_len` and
`bt_data_serialize`, the first one allow the user to get the total size
of a set of `bt_data` structures; the second one generate a spec
compliant bytes array from a `bt_data` structure. The last one is useful
because `bt_ead_encrypt` take as input those kind of bytes array.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
Implements the CAP unicast stop procedures, which is used
to stop (either disable or release) multiple streams.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Implement the CAP unicast metadata update procedure.
The procedure lets an application update the metadata of one
or more CAP streams in a single function call, while also ensuring
that the provided metadata follows the requirement from CAP.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Implement the CAP unicast start procedure, which
will put one or more CAP streams from the idle state
to the streaming state, across or more ACL connections.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Move the input listener section declaration in common-rom-misc.ld
instead of using a custom input.ld file. This seems to be the common
practice for upstream iterable sections and seems to solve a
compatibility issue where the section was getting allocated incorrectly
on esp32 based platforms.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
It is no longer true that zsock_poll() works only with networking
sockets, we now support for example eventfd objects which can also be
polled. Therefore just remove the outdated comment in the zsock_poll()
documentation, as it is misleading.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Some systems can support only legacy OOB pairing while others only
LE SC OOB pairing.
The existent API function "bt_set_oob_data_flag" was removed.
Two new API functions were added:
* "bt_le_oob_set_legacy_flag" to signal that legacy OOB pairing is used
* "bt_le_oob_set_sc_flag" to signal that LE SC OOB pairing is used
The code will now advertise the presence of OOB flag depending
on the type of pairing method(SC vs legacy)
Signed-off-by: Sebastian Panceac <sebastian.panceac@ext.grandcentrix.net>
Adds a new driver interface for retained memory devices which
can be used to store data and have it retained whilst the device is
powered thorugh different application execution states (though this
data may be lost in low power states).
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
User can now use self-defined BLOB ID for transfer instead of using
random one each time. This allows to send multiple FW Update Start
messages with same BLOB ID, for example to resume previous one.
Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
Document `bt_conn_set_security` behavior; `sec` has no effect on the
security level selected for the pairing process. The selection is
instead controlled by the values of the registered `bt_conn_auth_cb`.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
Co-authored-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
Adds dummy link layer for offloaded ifaces, allowing
ifaces to directly receive l2_enable calls
Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
In order to take granular input use micro seconds as input for TWT
intervals, this helps us in providing inputs such as 65.28ms without the
need of using floating points.
This also expands the TWT wake interval range to 262.144ms, earlier as
we want to use uint8, limited to 256ms.
Also, remove the units from the variable names, this is unnecessary and
also avoids doing breaking changes.
Update release notes as this is a breaking change, both type and
variable names are changed.
Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
Updates the sensor driver API documentation to state that the driver
will store the user-supplied sensor trigger as a pointer rather than a
copy.
Signed-off-by: Maureen Helm <maureen.helm@intel.com>
`include/zephyr/shell/shell_string_conv.h` uses `bool` from `stdbool.h`,
but the include was missing.
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
When the consume semaphore is enabled always give and take from the
semaphore. It's expected that rtio_cqe_consume and rtio_cqe_consume_block
will be used exclusively rather than directly poking at the SPSC queues.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
C++ requires casting void * as the implicit cast isn't enough and
the C++ sample app fails to build without duplicating type information
here. Do that, and wrap it in extern C allowing the C++ to include
rtio_mpsc.h directly or indirectly.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
The pending_sqe logic to track where in the ring queue the concurrent
executor had left off was slightly flawed. It didn't account for starting
all sqes in the queue and ending back up at the beginning.
Instead track the last SQE in the queue, from which the next one in the
queue will the one to start next.
If we happen to sweep the last known SQE in the queue, reset it to NULL
so the next time prepare is called we start at the beginning of the queue
again.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Transactional submissions treat a sequence of sqes as a single atomic
submission given to a single iodev and expect as a reply a single
completion.
This is useful for scatter gather like APIs that exist in Zephyr already
for I2C and SPI.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Tests were failing when the sqe was allocated on the stack for some
architectures. Initialization of variables on the stack is not guaranteed
to be zeroed like static data. This caused undefined behavior.
Secondly if the sqe is recycled and had a flag set, there would
unexpected behavior as well.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Building tests/drivers/coredump/coredump_api with armclang gets:
include/zephyr/debug/coredump.h:98:2: error: unknown type name 'uint8_t'
uint8_t *buffer;
^
Fix simply be including <stdint.h> to get uint8_t typedef.
Signed-off-by: Kumar Gala <kumar.gala@intel.com>
Add callbacks for control point notifications sent by the
unicast server. These will allow the upper layers to know
if and why a specific operation failed.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
A user reported confusion about whether disconnected `bt_conn` are
meant to be found by `bt_conn_foreach`. The confusion likely stems from
the inprecise wording "existing connections".
This commit doucments `bt_conn_foreach` as it is: A low-level API for
iterating trough all `bt_conn` objects, connected or not.
This commit also includes a warning about possibly unintutive behavior
in preemptible threads.
Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/53996
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
Most of this struct is bookkeeping for the dynamic channels.
This isn't needed for e.g., a simple peripheral using GATT.
With a peripheral_hr build for nrf52840dk_nrf52840, we save
280 bytes of RAM.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Port the gpio_keys_zephyr driver from the gpio subsystem with a
dedicated API to the input subsystem reporting input events.
Move the test as well, simplify the cases a bit since the API is simpler
now.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Mesh-1.1 spec extends number group addresses.
There were added:
all forwarding address,
all ip nodes,
all ip border routers.
Even Zephyr's mesh doesn't support them it should be able
to subscribe heartbeat on these groups.
Also mesh should provide ability to subscribe\publish models on
these groups.
Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
Besides of standard flash operations like write or erase, flash
controllers also support additional features like write protection or
readout protection. These features are not available in every flash
controller, what's more controllers can implement it in a different way.
It doesn't make sense to add a separate flash API function for every
flash controller feature, because it could be unique (supported on small
number of flash controllers) or the API won't be able to represent the
same feature on every flash controller.
Extended operation interface provides flexible way for supporting flash
controller features. Code space is divided equally into Zephyr codes
(MSb == 0) and vendor codes (MSb == 1). This way we can easily add
extended operations to the drivers without cluttering the API or
problems with API incompatibility. Extended operation can be promoted
from vendor codes to Zephyr codes if the feature is available in most
flash controllers and can be represented in the same way.
Signed-off-by: Patryk Duda <pdk@semihalf.com>
Add safe exception stack init function which does several things:
1) setting current cpu safe exception stack pointer to its corresponding
stack top.
2) init sp_el0 with the above safe exception stack.
That makes sure the sp_el0 points to per-cpu safe_stack in the kernel
space.
3) init the current_stack_limit and corrupted_sp with 0
Signed-off-by: Jaxson Han <jaxson.han@arm.com>
As the preparation for enabling safe exception stack, add a variable in
_esf_t to save the user stack held by sp_el0 at the point of the
exception happening from EL0. The newly added variable in _esf_t is
named sp from which the user stack will be restored when exceptions eret
to EL0.
Signed-off-by: Jaxson Han <jaxson.han@arm.com>
Add three per-cpu variables for the convenience of quickly accessing.
The safe_exception_stack stores the top of safe exception stack pointer.
The current_stack_limit stores the current thread's priv stack limit.
The corrputed_sp stores the priv sp or irq sp for the stack overflow
case, or 0 for the normal case.
Signed-off-by: Jaxson Han <jaxson.han@arm.com>
Add definition for the CAN-FD Error State Indicator (ESI) flag. The
presence of this flag indicates that the transmitting CAN-FD node is in
error-passive state.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Discussion in #55658 showed that our API docs for the hardware cycle
counter layer were a little lacking. Technically it's owned by the
architecture layer, but the arch docs were unhelpful. And the arch
layers uniformly farm it out to an API in the timer drivers that was
never documented at all. Clean things up.
Signed-off-by: Andy Ross <andyross@google.com>
bluetooth/gap.h uses some utility macros. Include the relevant header to
avoid users having to include it before including the GAP header.
Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
Package length was previously stored on 10 bits which limited
package size to 1023 bytes. Descriptor which contained package
length field had one unused bit which can be used to increase
package length field to 11 bits doubling the maximum package
length.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Some internal macros were still using 2 suffix which comes from
time when there was v1 and v2. Cleaning up by removing the suffix.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>