Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ehl_crb: portability.posix.common.posix_realtime failed. #33544

Closed
chen-png opened this issue Mar 22, 2021 · 21 comments · Fixed by #35651
Closed

ehl_crb: portability.posix.common.posix_realtime failed. #33544

chen-png opened this issue Mar 22, 2021 · 21 comments · Fixed by #35651
Assignees
Labels
area: Tests Issues related to a particular existing or missing test bug The issue is a bug, or the PR is fixing a bug priority: low Low impact/importance bug
Milestone

Comments

@chen-png
Copy link
Collaborator

chen-png commented Mar 22, 2021

Bug Description
The posix_realtime test in the /tests/posix/common test suite is failing due to assert:

Assertion failed at WEST_TOPDIR/zephyr/tests/posix/common/src/clock.c:75: test_posix_realtime: (rts.tv_nsec not equal to mts.tv_nsec)

This is observed in the other configurations of testcase.yml

  • portability.posix.common
  • portability.posix.common.newlib
  • portability.posix.common.tls
  • portability.posix.common.tls.newlib

To Reproduce
Steps to reproduce the behavior:

  1. Example for a single configuration: west build -b ehl_crb -p auto tests/posix/common/
    --DCONFIG_NEWLIB_LIBC=n
  2. copy binary to USB/PXE boot media
  3. boot
  4. See error

Logs and console output
Booting Zephyr OS build zephyr-v2.5.0-1430-g911ba334a06a
...
START - test_posix_recursive_mutex
recrusive mutex lock is taken
PASS - test_posix_recursive_mutex in 0.4 seconds

START - test_posix_mqueue
PASS - test_posix_mqueue in 0.11 seconds

START - test_posix_realtime
POSIX clock set APIs
Assertion failed at WEST_TOPDIR/zephyr/tests/posix/common/src/clock.c:75: test_posix_realtime: (rts.tv_nsec not equal to mts.tv_nsec)
Nanoseconds not equal
FAIL - test_posix_realtime in 0.19 seconds

START - test_posix_timer
POSIX timer test
Timer fires every 0 secs and 100000000 nsecs
Time remaining to fire 0 secs and 899000000 nsecs
Handler Signal value :20 for 1 times
Handler Signal value :20 for 2 times
Handler Signal value :20 for 3 times
Handler Signal value :20 for 4 times
Handler Signal value :20 for 5 times
Handler Signal value :20 for 6 times
Handler Signal value :20 for 7 times
Handler Signal value :20 for 8 times
Handler Signal value :20 for 9 times
Handler Signal value :20 for 10 times
Handler Signal value :20 for 11 times
Handler Signal value :20 for 12 times
PASS - test_posix_timer in 2.112 seconds

Environment (please complete the following information):

  • OS: Fedora33
  • Toolchain: zephyr-sdk-0.12.3
  • Commit ID: 911ba33
@chen-png chen-png added bug The issue is a bug, or the PR is fixing a bug area: Tests Issues related to a particular existing or missing test labels Mar 22, 2021
@nashif nashif added the priority: medium Medium impact/importance bug label Mar 22, 2021
@jenmwms
Copy link
Collaborator

jenmwms commented Mar 25, 2021

I can reproduce this, looking into root cause.
Also, the bug report describes uses west to reproduce, but wanted to check with @chen-png and @yerabolu if this is observed on the other configurations. When I run this with twister for tests/posix/common/, all (4) configurations fail on this test at this 911ba33. If confirmed, we'll update the bug description.

@jenmwms
Copy link
Collaborator

jenmwms commented Mar 26, 2021

For consideration in debug, Spoorthy and I confirmed this is observed in the other configurations of testcase.yml

  • portability.posix.common
  • portability.posix.common.newlib
  • portability.posix.common.tls
  • portability.posix.common.tls.newlib

@jenmwms
Copy link
Collaborator

jenmwms commented Mar 26, 2021

I'm curious when was the last time this was known to be passing? I can reproduce the issue back a couple weeks already 2134f9b:
driver: clock: npcx: remove useless operands. I'll keep going and update here.

@jenmwms
Copy link
Collaborator

jenmwms commented Mar 29, 2021

Got some feedback offline and bisecting may not yield success in this case. Suggested to move forward with debug without bisect point.

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 1, 2021

Printing out the values that fail the zassert_equal( ), we see there is an off by 1 in the index 2 from the left:

DEBUG   - DEVICE: START - test_posix_realtime
DEBUG   - DEVICE: POSIX clock set APIs
DEBUG   - DEVICE: DEBUG - jen - rts.tv_nsec 21800000 mts.tv_nsec 21700000
DEBUG   - DEVICE: 
DEBUG   - DEVICE: Assertion failed at WEST_TOPDIR/zephyr/tests/posix/common/src/clock.c:76: test_posix_realtime: (rts.tv_nsec not equal to mts.tv_nsec)
DEBUG   - DEVICE: Nanoseconds not equal
DEBUG   - DEVICE: FAIL - test_posix_realtime in 0.24 seconds

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 2, 2021

Just saw a recently resolved issue that looks very similar to this issue, #25453. The solution was merged in patch #28516.

If I revert that change by moving the printk( ) after the k_usleep( ), then this issue with tests/posix/common on ehl_crb. Reverting that patch may not be the best solution here, so seeking other options.

@andyross @jhedberg Is there a timing configuration we need to adjust for ehl_crb?

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 8, 2021

This is not observed on acrn_ehl_crb at this point in the code base. A different issue is seen but is easily resolved using the CONFIG_APIC_TIMER_IRQ=48, recently discovered while working on #33593 (merged).

Adding the same APIC timer irq for this native EHL configuration did not resolve the assert observed here.

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 8, 2021

Adding the same APIC timer irq for this native EHL configuration did not resolve the assert observed here.

ehl_crb uses HPET_TIMER. APIC_TIMER is not set on ehl_crb, that is one of the differences between acrn_ehl_crb and ehl_crb.

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 14, 2021

Hi @andyross ! Did you get a chance to look at this test case failing, fixed by moving the printk?

Just saw a recently resolved issue that looks very similar to this issue, #25453. The solution was merged in patch #28516.

If I revert that change by moving the printk( ) after the k_usleep( ), then this issue with tests/posix/common on ehl_crb. Reverting that patch may not be the best solution here, so seeking other options.

@jenmwms
Copy link
Collaborator

jenmwms commented Apr 28, 2021

ping @andyross Can you please offer feedback or recommendation?

@andyross
Copy link
Contributor

andyross commented May 12, 2021

Some general ideas:

  • Would be interesting to try this with CONFIG_APIC_TSC_DEADLINE_TIMER=y to see if this is specific to the HPET driver or if it's something general.

  • Similarly ehl_crb is an SMP platform (and, like up_squared, a very fast one) so it tends to discover races in tests that other platforms don't. Does setting SMP=n or MP_NUM_CPUS=1 also address the problem? If so, was this one of the tests that recently had SMP enabled (there was a big PR that turned SMP on in a lot of places where it wasn't)? If that is true, then it argues that the test was probably always racy and we just never noticed.

@jenmwms
Copy link
Collaborator

jenmwms commented May 12, 2021

  • Would be interesting to try this with CONFIG_APIC_TSC_DEADLINE_TIMER=y to see if this is specific to the HPET driver or if it's something general.

With that, I get build error (ld) for HPET definitions. There must be a kconfig I need to adjust as well?

@jenmwms
Copy link
Collaborator

jenmwms commented May 12, 2021

  • Does setting SMP=n or MP_NUM_CPUS=1 also address the problem?

Neither resolved the issue. Thanks for the suggestions!

@nashif nashif added this to the v2.6.0 milestone May 12, 2021
@jenmwms
Copy link
Collaborator

jenmwms commented May 14, 2021

This comment in the test is confusing to me. Why does the test_posix_realtime() tell us to remove the code if we are using posix? and this k_usleep(1) is a known workaround, so its suggested we follow the previous comment of removing the code?

