This removes z_smp_thread_init() and z_smp_thread_swap() as
SOF has been updated to use k_smp_cpu_custom_start() instead.
This removes the need for SOF to mirror part of the SMP
power up code, and thus these two functions are no longer
needed.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This provides a path to resume a previously suspended CPU.
This differs from k_smp_cpu_start() where per-CPU kernel
structs are not initialized such that execution context
can be saved during suspend and restored during resume.
Though the actual context saving and restoring are
platform specific.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This renames z_smp_cpu_start() to k_smp_cpu_start().
This effectively promotes z_smp_cpu_start() into a public API
which allows out of tree usage. Since this is a new API,
we can afford to change it signature, where it allows
an additional initialization steps to be done before a newly
powered up CPU starts participating in scheduling threads
to run.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Add definition for DMIC clock source to LPC SYSCON clock control driver.
This constant allows drivers to get the DMIC bit clock frequency.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add DMIC_STATE_ERROR enum. This can be used by DMIC drivers for
instances in which a significant error has occurred (typically when the
DMIC cannot allocate additional buffers for PCM data and starves)
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Fixup parse_channel_map implementation. The previous implementation of
this function did not use the "channel_map" values passed in by the
user, and would not return correct values for the PDM hardware
controller or L/R value. This function is not being used in tree, so
correcting the implementation to align with documentation should have
minimal affect.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit adds a function that updates the hostname displayed by the
net backend. It is called by the network stack when the hostname is
updated.
Signed-off-by: Gerhard Jörges <joerges@metratec.com>
Always pull from the channel queue from the system workqueue context.
This simplifies debugging.
This also allows us to remove `sent` from the metadata struct.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Add the following macros to devicetree.h to get an interrupt
specifier's interrupt controller:
DT_IRQ_INTC_BY_IDX(node_id, idx)
DT_IRQ_INTC_BY_NAME(node_id, name)
DT_IRQ_INTC(node_id)
and their INST variants
DT_INST_INTC_BY_IDX(inst, idx)
DT_INST_INTC_BY_NAME(inst, name)
DT_INST_IRQ(inst)
which use the newly generated _CONTROLLER output from the
previous commit.
Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
The getsockopt() will return the address domain of the given
socket like AF_INET or AF_INET6.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
The meaning of bit0 in the audio location bitmap will change to
mono audio, so we update the audio location macro and releated
test cases.
Refer to BT SIG ES-22266.
Signed-off-by: Bi Jian <bi_jian@qq.com>
This commit adds a new function the net_buf's API that allow an user
to match the net_buf's content with a data without copying it to a
temporary buffer.
Signed-off-by: Konrad Derda <konrad.derda@nordicsemi.no>
In some cases, PINCTRL_STATE_SLEEP may be required even when
CONFIG_PM_DEVICE is not defined.
One example is the possibility/need to put JTAG pins to analog when
CONIG_PM=y and CONFIG_DEBUG=n.
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
Previously it was not always possible to prepend the header.
It was not possible if the application neglected to reserve the space
for headers. This is bad because it forces a buffer segment allocation
even if the buffer had enough room for the headers. E.g. a payload of 10
bytes in a netbuf of 30 bytes would have been segmented.
We now explicitly reject the buffer if it does not have the headroom.
This allows us to do a nice thing; simplify L2CAP segmentation.
We convert the SDU from the application into a PDU payload, by
prepending the SDU header, i.e. the SDU length in the original buffer.
This PDU payload is ready to be chunked into PDUs without having to keep
track of where in the SDU we are. This has the effect of removing a
bunch of logic in the segmentation machine.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
Rework clock definitions in order to be able to make global assumptions
on some specific clocks values such as STM32_SRC_LSE and STM32_SRC_LSI.
As such, introduce stm32_common_clocks.h
Complete that change by reworking values definition by doing a manual
enum (as enum is not possible in dt-bindings header files).
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
Adding a hook for tests to inject a mock transport and migrating the
accel test to test bmi160 specific things. The old version of the test
which checks for read values is now covered by the generic test in
the sensor build_all target.
Signed-off-by: Yuval Peress <peress@google.com>
Update the backend for sensor emulators to include a function for
setting the offset as well as a function to query an attribute's
metadata such as bounds and increment size. Additionally, add
backend support for setting the _xyz channel values.
Make the appropriate test changes to accomodate.
Signed-off-by: Yuval Peress <peress@google.com>
The socket service provides a similar functionality as what
initd provides in Linux. It listens user registered sockets
for any activity and then launches a k_work for it. This way
each application does not need to create a thread to listen
a blocking socket.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
No point marking the phy API to be callable from usermode,
the device cannot be accessed from usermode anyway so this
is pointless. User can call the phy API from supervisor mode
thread just fine.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
Some of the ASCS response codes should not be used by the
unicast server, as those will be checked and validated by the
stack.
They are kept in the enum, as the enum is also used by the
unicast client.
Besides updating the documentation, this commit also adds
a function to validate the response codes as well as the
combination of response codes and reason/metadata values,
and log a warning if the application does not adhere to the
documented behavior.
A warning is used instead of an error/assert/modification
of the response codes, as there may be unforseen reasons
why an application provide a non-approved response code,
and since it may be spec-valid, we should not fully
prevent it.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The bt_le_adv_start function can (currently) not be used
together with BT_LE_ADV_OPT_EXT_ADV, and it will
return an -EINVAL error if attempted, but this behavior
is not documented, and several people have asked about
why it does not work.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
It seems like a nice idea at first, but leads to hard-to-debug
situations for the application.
The previous behavior can be implemented by the app by defining
`alloc_seg` and allocating from the same pool as `buf`.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Instead of custom SOC_MCAUSE_EXP_MASK definition. Note that SoCs
selecting RISCV_PRIVILEGED already used such config indirectly (see
changes in soc_common.h).
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
The MCAUSE register has the "Interrupt" flag defined defined at XLEN-1
position (31 for 32-bit, 63 for 64-bit). This is not an SoC specific
option, and there's no need to expose it publicly.
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
As defined in Table 3.6 of "The RISC-V Instruction Set Manual, Volume
II: Privileged Architecture". Delete all spread definitions of the same,
weirdly prefixed with "SOC".
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
So far frontend supported only compile time filtering. Adding
support for runtime filtering. From runtime filtering perspective
frontend is treated similar to any other backend but since
it is a singleton it has fixed ID.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Initial implementation of `sched_getparam()` and `sched_getscheduler()`
POSIX APIs as a part of PSE53 `_POSIX_PRIORITY_SCHEDULING` option group.
Both functions are actually placeholders and just return `ENOSYS`
since Zephyr does not yet support processes or process scheduling.
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
This skips syscall tracing on atomic_c.h, as the compiler
does not like "({ ... tracing code ... })" and complains:
error: expected identifier or '(' before '{' token
Even though there is already a '(' before '{'.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Provision of configurable parameter for generating unblock event
ahead of TWT slot. Host application depending upon latencies can
configure this to wakeup rpu ahead of the TWT slot.
Signed-off-by: Ajay Parida <ajay.parida@nordicsemi.no>
Adds a stub API for a non bus emulators. The stub is used to keep the
rest of the emulation consistent.
Signed-off-by: Yuval Peress <peress@google.com>
Rework CONCAT to accept multiple arugments which are concatenated
together. Number of arguments is limited to 8.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
This polishes doxygen to, hopefully, make it better looking
on the API doc. Also adds missing doc to various functions
and macros.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This moves the doxygen doc from atomic_builtin.h to
atomic.h, as the doc should not have been inside
a particular implementation.
Also add an alias @atomic_api to replace the repetitive
wordings in the doc.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Make async and interrupt driven UART backends notify transmit
idle when transmit is idle.
Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
Add transmit idle event to modem_pipe_event enum. This will
allow modules to await transmit idle before trying to transmit
more data, instead of blindly calling modem_pipe_transmit in
a loop until all data has been accepted.
This will reduce the time spent trying to transmit data while
the backend is blocked.
Similarly to the RECEIVE_READY event, backends will call
modem_pipe_notify_transmit_idle() to indicate that transmit
is idle, and the TRANSMIT_IDLE event will be reinvoked when
the modem pipe is attached to synchronize the state of the
pipe with the user of it.
Additionally, the TRANSMIT_IDLE event is also invoked when the
modem is opened to further help synchronization with the user
of the pipe.
Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
Some modems don't start sending resync flags as described in
3G TS 27.010 V2.0.0 5.2.5, which results in the CMUX being
stuck in resync mode for said modems.
This patch simplifies the resync mechanism to simply drop
invalid frames, and wait for atleast two consequtive frame
flags (stop+start).
Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
These are helpful to track clients being added and deleted.
Applications can actions based on these events.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
These events communicate the status of AP mode operations (enable or
disable) with few pre-defined enumerations.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
__bswap_ in zephyr/sys/byteorder.h conflicts with __bswap_ in host's
byteswap.h. byteswap.h from host compiler used in posix_native_64 boards
causes a compilation issue.
This commit renames __bswap_ to BSWAP_ to prevent collision.
Before this commit a compilation error can be created by adding #include
<byteswap.h> to samples/net/sockets/echo/src/socket_echo.c
This does not change external API to byteorder.h, but does change
internal implementation which some other source files depend on.
Replaced manual byteswap operations in devmem_service.c with APIs from
byteorder.h which automatically converts to CPU endianess when necessary.
Fixes#44324
Signed-off-by: Jonathan Hamberg <jonathanhamberg@gmail.com>