Commit graph

85,247 commits

Author SHA1 Message Date
Jonathan Rico
67236de058 Bluetooth: host: add test for some GATT settings bugs
This test is designed to check the soundness of GATT caching across
reboots.

It will fail if the fixes for #54173 and #54172 are not present.

Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
2023-02-13 12:55:02 +01:00
Filip Kokosinski
76f23d60a0 doc: release-notes: add RISC-V release notes for v3.3.0
This commit adds RISC-V release notes for Zephyr v3.3.0.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2023-02-13 20:19:09 +09:00
Benjamin Cabé
a7dee148c3 doc: Update copyright notice in the documentation
Update copyright notice to reflect current year.
Fixes #54763.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-02-13 19:39:14 +09:00
Yonatan Schachter
56ac1ac0d6 doc: Added Raspberry Pi Pico changes to v3.3.0 release notes
Added the new features that were added since the last release to
the release notes.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
2023-02-13 19:35:24 +09:00
Peter Mitsis
a18357c4f5 tests: fixes logging.add.async build warning
Fixes github issue #54537. Using a variable to point to the desired
format string generates a build warning when the -Wformat-security
compiler flag is used. To resolve this, replace the variable with
a macro to the format string.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-13 11:22:36 +01:00
Emil Gydesen
86bc8d4dcb doc: release-3-3: Add Bluetooth Audio and ISO API changes
Add changes to the API for Bluetooth audio and ISO.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-02-13 10:14:29 +01:00
Johann Fischer
18a03ced93 tests: drivers: udc: fix udc_ep_try_config() test
Behavior of udc_ep_try_config() is changed by the commit e60a4efbb0
("drivers: udc: do not update MPS for isochronous endpoints"),
update test case accordingly.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2023-02-13 10:11:52 +01:00
Stephanos Ioannidis
0d9fea87bb ci: Switch to CI image v0.24.11
This commit updates the CI workflows to use the CI image v0.24.11 that
includes BabbleSim v1.1.2, which improves simulation stability and
fixes the intermittent failures currently reported by the Bluetooth
test workflow.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2023-02-11 22:20:03 +09:00
Stephanos Ioannidis
bb8b745020 release: Zephyr 3.3.0-rc3 v3.3.0-rc3
This commit sets the Zephyr version to v3.3.0-rc3.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2023-02-11 20:01:40 +09:00
Andy Ross
d00f9b594b kernel/work: Fix race under with delayed work item cancellation
The call to unschedule_locked() would return true ("successfully
unscheduled") even in the case where the underlying z_abort_timeout()
failed (because the callback was already unpended and
in-progress/complete/about-to-be-run, remember that timeout callbacks
are unsynchronized), leading to state bugs and races against the
callback behavior.

Correctly detect that case and propagate the error to the caller.

Fixes #51872

Signed-off-by: Andy Ross <andyross@google.com>
2023-02-11 12:14:16 +09:00
Stephanos Ioannidis
bb71ad55aa doc: release-notes: Add C++ library release notes
This commit adds the C++ library release notes for the Zephyr 3.3
release.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2023-02-11 11:26:06 +09:00
Tom Burdick
ff4d9d1df7 doc: release: Add dma release notes for v3.3.0
Added comments about new APIs, drivers, features, and bug fixes.

An impressive number of notes I have to say!

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2023-02-11 11:25:25 +09:00
Tom Burdick
70b0e02afe doc: release: Add i2c release notes for v3.3.0
Adds notes about bug fixes, features, and other noteworthy driver changes
made in the 3.3 release for i2c.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2023-02-11 11:11:32 +09:00
Aastha Grover
5144e78070 xcc-clang: add default C includes when build C++ code
nostdinc_include flag needs to contain path to llvm libraries
and remove other relative paths. Change compiler flag to add
default C includes on building C++ code using xcc-clang compiler.

Fixes #54730

Signed-off-by: Aastha Grover <aastha.grover@intel.com>
2023-02-10 18:05:14 -06:00
Aastha Grover
8f5bcb2e76 intel_adsp: ace: fix linker script for xcc-clang compiler
rodata section for xtensa overrides the .ctors section
containing the constructor info and the _ZEPHYR_CTOR_LIST_.
Removes the ctor related linker script lines from the rodata
section of the ace linker script to ensure that the .ctors is
properly generated and placed when using the xcc-clang compiler.

Fixes #54730

Signed-off-by: Aastha Grover <aastha.grover@intel.com>
2023-02-10 18:05:14 -06:00
Purdea Andrei
158ee9139c drivers: usb_dc_rpi_pico: cleanup incorrect comment and condition
I believe this comment and condition may have found its way into the
rp2040 driver from other drivers where it makes more sense. For
example for the stm32 driver performing a read on the EP0_IN endpoint
turns it silently into a read on the EP0_OUT endpoint. As far as I can
tell, this really was only used to consume 0-length Status-Stages of
to_host control transfer in the other drivers.

Note that usb_dc_ep_start_read() is never called in an IN endpoint
in the rp2040 driver, and furthermore, even if it would have been
called like that, the current implementation would not do the silent
change into actually performing a read on the EP0_OUT endpoint instead,
so the condition and comment is just wrong.

Note that 0-length Status-Stage of to_host control transfers is
currently consumed in this driver by usb_dc_ep_read_continue().

Signed-off-by: Purdea Andrei <andrei@purdea.ro>
2023-02-11 08:23:03 +09:00
Magdalena Kasenberg
3c00629bb6 LE Audio: Map EALREADY error of ase_stream_qos()
to send response with code 0x09 = Invalid Configuration Parameter
Value and reason 0x0a = Invalid_ASE_CIS_Mapping.

Previous response code was BT_ASCS_RSP_UNSPECIFIED (0x0e) and
reason BT_ASCS_REASON_NONE (0x00).

Fixes ASCS/SR/SPE/BI-15-C and ASCS/SR/SPE/BI-16-C PTS test cases.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-02-11 08:21:13 +09:00
Dino Li
e442a15c32 gpio/it8xxx2: do not set flag if register does not exist
Since not all GPIOs support voltage selection, voltage flag
is only set if voltage selection register is present.

fixes: #54366

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2023-02-11 08:20:40 +09:00
Georgij Cernysiov
d7cf297d98 usb: device: class: rndis: remove CDC descriptors
RNDIS is not a CDC class.

Signed-off-by: Georgij Cernysiov <geo.cgv@gmail.com>
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2023-02-11 08:19:32 +09:00
Georgij Cernysiov
3055a8326d usb: device: class: rndis: correct IAD and IF0 descriptors
Use descriptors as dictated by Microsoft and USB-IF.
That allows the RNDIS device to be correctly detected on Windows.

* Microsoft: https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/supported-usb-classes
* USB-IF Defined Class Codes: https://www.usb.org/defined-class-codes

Signed-off-by: Georgij Cernysiov <geo.cgv@gmail.com>
2023-02-11 08:19:32 +09:00
Yonatan Schachter
d18f6e3acf Maintainers.yml: Add maintainer for Raspberry Pi Pico
Add a maintainer for the Raspberry Pi Pico platform, including
the RP2040 SoC, boards using it, and drivers.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
2023-02-11 08:18:56 +09:00
Anas Nashif
52f6a5980c MAINTAINERS: add esp32 wifi driver to Espressif area
Add missing file to Espressif area.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-02-11 08:16:42 +09:00
Johann Fischer
ced13ae1fa board: decawave_dwm1001_dev: reset core after load
Reset core after load.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2023-02-11 08:16:30 +09:00
Johann Fischer
177a7b2d97 boards: decawave_dwm1001_dev: enable pull-up on pins used for I2C
The board has no pull-ups on the I2C lines.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2023-02-11 08:16:30 +09:00
Kumar Gala
b582e5df99 tests: drivers: can: shell: increase test stack size
The test fails with a stack overflow on qemu_x86 when we build with
llvm.  Bump the test stack a little addresses the issue.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2023-02-11 08:14:39 +09:00
Guillaume Gautier
b95b5b99f0 boards: arm: stm32f429i_disc1: Add missing byte to fix compilation
Add a missing bytes in the configuration of ili9341 screen that causes
a compilation issue. The value added is the default one defined in the
ilitek,ili9341.yaml file.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-11 08:14:04 +09:00
Carles Cufi
5ebec1c949 doc: release: Add Bluetooth release notes for 3.3.0
Fill in the Bluetooth release notes for Zephyr 3.3.0.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2023-02-11 08:10:58 +09:00
Jamie McCrae
d71e571090 doc: release-notes 3.3: Add MCUmgr shell buffer size change
Adds details on a bug for for the shell RX ring buffer receive
size being made larger when the shell MCUmgr transport is
selected, to fix an issue whereby commands were corrupt.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-02-11 08:09:41 +09:00
Chris Friedt
0bb65e0b09 doc: release-notes: add POSIX API release notes for v3.3.0
Itemize notable non-bugfix changes in the POSIX API for the v3.3.0
release.

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-11 08:09:12 +09:00
HaiLong Yang
436304da4f doc: release: 3.3: add GigaDevice GD32 changes
More GigaDevice support added, include drivers, boards, etc.
Also, some known issue has been fixed.

Signed-off-by: HaiLong Yang <hailong.yang@brainco.cn>
2023-02-11 08:08:55 +09:00
Maureen Helm
709c9812b2 doc: release: Add sensor release notes for v3.3.0
Added comments about new drivers, bug fixes, and enhancements made to
sensor drivers since the last release.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2023-02-11 08:08:24 +09:00
Mateusz Kapala
c2050f33bb boards: arm: thingy53: Fix default USB related log levels
Previous method of setting default USB related log levels for Thingy53
led to generating inconsistent configuration, ex.
CONFIG_USB_CDC_ACM_LOG_LEVEL=0 and CONFIG_USB_CDC_ACM_LOG_LEVEL_INF=y
at the same time. This commit changes to proper implementation
which is overlaying choice's default.

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
2023-02-11 08:06:41 +09:00
Mateusz Kapala
66f380f4ad boards: arm: thingy53: Disable USB remote wakeup by default
For Thingy:53 board, USB remote wakeup should be disabled by
default. Current solution disabled it from Kconfig.defconfig,
but was always overwritten by imply in CONFIG_USB_NRFX.
This change disables it in board *_defconfig files.

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
2023-02-11 08:06:41 +09:00
Purdea Andrei
4fcbba2fb1 drivers: usb_dc_rpi_pico: fix toggle data1/0 on to_device control transfers
The data stage of Control transfers that are sent from Host to Device, can
be made out of multiple OUT transactions, if the amount of data to be
transmitted is larger than the endpoint size. When this happens, the DATA
pid should be toggling. The USB Device driver of the pico must correctly
prime the EP0_OUT buffer with the correct data PID, otherwise the hardware
will reject the received transaction.

Before this change the driver used to always prime EP0_OUT with a DATA1
pid.
After this change the driver only uses DATA1 pid after a setup transaction,
and then toggles the pid for each transaction.

Signed-off-by: Purdea Andrei <andrei@purdea.ro>
2023-02-11 08:00:43 +09:00
Joakim Andersson
dd47f4c730 modules: trusted-firmware-m: Allow application to use qcbor TF-M
QCBOR cannot be shipped with Zephyr.
Allow the application to supply their own copy of QCBOR or let the TF-M
build system automatically download this dependency.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2023-02-11 07:59:06 +09:00
Kevin Townsend
a79d2089a8 manifest: tf-m: Disable initial attestation
Includes changes to allow Zephyr to avoid building the initial
attestation service at build time.

Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
2023-02-11 07:59:06 +09:00
Kevin Townsend
0798375b92 samples: tfm: Disable initial attestation test
Disables the initial attestation suite, which we are unable to run
at present due to a license issue with the underlying QCBOR library
which this service depends on in TF-M.

This commit can be reverted once an acceptable solution has been found
for the QCBOR license in TF-M.

Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
2023-02-11 07:59:06 +09:00
Kevin Townsend
cd8d4ccad5 modules: tfm: Disable initial attestation service
Prevents Zephyr from enabling the initial attestation service in TF-M,
due to a dependency it has on an incompatibly-licensed library (QCBOR).

This update checks if either of the following config flags are
enabled at build time:

- `CONFIG_TFM_PARTITION_INITIAL_ATTESTATION`
- `CONFIG_TFM_PSA_TEST_INITIAL_ATTESTATION`

If either of these are set to true, a fatal error will be thrown at
build time, indicating the reason for the failure.

This change can be reverted once a longer term solution to the QCBOR
license issues has been resolved.

Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
2023-02-11 07:59:06 +09:00
Francois Ramu
4de473e4c9 drivers: dma for stm32u5 returns from a repeated start or stop command
On a repeated dma_start, the stm3u5 dma driver should return
immediately if it is already started.
On a repeated dma_stop, the stm3u5 dma driver should return
immediately if it is already stopped.
This like the dma driver does for other stm32 series.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2023-02-11 07:57:44 +09:00
Francois Ramu
1798ecbd77 boards: arm: nucleo_f746zg change the sysclock for can timings
Because of CAN bus clock, some bitrate values might not not give
a valid timing calculation depending on the CAN bus freq.
The sysclock is changed to the highest common value between
USB 48MHz and CAN.
The result is a sysclock of 192MHz. Then is USB at 48MHz
and the CAN bus freq is the APB1 (PCLK1) at 48MHz

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2023-02-11 07:57:16 +09:00
Peter Mitsis
1b49cd2551 kernel: pipes: ISRs use a private pipe descriptor
Fixes sporadic data access violations that were occuring when pipes
were being used from an ISR. The ISR was incorrectly using the pipe
descriptor belonging to the interrupted thread. This led to corrupted
pipe meta-data. The solution proposed here is to perform a run-time
check and if use a pipe descriptor on the ISR's stack if called from
an ISR.

For additional information, see:
   https://github.com/zephyrproject-rtos/zephyr/issues/52812

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-11 06:45:13 +09:00
Peter Mitsis
59cb96e802 kernel: pipes: Add spin lock/unlock barrier pair
Adds a spin lock/unlock barrier pair after a pipe thread wakes.
After the list of waiting threads is generated, it is possible for
threads on that list to timeout and be removed from the wait queue.
However, since that list was generated before the timeout occurred,
the timed-out thread must wait until the copying is done (the
pipe's spin-lock has been released).

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-11 06:45:13 +09:00
Peter Mitsis
31dfd84fd5 kernel: pipes: Change method of unpending waiters
By the time the working list of readers/writers is processed, it is
possible that waiting reader/writer being processed had timed out
and is no longer on the wait queue. As such, we can not blindly
wake the next thread as that next thread might not be the thread we
had just been processing.

To address this, the calls to z_sched_wake() have been replaced
with z_unpend_thread() and z_ready_thread() so that a specific
thread can be safely targeted for waking.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-11 06:45:13 +09:00
Peter Mitsis
0037712e68 kernel: pipes: use wait queue walker to build list
Uses the new z_sched_waitq_walk() routine to walk the pipe's wait
queue to build a list of waiting threads that will be used for
the data transfer.

This method is preferred over the previous as it ensures that
wait queue is safely traversed.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-11 06:45:13 +09:00
Peter Mitsis
ca58339e16 kernel: Add routine to walk a wait queue
Adds a routine to safely walk a specified wait queue and invoke a
custom callback function on each waiting thread.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-11 06:45:13 +09:00
Andy Ross
668bb3cb22 lib/os/heap: Compiler bug workaround on ARC
This is a workaround for a compiler bug on (at least) GCC 12.1.0 in
Zephyr SDK 0.15.1.  The optimizer generates this function with a last
instruction that is an unconditional branch (a tail call into the
chunk_set() handling).  But that means that the NEXT instruction gets
decoded as part of the branch delay slot, but that instruction isn't
part of this function!  Some instructions aren't legal in branch delay
slots.  One of those is ENTER_S, which is a very common entry
instruction for whatever function the linker places after us.  It
seems like the compiler doesn't understand this problem.  Stuff a NOP
in to guarantee the code is legal.

Comment above is duplicated in the code.  The workaround is
straightforward once the issue is understood, but the path to get here
was hilariously weird.

Fixes #54720

Signed-off-by: Andy Ross <andyross@google.com>
2023-02-10 14:32:26 -05:00
Andrei Emeltchenko
9c1076e7f7 drivers: ieee802154_rf2xx: Remove magic number
Define and use RF2XX_TRAC_STATUS instead of magic number.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2023-02-10 18:13:48 +01:00
Andrei Emeltchenko
72c5bc3ae2 drivers: ieee802154_rf2xx: Correct bit mask
Correct bit mask for RF2XX_RX_TRAC_BIT_MASK. Current mask produce dead
code warnings when comparing to value:

RF2XX_TRX_PHY_STATE_TRAC_INVALID = 0x07

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2023-02-10 18:13:48 +01:00
Georgij Cernysiov
fd1f28efb6 usb: device: class: rndis: correct packet reception
Allows receive packets that are bigger than
CONFIG_RNDIS_BULK_EP_MPS.

Considering:
* MaxPacketsPerTransfer is 1
* MaxTransferSize is 1558
* PacketAlignmentFactor is 0 (20=1)

The rndis_bulk_out shall be able to receive transfer
up to 1558 bytes (inclusive).

Signed-off-by: Georgij Cernysiov <geo.cgv@gmail.com>
2023-02-10 15:34:05 +01:00
Morten Priess
3712094417 Bluetooth: controller: Fix CIS establishment procedures
Fixing typo in llcp_lp_cc_established revealed the need for completing
the CIS establishment procedure by additional call to local/remote
check_done function.

Fixed by exposing lr_check_done and rr_check_done with naming update and
calling after injecting the CIS_ESTABLISHED event.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2023-02-10 15:28:35 +01:00