void test_posix_realtime(void)
{
	/* Make sure the realtime and monotonic clocks start out the
	 * same.  This is not true on posix and where there is a
	 * realtime clock, so don't keep this code.
	 */

	int ret;
	struct timespec rts, mts;
	struct timeval tv;

	printk("POSIX clock set APIs\n");

	/* Minimal sleep to align us to the next tick interval. This
	 * helps with a case that 2 consecutive calls to clock_gettime()
	 * below return different values. Note that it's still a workaround,
	 * which may break, in which case follow the suggestion in the
	 * comment above.
	 */
	k_usleep(1);

@jenmwms
Copy link
Collaborator

jenmwms commented May 14, 2021

It is not ideal - I know - but noticed this passes with a longer kusleep() (which is a workaround as-is). I extended the sleep by the difference between rts.tv_nsec and mts.tv_nsec is 100000 (100 microseconds):

k_usleep(101);

Is it worth a PR for that? I feel like it may not be acceptable because this kusleep() workaround is meant to be "minimal". However, ehl_crb is a faster board than I think was under consideration at the time this was added.

jenmwms added a commit to jenmwms/zephyr that referenced this issue May 14, 2021
The kusleep(1) in test_posix_realtime() is not sufficient for all
boards. Extend it by the difference between rts.tv_nsec and
mts.tv_nsec on ehl_crb is 100000 (100 microseconds).

Fixes zephyrproject-rtos#33544.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>
@andyross
Copy link
Contributor

FWIW: the k_usleep(1) is a tick alignment, not a workaround. The idea is that timer behavior is only deterministic if you start the test at the beginning of an OS tick. Otherwise there are inevitable timer aliasing bugs (think of them as "race conditions against the passage of real time" -- you can't take a lock to stop the universe). So you have to ask the kernel "please sleep until the very next tick expires". And the simplest way to do that is to request a sleep for the smallest unit of time expressible[1].

Playing with timeouts to make this pass makes me nervous, and implies there's something else going on.

[1] Actually there's a nanosecond API now, but nothing uses a MHz+ tick rate so this is shorter and simpler.

@jenmwms
Copy link
Collaborator

jenmwms commented May 18, 2021

It looks like there is an issue with clock_gettime(CLOCK_MONOTONIC, &mts);? Perhaps only for this board?

The realtime clock is further tested later in the test sequence, including comparison of gettime API with the gettimeofday API which works as expected [1] with clock_gettime(CLOCK_REALTIME, &rts); with gettimeofday(&tv, NULL);.

As one would expect, at the breakpoint for this bug, when I use the gettimeofday API instead of check against mts, this passes (really just reconfirming comparison described above):

+++ b/tests/posix/common/src/clock.c
@@ -71,8 +71,10 @@ void test_posix_realtime(void)
        ret = clock_gettime(CLOCK_REALTIME, &rts);
        zassert_equal(ret, 0, "Fail to get realtime clock");
 
+       ret = gettimeofday(&tv, NULL);
+
        zassert_equal(rts.tv_sec, mts.tv_sec, "Seconds not equal");
-       zassert_equal(rts.tv_nsec, mts.tv_nsec, "Nanoseconds not equal");
+       zassert_equal(rts.tv_nsec,  tv.tv_usec * NSEC_PER_USEC, "Nanoseconds not equal");

[1] (see

zassert_true(rts.tv_nsec >= tv.tv_usec * NSEC_PER_USEC,
)

@andyross
Copy link
Contributor

This turns out to be a hardware bug. I'm going to close this, there's no point in having this bug in Zephyr's metrics prior to a release, nor in airing Intel's dirty laundry on Github.

Intel folks interested in scrubbing laundry can follow the saga in RTOS-6239

@andyross
Copy link
Contributor

Oh, and I should note:

If there's desire to resolve this test failure in upstream Zephyr for the purposes of tracking or whatever, some workaround in order of my personal preference:

  1. Use the APIC_TSC_DEADLINE_TIMER, which is not susceptible to this bug
  2. Turn off TICKLESS_KERNEL and use a 100 Hz tick rate, which avoids the slow paths in the HPET hardware
  3. Turn the tick rate way down, maybe to 2000 Hz or so, which is more fiddly but would probably work too

@jenmwms
Copy link
Collaborator

jenmwms commented May 26, 2021

Hi @andyross - Thanks for noting workarounds. In our sync we considered just excluding ehl_crb for this test case, is that not feasible? Perhaps we cannot exclude for only test_posix_realtime(). This case fails for all configurations in the testcase.yml, how can we exclude the platform for just one test case inside the test suite?

Let's reopen since this will keep showing up. ehl_crb is not excluded and we do not have a workaround implemented so keep this open until resolved, please.

@jenmwms jenmwms reopened this May 26, 2021
@galak galak added priority: low Low impact/importance bug has-pr and removed priority: medium Medium impact/importance bug labels Jun 1, 2021
jenmwms added a commit to jenmwms/zephyr that referenced this issue Jun 1, 2021
The ehl_crb board has hardware issue that prevents this test from
being able to pass this otherwise-correct test. So exclude ehl_crb
from the testcase.yaml.

Fixes zephyrproject-rtos#33544.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>
galak pushed a commit that referenced this issue Jun 2, 2021
The ehl_crb board has hardware issue that prevents this test from
being able to pass this otherwise-correct test. So exclude ehl_crb
from the testcase.yaml.

Fixes #33544.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>
@najumon1980
Copy link
Collaborator

Could you please enable TCC Mode in BIOS and verify again ? For enable TCC mode, please go to BIOS "Intel Advance menu" and then go to "Intel(R) Time Coordinated Computing" and then enable "TCC Mode" . This will optimize SOC fabric, memory, etc. for maximum performance for time sensitive application which have stringent real time requirment. Please note that this can impact platform power

sabhiram added a commit to recogni/zephyr that referenced this issue Sep 16, 2021
* arm: shrink names for null-pointer exception detection Kconfigs

Reduce the length of the Kconfig defines related to
null-pointed dereference detection in Cortex-M.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* arm: cortex-m: shrink hidden option for null-pointer detection

Shrink the name of the hidden cortex-m option for the
null-pointer dereference detection feature.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* boards: arm: Update frdm_k64f and mimxrt10{60,64}_evk board docs

Updates board documentation for several NXP boards to reflect currently
supported features, NXP documentation links, clarifications on debug
probes, additional troubleshooting tips, and some minor editorial
changes.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

* MAINTAINERS.yml: Add myself as ARM collaborator

Currently the Cortex-R platform has no one watching over it.  Submitting
myself to help with the Cortex-R parts of the ARM architecture.

Signed-off-by: Bradley Bolen <bbolen@lexmark.com>

* tests: ztest: Use #if defined()

This compile test should be checking if a symbol has been defined,
otherwise it is using the kconfig value directly.  This fixes a warning

../src/main.c:115:37: warning: "CONFIG_SOC_QEMU_ARC" is not defined,
evaluates to 0 [-Wundef]

when using the -Wundef flag.

Signed-off-by: Bradley Bolen <bbolen@lexmark.com>

* nios2: max10: fix uart0 base register

Fix register for uart0.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: max10: fix function name in debug section

_Cstart was renamed, fix the docs to reflect that.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* nios2: revert back to builtin sys_io functions

Some time ago we did a cleanup of sys_io function and left nios2 broken,
especially on the MAX10 board. Revert back to the original
implementation for this architecture.

Fixes #35694

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* kernel: k_sleep: fix return value for absolute timeout

Fixes calculation of remaining ticks returned from z_tick_sleep
so that it takes absolute timeouts into account.

Fixes #32506

Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>

* dts: same70: use lower case letter in tc0 reg address

The change removes the following warning:
Warning: /soc/tc@4000C000: simple-bus unit address format error,
         expected "4000c000"

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>

* sensor: qdec_sam: use compatible atmel,sam-tc-qdec

Change the drivers's compatible from atmel,sam-tc to atmel,sam-tc-qdec.
The atmel,sam-tc should be reserved for the future counter driver.

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>

* ARC: gcc-m-cpu: use -mcpu=archs as a default for ARCv2 HS

Due to the fact that we use -mcpu=hs as a default for ARCv2 HS
the compiler doesn't generate multiply/divide/mac/64bit memory
operations instructions.

Fix that by using -mcpu=archs as a default for ARCv2 HS which is
fits for all existing boards with ARCv2 HS CPU.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>

* soc: arm: nxp: kinetis: k2x: remove MPU support

Remove (disabled) MPU support for the NXP Kinetis K2x. At least the
MK22F51212, which is the only K2x supported by Zephyr so far, does not
contain an MPU.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>

* arch: arm: cortex-m: add support for clearing NXP MPU regions at boot

Clear NXP MPU regions at boot if CONFIG_INIT_ARCH_HW_AT_BOOT is
enabled.

Fixes: #34045

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>

* cmake: arm64: Bail out if the old SDK is used

After the ARM/ARM64 split the SDK 0.12.4 is needed to be able to compile
the ARM64 arch code. Bail out if an old SDK is detected at compile time.

Also change the minimal supported Zephyr SDK to v0.12, as agreed in
Toolchain WG.  Main reason is added compiler architectures and important
inclusion of fixes, for example qemu and arm fixes for veneers (TFM)

Signed-off-by: Carlo Caione <ccaione@baylibre.com>

* manifest: update TF-M with latest upstream

The TF-M update brings in the latest PSA crypto headers,
after TF-M switched formally to MBedTLS 2.26.0. It also
brings in some important fixes for cache enabling in nRF
platforms.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* samples: tfm_integration: tfm_ipc: Remove regression dependency

Removes the dependency on the external test service from the
CONFIG_TFM_REGRESSION_S test suite, instead
demonstrating how to make direct IPC calls to the CRYPTO
service that is available as a part of standard TF-M builds.

Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>

* boards: lpcxpresso55s69: fix TFM offset for builds without MCUboot

The flash layout definition has changed in upstream TF-M for the
LCPXPRESSO55S69 platform, for builds without bootloader. Fix the
layout in the boards' configuration, as well.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* samples: tfm_ipc: update DT overlay for nucleo_l552ze_q_ns

Update overlay file for nucleo_l552ze_q_ns board,
since now the sample does not enable REGRESSION,
and thus regular TF-M flash layout for the board
is used.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* samples: tfm_integration: DT overlay doc fixes for stm32l562e_dk_ns

Minor documentation fixes for the DT overlay files for
stm32l562e_dk_ns board.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* doc/releases: v2.6.0: Update for SoCs and ARM boards

Add list of new SoCs and ARM boards added in this release.  (Folded the
STM32 board section into the ARM board section).

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* drivers: pinmux: mchp: Update pinmux based on latest HAL

Microchip HAL 1.2.0 fixed a bug in the define of GPIO
control register MUX field. The incorrect MUX defined
cleared by GPIO input pad disable field by accident.
After the MUX definition was corrected the pinmux driver
must be modified to mask off the input pad disable for
the pin to be operational.

Signed-off-by: Scott Worley <scott.worley@microchip.com>

* release: Zephyr 2.6.0-rc2

Set version to 2.6.0-rc2

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* Bluetooth: ISO: Speed up BT ISO data processing

For the native posix build the sleep calls used in tasks will stall
the zephyr instance which sets an upper limit on the data processing
interval to once every 20-30 millisecond.
This change reduces the duration of the sleep calls and increases the
TICKS_PER_SECOND to allow for shorter sleeps. This is needed to
support the data rates needed for LE Audio streaming. The rate is
tuned to support up to bidirectional 5ms ISO-intervals.
This change also increases the ISO buffer count from 1 to 5 to
allow for some buffering in the controller, which is needed for
gapless playback and/or use of burst number larger than 1.

Signed-off-by: Casper Bonde <casper_bonde@bose.com>

* Bluetooth: ISO: Add sequence number to ISO data packets

The sequence number is needed in the appliaction layer to detect lost
packets in the ISO stream in cases where the timestamp is not included.
(Sequence number is mandatory to include where timestamp is optional).
The API for the public metadata have been moved to a public header file.

As the size of the ISO meta data exceeds the default 4 octets net_buf
user_data the public ISO metadata have been moved into a seperate array.
The internal metadata is still stored in net_buf user_data.

This also fixed the user_data overflow on 32 bit systems, caused by
writing the ts into user_data on index 4 to 7, which is outside the 4
allocated bytes.

Signed-off-by: Casper Bonde <casper_bonde@bose.com>

* Bluetooth: ISO: Make it possible to setup unidirectional CIS

The current iso commands in the shell only supports setting up
a bidirectional stream or unidirectional for central role.
Adding rx/tx/rxtx option to iso listen command to allow for
peripheral side configuration of an iso connection.

Signed-off-by: Casper Bonde <casper_bonde@bose.com>

* drivers: console: rtt: Add no multithreading support

Avoid calling k_sleep when multithreading is disabled.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* manifest: update segger

Update segger with RTT version that support no multithreading.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* logging: backend_rtt: Align to changes in RTT_LOCK/UNLOCK

RTT_LOCK/UNLOCK in certain configuration creates code block (curly
braces). In that case variables declared inside are local to that
block. Moved declaration of ret variable before the block. Updated
code to ensure that RTT_LOCK/UNLOCK are in the same code block.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* drivers: can: can_set_bitrate is not a syscall

There was a verification function for can_set_bitrate calling a syscall
implementation. But, can_set_bitrate is not a syscall and does not need
to be because it is accessing the driver through other syscalls.

Fixes #34734

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* drivers: can: Fix compilation issue

Remove extra (and syntactically wrong) semicolon.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* doc/releases: v2.6.0: Update drivers section

* Remove driver categories that didn't have any major updates
* Add a first pass on new drivers that got added

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* cmake: c++ exceptions linking support

Fixes part of: #32448

This commit updates the CMake CMAKE_CXX_LINK_EXECUTABLE to include
crtbegin.o and crtend.o at the right locations when linking with gcc.

It also updates linker scripts to ensure proper location of the
exception header frame sections.

This ensure proper handling of exceptions for those architectures
- x86
- xtensa
- riscv32

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* tests: libcxx: increase ZTEST_STACKSIZE and added platforms for testing

Increasing ZTEST_STACKSIZE to 4096.
This ensures that the riscv32 platforms can succesfully execute the
C++ exception test cases.

Also add the following platforms to allow list:
- qemu_arc_em
- qemu_arc_hs
- qemu_cortex_m0
- qemu_cortex_m3
- qemu_cortex_r5
- qemu_riscv32
- qemu_x86
- qemu_xtensa

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* drivers: wifi: esp32: fix reconnect issue

Device won't reconnect automatically even if
AP station is available. This fix adds the carrier event, indicating
that network is present again enabling DHCP bound event.
Also, internal wifi event callback was added into wifi
driver to enable proper event handling.

Update west.yml to bring exposed wifi event callback.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>

Fixes #33843

* scripts: size_report: fix pylint docstrings and import issues

This fixes the issues on import statements identified by pylint.
Also add docstrings for method and classes. Most of them are
already there as comments, so simply move them as docstrings.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* scripts: size_report: recognize C++ file extensions

This adds some common C++ file extensions so the script
can recognize those as source file, and display them in
different color.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* scripts: size_report: keep full path until inserting into tree

This changes how paths are stored in intermediate structures
so that full paths are stored. This makes it more consistent
with those structures to avoid an issue where some paths are
full paths, some are relateive to ZEPHYR_BASE.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* scripts: size_report: alter how nodes are grouped together

This changes how the tree is generated. Symbols with no paths
are now grouped together instead of scattering throughout
the tree. If paths in ELF file are not all under ZEPHYR_BASE,
it will create additional node groups as 2nd level. This is
useful when not all source files are under ZEPHYR_BASE, and
provides a better indications of where they are.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* scripts: size_report: add tree node for hidden symbols

The list of symbols only contain visible symbols that can be
obtained through ELF file. There are code and data where
the toolchain never emits symbols for them and thus are not
visible in the list. So add a "(hidden)" node to the tree
to show they are there.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* scripts: size_report: add tree node for WORKSPACE

Add a tree node to group files under WORKSPACE so that
they won't be shown with full path. The WORKSPACE is
usually the same as WEST_TOPDIR unless ZEPHYR_WORKSPACE
is defined during build.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* net: sockets: tls: check return code from fcntl

Not checking return code in fcntl can result in interpreting -1 as
flags, and cause unexpected behaviour.

Fixes #35541

Signed-off-by: Emil Lindqvist <emil@lindq.gr>

* drivers: modem: ublox-sara-r4: implement F_GETFL in ioctl

Zephyr sees fnctl as an alias of ioctl, and so the F_GETFL
request should be handled here as well.

Signed-off-by: Emil Lindqvist <emil@lindq.gr>

* posix: pthread_exit: check for null before dereferencing

In a primitive SYS_SLIST_FOR_EACH_NODE check for null was
after dereferencing. Place check for null of the "thread_spec_data"
before its dereferencing.

Found as a coding guideline violation (MISRA R4.1) by static
coding scanning tool.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>

* doc: improve installing dependencies

A few language fixes to the install dependencies section.
Also adding IDs to be able to link directly.

Signed-off-by: Ruth Fuchss <ruth.fuchss@nordicsemi.no>

* doc: improve doc processor installation

A few language fixes to the "Installing the documentation
processors" section.
Also adding comments to be able to include this section in
other locations.

Signed-off-by: Ruth Fuchss <ruth.fuchss@nordicsemi.no>

* soc: mchp: Deep sleep exit sequence update

Zephyr kernel masks interrupts before calling the SoC PM
sleep entry point. On the Cortex-Mx family this prevents
wake from peripheral interrupts. The SoC PM layer requires
interrupts to wake the SoC and must prevent the CPU from
vectoring to an interrup until PM exit. The SoC does this
by setting ARM NVIC PRIMASK to 1 and BASEPRI to 0. On
return to the kernel SoC sets PRIMASK to 0 allowing ISR's
to fire. In addition the MEC HW only clears its peripheral
sleep enables if the CPU vectors to an ISR. On wake we
clear the MEC PCR sleep control register which clears all
the peripheral sleep enables so peripherals will be active
before exiting the SoC PM layer.

Signed-off-by: Scott Worley <scott.worley@microchip.com>

* ci: labeler: add Power Management

Add support for Power Management automatic labeling.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* drivers: ieee802154: fix ACK length handling

OpenThread expects the FCS field at the end of the ACK frame to be
passed with `otPlatRadioTxDone`.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>

* pm: device: Get rid of z_pm_core_devices

z_pm_core_devices was hack to set some priority between devices. It
was doing it hardcoding some devices that were the first to bring up
and the last to power down. Remove it and use the same list used to
initialize devices.

Fixes #34214

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* pm: device: Get rid of device_idx_t

It was just making the code hard to read. Also it was not following
the code guideline because the type was not telling us the sign
and size.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* linker: cpp: Disable sorting of C++ exception handling info sections

The `CONFIG_LINKER_SORT_BY_ALIGNMENT` config, which is enabled by
default, causes the sections containing C++ exception handling
information to be re-ordered for certain targets (in particular, the
64-bit arch targets). This effectively breaks the required "crtbegin.o
-> others -> crtend.o" order and causes the address of the
__EH_FRAME_BEGIN__ symbol to be invalid; thereby, causing C++
exception unwinding to fail.

This commit adds SORT_NONE property to these sections in order to
ensure that the linking order specified in the linker command line is
maintained.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* tests: cpp: libcxx: Update C++ exceptions testing filter

This commit updates the filter for cpp.libcxx.exceptions test to allow
testing on all architectures except the ones that are known to be
broken (see #32448).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* cpp: Restrict C++ exceptions usage to supported archs

This commit makes CONFIG_EXCEPTIONS un-selectable for the architectures
that are known to have broken C++ exception handling support
(see #32448).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* doc: release-notes-2.6: Add entries for ADC and PWM drivers

Add release notes related to ADC and PWM.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

* Tracing: TRACING_NONE Compilation Fix

Fixed several compilation errors that resulted from selecting
TRACING without specifying a tracing system (Tracerecorder,
CTF, Systemview). In this case (TRACING_NONE), some default trace hooks
(in tracing.h) were incorrectly named resulting in compilation errors.
The legacy sys_trace_isr_enter, sys_trace_isr_exit, and sys_trace_idle
also caused problems since these were only given as defines, resulting
in undefined reference errors since they are required by the assembly
files calling these. To solve this issue I've added a stub file
"tracing_none.c" (only compiled if TRACING_NONE) and declared the
functions in tracing.h if no tracing system is selected.

Signed-off-by: Torbjörn Leksell <torbjorn.leksell@percepio.com>

* samples: tensorflow: Fix sample path

Otherwise documentation mentions wrong path in the "west" options.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

* drivers: can: init timing.sjw also in canfd mode

This commit resolves the undefined behviour caused by missing timing.sjw
initialization.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>

* drivers/ADC: STM32: This solves coverity reported in ADC driver.

This commit it to resolve following bugs:
* Operands don't affect result.
* Logical dead code in stm32_adc driver.
Above mentioned bugs were solved by adding parenthesis and
changed the method of comparing. Since comparison of ADC
channel_id with the channel may cause loss of value.
So instead of direct comparison, introduced a mechanism to
convert channel constant to a decimal using
__LL_ADC_CHANNEL_TO_DECIMAL_NB() and strips away
the INTERNAL_CH bit and then compare with channel_id.

fix:
* zephyrproject-rtos/zephyr#35130
* zephyrproject-rtos/zephyr#35136

Signed-off-by: Affrin Pinhero <affrin.pinhero@hcl.com>

* scripts: series-push-hook: Use main as base comparison branch

Following master branch renaming to "main", update this script
to use $remote/main as base comparison branch

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>

* tests: posix: common: clock.c: rephrase comment on tick alignment

This k_usleep(1) is a tick alignment, not a workaround. Simple
reword to avoid confusion.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>

* Kconfig: `ROM_START_OFFSET` fix for samd5x

Set `ROM_START_OFFSET` for SAMD5X series to match the value
calculated in the linker file after forced alignments in
`vector_table.ld`.

Signed-off-by: Arvin Farahmand <arvinf@ip-logix.com>

* scripts: gen_syscall: ignore Coverity overrun check

Coverity does not understand syscall mechanism and will already
complain when any function argument is not of exact size as
uintptr_t. So tell Coverity to ignore this particular rule here.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* board: set chosen zephyr,shell-uart in LEON boards DTS

This associates the SHELL UART backend with the DTS uart0. It solves
an issue with unresponsive shell.

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>

* SPARC: add the Flush windows software trap

This commit implements the SPARC V8 ABI "Flush windows" software trap.
It enables support for C++ exceptions and longjmp().

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>

* tests: libcxx: added qemu_leon3 to C++ exception test

This exercises the SPARC support for C++ exceptions.

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>

* cpp: Update list of archs supporting C++ exceptions

C++ exceptions are supported on SPARC.

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>

* net: mgmt: Initialize the event callbacks statically

This commit allows to add callbacks to NET_EVENT_IF_UP events before
the network initialization.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>

* doc: zephyr.doxyfile.in: remove obsolete variable

From Doxygen 1.9.1 when running 'make htmldocs':

warning: Tag 'COLS_IN_ALPHA_INDEX' at line 1028 of file
'/tmp/tmpkbj62jo0' has become obsolete.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

* doc: mainpage.md: fix for new doxygen

I'm getting the following error on doxygen 1.9.1:

.../zephyr/doc/custom-doxygen/mainpage.md:1:
error: multiple use of section label 'index' for main page,
(first occurrence:
.../zephyr/doc/custom-doxygen/mainpage.md, line 1)
(warning treated as error, aborting now)

Extension error (zephyr.doxyrunner):
Handler <function doxygen_build at 0x7f1abf9e30d0>
for event 'builder-inited' threw an exception
(exception: Doxygen process returned non-zero (1))

This fixes it for me without breaking anything in
_build/doxygen/html/index.html that I can see.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

* doc: external_content: fix for Unix

Path.rename() uses os.rename() internally. Per the Python docs:

     The operation may fail on some Unix flavors if src and dst are on
     different filesystems.

Since 'src_adjusted' is in a temporary directory, on my flavor of
Unix, that's in /tmp, which is indeed on a different filesystem than
'dst', a destination in the doc build directory on my root filesystem.

This is causing the following error when I build the docs:

Handler <function sync_contents at 0x7f9b8fca9c10> for event
'builder-inited' threw an exception (exception: [Errno 18] Invalid
cross-device link: '/tmp/tmpfscfo20o/index.rst' ->
'/home/mbolivar/zp/zephyr/doc/_build/src/reference/drivers/index.rst')

Fix this by using shutil.move() instead of Path.rename(). The shutil
function handles cross-filesystem moves correctly. It did not take a
path-like object for both its src and dst arguments until Python 3.9,
though, so we need to convert to strings for portability on earlier
but still supported versions.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

* Bluetooth: ISO: Simplify reference handling

This makes bt_conn_cleanup to be automatically called when the last
reference to a connection of BT_CONN_TYPE_ISO is dropped.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* Bluetooth: ISO: Fix not assigning CIG and CIS IDs

When handling CIS Requested event CIG and CIS IDs must be set in order
for the channel to be properly accepted.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* Bluetooth: ISO: Fix call order of connected callback

The state shall be set before calling the callback as it could be check
code behind would expect the channel to be in connected state.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* Bluetooth: conn: Add support for ISO connections to bt_conn_get_info

This enables bt_conn_get_info to be used with connection of type
BT_CONN_TYPE_ISO.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* Bluetooth: shell: Add connection type information to connections command

This prints information about the role and id along with connection
parameters in case the connection is of LE type.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* Bluetooth: conn: Align cleanup for ISO connections

This makes connections of type BT_CONN_TYPE_ISO use BT_CONN_CLEANUP to
cleanup so the TX and RX queues are properly cleanup.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

* drivers: flash: nrf_qspi_nor: Fix no multithreading compilation

Fixing error introduced in 951e72b94769f55b0c2f2cf70f81d063ec81d11e
where ifdef was converted to IS_ENABLED. Ifdef was required because
element in the struct does not exist when multithreading is disabled.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* doc/releases: v2.6.0: Updated Major enhancements section

Added bullets for ARC64, ARM32/64 split, TCP legacy removal, and
ARM v8.1-m support.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* soc: xtensa: linker: Update linker scripts for C++ build

When we link in crtbegin.o for C++ exception support we end up pulling
in the .tm_clone_table section.  We need to update the linker scripts
to handle this.  soc/xtensa/sample_controller/linker.ld was already
updated, this fixes the others.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* drivers: serial: nrf_uarte: Fix async/int TX api in inactive state

Currently zephyr has no means to control access to the uart
driver when it is inactive, e.g. shell is not aware of uart
being in idle state and calls asynchronous api. Add early
return to TX starting procedure if device is idle.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* doc: security: Change 'master' to 'main'

Fix up a handful of references to 'master' in the security documentation
to refer to the new 'main' branch.

Signed-off-by: David Brown <david.brown@linaro.org>

* kernel: mmu: add doxygen group for demand paging APIs

This adds the doxygen group for demand paging APIs in
sys/mem_manage.h header file.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* kernel: mmu: rename z_eviction* to k_mem_paging_eviction*

These functions and data structures are those that need
to be implemented by eviction algorithm and application
outside kernel. Promote them from z_* so these can be
included in documentation.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* kernel: mmu: z_backing_store* to k_mem_paging_backing_store*

These functions are those that need be implemented by backing
store outside kernel. Promote them from z_* so these can be
included in documentation.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* doc: add some bits about demand paging

This adds some information about demand paging in Zephyr.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

* doc: release: Add Bluetooth release notes for 2.6

Document the most important changes in the Bluetooth subsystem for the
2.6 release.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>

* net: capture: Fix the function documentation

The net_capture_pkt() does not return anything so remove the
return description from the function documentation.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>

* net: capture: Fix the return value of net_capture_is_enabled()

The net_capture_is_enabled() function returns boolean value
so fix the function prototype.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>

* kernel: stack_sentinel: disable in single-threaded builds

Add a dependency on MULTITHREADING for the
STACK_SENTINEL feature, so it may not get
enabled in single-thread Zephyr builds.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* tests: arm: fix name for arm_irq_vector_table test suite

Minor fix to the name for the arm_irq_vector_table
test suite, removing the 'interrupt' from the name.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* net: l2: bluetooth: Handle error if failed to register server

Return error code if init code failed to register the L2CAP server.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* docs: Change a number of 'master' branch refers to 'main'

Now that we use 'main' for git development, update the docs to reflect
or point there instead of 'master'.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* Bluetooth: host:l2cap: fix sending error in le_ecred_reconf_req

Result to send was overwritten by BT_L2CAP_RECONF_SUCCESS just after
exiting while loop. This caused to send success response even if
reconfiguration failed. Now, result is initialized to success value,
and if reconfiguration fails, this value will be overwritten with
appropriate one. Added BT_L2CAP_RECONF_INVALID_CID (0x0003) for invalid
cid in request. Added BT_L2CAP_RECONF_OTHER_UNACCEPT (0x0004) to return
if MPS is to small. Reordered checks for mps/mtu as
BT_L2CAP_RECONF_OTHER_UNACCEPT is expected to be returned if both mps
and mtu are to small.

This was affecting L2CAP/ECFC/BI-05-C and L2CAP/ECFC/BI-05-C

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>

* doc: release: add documentation changes

Add a list of most relevant documentation changes.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* doc: toolchains: move description of alternative install method on mac

On macOS there exists an alternative install method for gnuarmemb.

Unfortunately this information was located with the Intel oneApi
toolchain description and not the GNU arm Embedded toolchain.

Move the description to its correct location.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* doc: release-notes-2.6: Added and refined some testcases of kernel

1.Added or refined some testcases, most of them are neagtive tests, to
  improve the test code coverage.

2.Provide test excution time per ztest testcase.

3.Add a feature which handles pytest script in twister and provide an
  example.

Signed-off-by: Enjia Mai <enjiax.mai@intel.com>

* docs: Fix doxygen errors in include/sys/mem_manage.h

Various params didn't match between docs and functions.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* doc: release notes: added oneApi toolchain to release notes

Adding Intel oneApi as new toolchain supported in Zephyr.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* doc: release: v2.6: add note for UART console input expired options

Add note for UART console input expired mechanism Kconfig options.

Signed-off-by: Mulin Chao <mlchao@nuvoton.com>

* doc: release notes: update tracing section

Update tracing section for the v2.6 release.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* lib: newlib: fix _gettimeofday hook

The time() function works correctly with the minimal libc, but always
returns -1 with the newlib libc. This is due to the _gettimeofday hook
being implemented that way.

Fix that by calling gettimeofday in the _gettimeofday hook instead of
returning -1.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

* tests: error_hook skipping div-by-0 test on cortex M0 M0+

On the Cortex M0+, M0, M23 the div-by-zero is not mapped
as an hardware exception but triggers a HardFault.
The test case is skipped for any ARMV6_M_ARMV8_M_BASELINE.

Signed-off-by: Francois Ramu <francois.ramu@st.com>

* nios2: Fix C++ exception handling info linking

The NIOS2 architecture linker script was including `cplusplus-ram.ld`
linker script after `__data_ram_end`, and this caused the content of
`.gcc_except_table` section to be not copied to the RAM by the
`z_data_copy` function; leading to the C++ exception handling
malfunction.

This commit relocates the `cplusplus-ram.ld` linker script inclusion
such that the contents of the relevant sections are properly copied by
the `z_data_copy` function.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* cpp: Remove C++ exception handling arch restriction

The C++ exception handling feature is now supported on all
architectures.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* tests: cpp: libcxx: Test C++ exception handling on all archs

The C++ exception handling feature is now supported on all
architectures.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* doc: release: final release notes for cortex-m

Finalize v2.6.0 release notes for ARM Cortex-M.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* doc: release: release notes for Cortex-R

v2.6.0 release notes for Cortex-R.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* doc: release notes: remove blank lines

Remove blank lines between bullet points.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>

* pm: device: remove CONFIG_PM_MAX_DEVICES

When a device is defined a new pointer to a device will be created in
the "z_pm_device_slots" region, effectively creating a device array with
the same size as the number of system devices. This array is then used
by the device PM subsystem to keep track of suspended devices during
power transitions.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* sensor: use function properties to document the context

We now have function properties which can replace the confusing message
in the doxygen docs.

Fixes #10499

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* Bluetooth: host: Notify application about prepare write error

Notify application about prepare write error when continueing the write
procedure fails when RX thread is processing responses. It is possible
that this operation fails, either because of disconnection or ATT
timeout on the ATT bearer. Notify the application in case it needs to
clear up resources, e.g. the write parameters.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* Bluetooth: host: Reject remote public key on same X coordinate.

Reject remote public key when this has the same X coordinate.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* Bluetooth: host: Log failure to initiatie security for bonded peer

Log failure to initiatet security for bonded peer when GATT wants to
initiate security for CCCs for the remote.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* Bluetooth: samples: Fix peripheral sample handling of string values

Fix peripheral sample handling of string values. The read callback
uses strlen to get the length of the current string value. Make sure
that the string value is always zero-byte terminated.

Fix multiple characteristics using the same storage for its value.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* Bluetooth: hci: Add response structure for HCI CTE sampling enable cmd

Add missing response structure for HCI_LE_Set_Connectionless_IQ_-
Sampling_Enable command.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>

* Bluetooth: controller: hci: Set correct return params for CTE sampl enable

Fix bug of missing sync_handle parameter in return data in
HCI_LE_Set_Connectionless_IQ_Sampling_Enable commnad
handling function.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>

* Bluetooth: host: Check sync_handle return value when CTE sampl enable

Check correctness of returned sync_handle value while requesting
HCI_LE_Set_Connectionless_IQ_Sampling_Enable in controller.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>

* dts: arm: nxp: Add port property to nxp,lpc-gpio nodes

Add a port property to describe which hardware port a GPIO device node
is describing since we can't tell from the registers (as the registers
are interleaved in the same MMIO space).

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* drivers: gpio: mcux_lpc: Convert driver to use devicetree port prop

Move to using port property for a few cases in which we need to know
which specific hardware port a device is for.  This allows us to
remove the PORT0/1 Kconfig options.  This also fixes the issue that
assumed pio0 would map to DT_INST(0) and pio1 would map to DT_INST(1)

Fixes #35693

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* workflows: backport: Switch to using main

The  workflow was pointing to `master` instead of `main`, which
prevented it from running after the branch was renamed.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>

* Bluetooth: Host: add missing zero CIDs in ecred_conn_req

Fix missing 0x0000 CIDs in response for ecred_conn_req. Previously,
when one of "All connections refused" error i variable was set to 0,
thus no CIDs were copied to response.

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>

* Bluetooth: Host: do not overwrite result in  le_ecred_conn_req

For more than one requested channels in le_ecred_conn_req only result is
overwritten in every iteration. This causes an issues if after failed
l2cap_chan_accept occures successful one: returned result will be
BT_L2CAP_LE_SUCCESS, where in reality should be returned error
and non-zero Destination CIDs will signal "Some connections refused".
Now, overwrite error only if the last one failed. If no errors occur,
result will remain BT_L2CAP_LE_SUCCESS.

This was affecting test cases L2CAP/ECFC/BV-20-C

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>

* Bluetooth: Host: change error returned when ecred_conn_req

BT_L2CAP_LE_ERR_INVALID_PARAMS shall be returned instead of
BT_L2CAP_LE_ERR_UNACCEPT_PARAMS.

This was affecting test case L2CAP/ECFC/BV-26-C

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>

* Bluetooth: ISO: Fix BIG cleanup

Fix a regression for cleaning up BIGs added by
80c824f18ee80caa5bd162b9d2957dde1639add6 where the way
ISO connections were unref'ed was changed.

bt_iso_cleanup has been changed to only effect CIS
(as the unref from that has been removed), so instead
of calling bt_iso_cleanup we just call
bt_conn_unref directly.

This also removes some unref's from the BIG complete
and BIG Sync complete event handlers as the BIS bt_conns as
they don't increase the ref counter before anymore.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>

* doc/releases: v2.6.0: Update for logging subsystem

Update release notes with logging v2 info.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* doc: add docs for west spdx

These are based on the commit log in
fd31b9b4acb5d48f83ef8cf0f3afe3e48b7844c0.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

* doc: release-notes-2.6: west extensions

Just the extensions changes for Zephyr 2.6, since west has its own
release notes page as it's developed on its own pace.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

* drivers: i2c: gpio: fix compilation

Fix the compilation of i2c_gpio.c after the gpio_config() syscall was
removed.

Fixes: 3632815e2e124c0c4b1ed09cd91f60ecbd2fda83

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>

* boards: arm: arty: fix compilation with v2c_daplink shield enabled

Fix the compilation of board.c when the DAPlink QSPI MUX devicetree
node is enabled.

Fixes: 3632815e2e124c0c4b1ed09cd91f60ecbd2fda83

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>

* drivers: can: sjw == 0 in can_set_timing should not change sjw

If the supplied sjw in the timing parameters is zero,
the sjw parameter should not be changed.
This fixes the uninitialized swj in can_set_bitrate.

Signed-off-by: Alexander Wachter <alexander@wachter.cloud>

* modules: mbedTLS: Add separate Kconfig entry for MBEDTLS_HAVE_TIME_DATE

Currently the MBEDTLS_HAVE_TIME_DATE mbedTLS option is enabled based on
the CONFIG_POSIX_API option. This doesn't seem right, since the enabling
the POSIX API does not guarantee that there is a valid time source in
the system. This was the case for the qemu_x86 platform, where enabling
POSIX_API caused TLS handshake failures due to certificate validation
errors caused by no valid time avaialble in the system.

Fix this by adding a specific KConfig entry for date/time configuration
in mbedTLS. Applications that need to enforce date verification in
mbedTLS should enable it explicitly instead of relying on the
non-obvious implicit configuration.

Fixes #35401

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>

* Bluetooth: Host: Add status check BIG sync/create events

Add a status check for the BIG sync established and
BIG sync created events such that we don't log a warning
of invalid BIS count when it is an error event.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>

* tests: bluetooth: bsim: Updated advx test to verify sync data

Updated advx test to verify sync data when no extended
header flags are set in the PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* Bluetooth: controller: Fix incorrect ext header flag access

Fix Periodic Advertising data population from corrupting
the PDU by populating fields when there is no flags in the
common extended advertising header.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* tests: bluetooth: bsim: Updated advx test to verify previous sync data

Updated advx test to verify previous sync data when no
extended header flags are set in the PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* Bluetooth: controller: Fix incorrect prev periodic header flag access

Fix Periodic Advertising PDU population from incorrectly
populating new PDU when there is no common extended header
flags being set in the previous PDU and or the new PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* Bluetooth: controller: Fix incorrect prev aux header flag access

Fix Extended Advertising PDU population from incorrectly
populating new PDU when there is no common extended header
flags being set in the previous PDU and or the new PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* Bluetooth: controller: Minor improvements to ext header population

Minor refactor and improvement to common extended header
population.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* thread analyzer: fix formatting for unsigned int

On 64bit systems, this was issuing warnings due to wrong formatting.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: up_squared: remove 32bit variant

This board was created for the transition to all 64bit, it is not needed
anymore.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: qemu_x86_coverage: remove board testing coverage

This board was added to test coverage feature when coverage was
introduced. This is now being testing with other boards and
configurations on a regular basis, so no need for this extra overhead in
CI.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: minnowboard: remove untested and old board

Remove minnowboard configuration which is very basic and can be brought
back by just taking another X86 configuration. We have not tested this
board for a while and it is not being used actively, so remove it.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* release notes: document removed x86 boards

Document removed boards.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: acrn: do not run net/bt tests

Do not run those tests, the features are not enabled in ACRN.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* docs: release notes: PM API changes

Add information about API changes in device runtime PM.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* docs: release notes: PM release notes

Add notes about PM changes during this release cycle.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* docs: release notes: Simple tags fixes

Fix some wrong tags usage.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* soc: arm: Fix condition to set lpc55xxx flash wait states

Commit f5c6afeccb53e4121ba5e97294cf589a752623d9 attempted to avoid
accessing lpc55xxx flash registers in nonsecure mode by conditionalizing
part of the SoC clock initialization routine on whether the flash driver
was enabled. This caused secure applications without the flash driver
enabled (e.g., hello_world on lpcxpresso55s69_cpu0) to not boot or show
any console output. Fix this by changing the condition to depend on
whether we are building a nonsecure image.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

* release: Zephyr 2.6.0-rc3

Set version to 2.6.0-rc3

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* doc/releases: v2.6.0 Add new R-Car platform drivers

Add to the v2.6 release note all Renesas R-Car drivers
that have been merged during this period.

Signed-off-by: Aymeric Aillet <aymeric.aillet@iot.bzh>

* boards: arm: bl5340: Fix LIS3DH IRQ levels

Levels were wrongly assigned to being active low instead of active high

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>

* logging: Eclipse CDT parser workaround

Recent rework in logging api brings complicated macros which can
overhelm Eclipse CDT parser.
This workaround disables expansion of LOG_xxx macros in Eclipse.

Signed-off-by: Jan Pohanka <xhpohanka@gmail.com>

* doc/releases: v2.6.0: Updates and cleanups

* Add high level bullets about tracing & power mgmt
* Removed duplicated bluetooth section
* Remvoed RISC-V section, to changes of note for this release

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* doc: colibri board: Add missing empty lines

Two code-blocks were not correctly rendered, due to missing
empty lines before them. This commit fixes this.

Signed-off-by: Christian Taedcke <christian.taedcke@lemonbeat.com>

* boards: doc: Update H3ULCB documentation

Update documentation for H3ULCB board following the
addition of new features during v2.6 windows.

Signed-off-by: Aymeric Aillet <aymeric.aillet@iot.bzh>

* tests: posix: common: clock: exclude ehl_crb from test posix realtime

The ehl_crb board has hardware issue that prevents this test from
being able to pass this otherwise-correct test. So exclude ehl_crb
from the testcase.yaml.

Fixes #33544.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>

* doc/releases: v2.6.0: Update to MCUmgr and Shell section

Short update to list of changes to MCUmgr that impact Zephyr.
Note to Shell on changes that affect mcumgr.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>

* lib: newlib: Add minimum required heap size config

This commit adds a new `CONFIG_NEWLIB_MIN_REQUIRED_HEAP_SIZE` config
that allows user to specify the minimum required heap size for the
newlib heap, and makes `malloc_prepare` validate that the memory space
available for the newlib heap is greater than this value.

The default minimum required heap size values were empiricially
determined, so as to allow the basic standard C functions such as
`printf` and `scanf` to work properly.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* tests: mem_alloc: Increase heap size for newlib nano test

This commit increases the heap size for the newlib nano test to 2048,
which is the recommended minimum required to ensure proper operation
(see #35799).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* tests: net: getaddrinfo: Increase newlib heap size

This commit increases the newlib heap size to 2048, which is the
recommended minimum required to ensure proper operation of the newlib
nano used by test (see #35799).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

* drivers/sensor: lis2dh: use gpio_dt_spec oriented macros

Use gpio_dt_spec structure and related macros for both drdy
and AnyMotion interrupts, to have a more compat, readable and
safe code. Moreover, skip setting DRDY or AnyMotion trigger
from application if the corresponding irq-gpios has not been set.

(This commit also fixes #34794)

Signed-off-by: Armando Visconti <armando.visconti@st.com>

* samples: net: sockets: big_http_download: Update certificate

The Let's Encrypt X3 certificate is no longer in use, replace it with an
up-to-date certificate.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>

* doc: scripts: gen_devicetree_rest: add workaround for page width

Since Zephyr docs switched to fixed-width, the binding pages are not
displayed correctly. We should move to another data representation
format that works better for fixed-width documents. Until this decision
is made, add a workaround that forces the template to expand page width
to the maximum on binding pages.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* doc/releases: v2.6.0: Updates

* Removed ARCH POSIX, driver/pinmux, updatehub, settings, random, POSIX
  subsystem, and LGVL sections as no significant changes this release
* Add new drivers for eeprom, timer and watchdog sections
* Added bullet item about shared interrupt support being devicetree
  based
* Added bullet about moving of CMSIS portability headers

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* samples/boards/stm32: PM Blinky: Rework README

Rework README to provide a correct and understandable status.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>

* Bluetooth: host: Fix CCC store on write for multiple connections

Fix CCC store on write feature for multiple connections. CCCs are only
enqueued for storing when going from no connections subscribed to any
connection subscribed.
The CCC should be stored when its value is changed for the specific
connection.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* doc: intro: Add a reference to ARMv8-R

Specify that 64-bit Cortex-R, ARMv8-R, is now supported in Zephyr.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>

* doc: gs: Clearly state the main dependencies min version

Introduce a table with the minimum version required for the three main
dependencies (CMake, Python and DTC). At the same time remove the CMake
help code from the GSG, since it's just a duplicate of the instructions
that Kitware provides.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Co-authored-by: Ruth Fuchss <ruth.fuchss@nordicsemi.no>

* Tracing: Incorrect Unlock Mutex Trace Hook Fix

Changed location of the last k_mutex_unlock trace hook since it was
being called after k_sched_unlock, which could result in tracing
scenarios (other thread waiting for lock) where it appeared that a
mutex was being locked again before becoming unlocked.

Signed-off-by: Torbjörn Leksell <torbjorn.leksell@percepio.com>

* cmake: warn the user if a Zephyr library is created in app-mode

Fixes: #19582

When `find_package(Zephyr)` completes then all boilerplate code has been
processed and all Zephyr libraries has been placed inside the
whole archive flags.

Also all libs dependencies has been processed.

This is indicated by the presence of the zephyr_prebuilt target.

Thus, warn the user if `zephyr_library()` / `zephyr_library_named()`
is called in app-mode.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* doc: release-notes-2.6: add release notes for disk drivers

Add release notes for disk drivers.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>

* doc: release-notes-2.6: add release notes for USB

Add release notes for USB.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>

* drivers/sensor: lps22hh: Fix the raw to kPa sample conversion

The lps22hh 24 bit raw sample is left aligned, which means that
it needs to be right-shifted by 8 before applying conversion.
Moreover the conversion has been simplified for clarity.

Fix #35871

Signed-off-by: Armando Visconti <armando.visconti@st.com>

* nxp: rt series eth timer clock enable

enable ethernet timer clock when enabling ptp

Signed-off-by: Hake Huang <hake.huang@oss.nxp.com>

* drivers/sensor: lis2mdl: Fix temperature sample handling

The lis2mdl temperature samples work with a level of 25 Celsius.
When temperature goes below that level the samples become negative
and there was an issue in properly propagating the sign.

Fix #35910

Signed-off-by: Armando Visconti <armando.visconti@st.com>

* boards: arm: 96b_aerocore2: fix table rendering

J1 header table was not rendered correctly.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* doc: release: Add sensor changes to v2.6.0 release notes

Fills in the sensor drivers section of the v2.6.0 release notes.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

* doc: release: Add NXP-related changes to v2.6.0 release notes

Adds v2.6.0 release notes for NXP boards.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

* doc/releases: v2.6.0: add resolved issues

Add list of all resolved issues since 2.5.0.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* boards: rt600: Add information to connect an external debug probe

Update documentation to include information on how to connect
an external debug probe

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>

* docs: pm: System power management diagram

Add a diagram for system power management.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

* tests: i2s_speed: Increase the RX buffer count

The NXP I2S driver queues 2 receive buffers to avoid receive overflows.
Allocate an extra block so we do not see test failures due to allocate
failures

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>

* logging: log_core.c: fix coding guideline 15.7 missing comment

The final else {} in the if...else if is missing required
comment (non-empty, ';' is not sufficient). This adds a comment
to comply with CG 15.7.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>

* logging: log_msg.c: fix coding guideline 15.7 missing comment

The final else {} in the if...else if is missing required
comment (non-empty, ';' is not sufficient). This adds a comment
to comply with CG 15.7.

Signed-off-by: Jennifer Williams <jennifer.m.williams@intel.com>

* arch/x86_64: Terrible, awful hackery to bootstrap entry

Because of a historical misunderstanding, by default the ACRN
hypervisor wants to load Zephyr at address 0x1000 and enter the binary
at that same address.  This entry point corresponds to the __start
symbol of the build they were given, which is a 1-cpu non-SMP
configuration.  Unfortunately, when we build with
CONFIG_MP_NUM_CPUS=1, the code in locore.S #if's out the 16 bit entry
point for the auxiliary CPUs at the start of the section.  So in the
build ACRN received, the start address happened to be 0x7000, the same
address we need to launch the AP processors from.

That's right: under ACRN, the SAME ADDRESS used to enter the OS in 32
bit mode needs to be used later to boot CPUs running in 16 bit real
mode!

The solution, such as it is, is to put a 32 bit jump at the entry
address which hops to the 32 bit OS entry code, and then scribble NOP
instructions over that jump once we get there so that the next time we
reach that address (in real mode) we fall through to the correct
entry.

This patch should be considered a temporary workaround.  While it
works on all x86 hardware, it's not really needed.  A much better
solution would be to eliminate the locore linker region entirely
(which causes other headaches) and enter the Zephyr binary in a 32 bit
address somewhere in the contiguous high memory area.  All that locore
is needed for is the 16 bit bootstrap code for SMP processors, which
is ~6 instructions and can be copied in from the kernel at runtime.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* arch/x86_64: Use modern CR0 assembly

The 16 bit bootstrap code for SMP CPUs was using the 286-era "lmsw"
instruction (load machine status word) to set the protected bit in CR0
(which is the modern evolution of the same register), presumably
because this is 16 bit code and we can't move a dword into CR0.

But that's wrong, because the full instruction set *is* available in
real mode on a 386, you just have to use a operand size prefix to get
to it, which the assembler emits for you automatically when you use
the .code16 directive.

Write this conventionally and use modern (e.g. 1986-era) instructions.
It also has the advantage of not confusing much more modern
hypervisors like ACRN by issuing instructions they (and I!) never knew
existed.

Fixes #35076

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* boards/x86/acrn: Add APIC IDs

The ACRN hypervisor uses 0, 2, 4, 6 as its local APIC IDs for
virtualized CPUs and not the 0, 1, 2, 3 defaults we have.

(I hate this feature, having to manually (!) probe and code these
things in C isn't scaling.  Zephyr needs to do the probing on its own
somehow, even if it's an offline tool in Linux or something.)

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* boards/x86/acrn_ehl_crb: Enable SMP by default

SMP is working now, make a 2-cpu configuration default for this
device.

Note that this requires changes to the default ACRN build
configuration!  In hybrid.xml, you need to specify multiple physical
CPUs for the VM to uses, e.g.:

    <vm id="0">
        ...
        <cpu_affinity>
            <pcpu_id>0</pcpu_id>
            <pcpu_id>1</pcpu_id>
        </cpu_affinity>
    </vm>

Failing to build with this change will result in the system hanging at
boot trying to start up a CPU that won't run.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* boards/x86/acrn: Rework board documentation

ACRN build and configuration is non-trivially complicated, and so far
integration documentation has been mostly missing, and users have had
to get by via copying from existing integration efforts with minor
changes, leading to repeated mistakes and persistent confusion.  This
is an attempt to document the process from first principles, with an
eye toward informing integrators (not me!) who might come by later to
better automate things.  Some of the content is going to look remedial
to someone already familiar with e.g. ACRN configuration or EFI boot.

This simply replaces the pre-existing docs, which were for earlier
versions of ACRN where Zephyr was launched from the service OS instead
of the now-standard pre-launch VM mode.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* boards/x86/acrn: Use APIC_TSC_DEADLINE_TIMER

This board got forgotten when we migrated the older APIC_TIMER users.
Now the platform is SMP by default and the older driver refuses to
build.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>

* size_report: give root node a unique identifier

Call the root node 'root', otherwise we end up with two nodes with the
same identifier ':'.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* boards: arm: Clarify J-Link OpenSDA firmware usage for frdm_k64f

Updates the frdm_k64f board documentation to clarify that the J-Link
OpenSDA firmware version depends on the DAPLink bootloader version.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

* Bluetooth: controller: Check length field of scan response data

Check the length field of the scan response data.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

* drivers: can: mcan: Fix DBTP sjw register writes

The data-sjw value was incorrectly written to the NBTP register when it
should be written to the DBTP register.

This fixes a regression introduced by
5e0ca9b41e5cd4d1d84ceef919510f3f2a22ecfe.

Signed-off-by: Christoph Steiger <c.steiger@lemonage.de>

* drivers: fix pm callback signature

For some reason a few drivers were not converted to the new device PM
callback signature. The reason may be because the device PM part is
compiled only when CONFIG_PM_DEVICE=y, a condition not enabled in CI by
default.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* shell: Add missing dependency to shell log backend

Shell log backend depends on logging being enabled. Lack of this
dependency leads to compilation failure when logging is disabled.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

* manifest: segger: zephyr kconfig options

Update segger module version to revision that re-introduces zephyr
Kconfig options

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>

* drivers: cc13xx_cc26xx: fix pm.h not included

Fixes #35916.

Signed-off-by: Stancu Florin <niflostancu@gmail.com>

* tfm: interface: Fix bug where FPU registers were not restored correctly

The caller saved registers were restored both as caller saved and
callee saved registers, i.e. register 0-15 were restored into
both register 0-15 and 15-31.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>

* Bluetooth: controller: Fix conn setup regression

Fix incorrect and redundant use of ticker user id ULL_LOW
instead of ULL_HIGH when setting up a connection using a
mayfly to disable LLL context. Also, the LLL context pointer
is invalid, where node rx is passed instead of LLL context.

Use the ULL disabled callback when done event has not yet
been processed, or a direct connection setup in ULL_HIGH
context when ULL is already disabled (reference count is
zero) is sufficient.

Regression introduced in commit 30f260dfaaf7 ("Bluetooth:
controller: Fix adv/scan context access post release").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>

* pm: do not use deprecate Kconfig

CONFIG_DEVICE_POWER_MANAGEMENT is deprecated, use CONFIG_PM_DEVICE
instead.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>

* shell: fix tab for dynamic commands

The tabulator handler creates a single structure if it is handling
dynamic commands. If the currently processed dynamic command has a
dynamic subcommand they both share the same structure.
As a result tabulation operation may result in undefined behaviour.

As a solution, a new structure was introduced to keep subcommand
information.

Fixes #35926.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>

* doc/releases: v2.6.0: minor updates

* Added a bullet about new storage subsystem feature
* Moved disk subsystem changes into disk section

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

* cmake: support ZephyrBuildConfiguration_ROOT for package location

Fixes: #35890

The current implementation of Zephyr build configuration CMake package
only allows the build configuration package to be placed inside a
Zephyr workspace.

This commit extends the usability by allowing users to locate the
Zephyr build configuration CMake package outside the Zephyr workspace
and then refer to the package using
`-DZephyrBuildConfiguration_ROOT=<path>`
`set(ZephyrBuildConfiguration_ROOT <path>)`

This allows users greater flexibility in their workspace layouts.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* doc: Zephyr build configuration CMake package freestanding

Update to the Zephyr build configuration CMake package documentation
with description on how a Zephyr build configuration CMake package can
be located outside a Zephyr workspace.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>

* doc: application: add details on example-application

Mention example-application as a reference application.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

* doc: add example application to the release notes

Mention the example application as a major enhancement and provide a
link to its repository.

Signed-…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Tests Issues related to a particular existing or missing test bug The issue is a bug, or the PR is fixing a bug priority: low Low impact/importance bug
Projects
None yet
6 participants