Date   

Re: #BluetoothMesh Lighting Model implementation #bluetoothmesh

Aaron Xu
 

Hi,

MyNewt's is a good start point. But looks need more work to make zephyr bluetooth mesh be used in light.
I am looking forward it. In the mean time, I can start sensor model coding on zephyr when the 1.12 released.

Regards,
Aaron

vikrant8051 <vikrant8051@...> 于2018年6月7日周四 上午2:08写道:

Hi Johan, 

Mynewt's lighting model app is very simple & basic, if compare it with diagram on page 296 of model specs. And it is not what I'm expecting.

Hello Bluetooth_SIG members,

Is Bluetooth_SIG going to maintain this complicated architecture in Spec 2.0  Or there will be something easy on the way ?

Thank You!!

On Wed, Jun 6, 2018, 8:25 PM Johan Hedberg <johan.hedberg@...> wrote:
Hi Vikrant,

On Wed, Jun 06, 2018, vikrant8051 wrote:
> is there any one who tried to implement Lighting Models (page 296 of
> Mesh_Model_Specification v1.0.pdf) using Zephyt #BluetoothMesh API ?
>
> I want to control three things -> Light On Off, Light Lightness
> (intensity), Light CTL (cool to warm white) using single message. This is
> possible only with Lighting Models.
>
> Also want to build remote using #nRF52840_PDK which support Lighting Client
> Models.
>
> FYI, this is Mynewt implementation,
> https://github.com/apache/mynewt-core/blob/master/apps/blemesh_light/src/light_model.c

MyNewt's Bluetooth Mesh is essentially the same as Zephyr's mesh, since
it was ported from Zephyr. Most likely you can take any model
implementation from there and use it directly (or with minor changes)
with Zephyr. In fact, I'd welcome if someone wants to port any missing
mesh models from the MyNewt tree to Zephyr.

Johan


Cellular Modem support

Ryan Erickson
 

Hello,

Does anyone know if there are any plans or if work is being done to add a proper cellular modem layer in zephyr?
I know I could do this at the app layer, but I thought adding this into the OS would provide a better solution.  For example, the cell module I plan to use has an IP stack embedded in it.  To open a socket on the cell module, AT commands are used.  The goal would be to use the zephyr networking layer to open sockets which then sends the proper AT command to cell module over UART.  This would allow seamless use of high level APIs like MQTT, etc.

Thanks,

Ryan


Re: #BluetoothMesh Lighting Model implementation #bluetoothmesh

vikrant8051 <vikrant8051@...>
 

Hi Johan, 

Mynewt's lighting model app is very simple & basic, if compare it with diagram on page 296 of model specs. And it is not what I'm expecting.

Hello Bluetooth_SIG members,

Is Bluetooth_SIG going to maintain this complicated architecture in Spec 2.0  Or there will be something easy on the way ?

Thank You!!

On Wed, Jun 6, 2018, 8:25 PM Johan Hedberg <johan.hedberg@...> wrote:
Hi Vikrant,

On Wed, Jun 06, 2018, vikrant8051 wrote:
> is there any one who tried to implement Lighting Models (page 296 of
> Mesh_Model_Specification v1.0.pdf) using Zephyt #BluetoothMesh API ?
>
> I want to control three things -> Light On Off, Light Lightness
> (intensity), Light CTL (cool to warm white) using single message. This is
> possible only with Lighting Models.
>
> Also want to build remote using #nRF52840_PDK which support Lighting Client
> Models.
>
> FYI, this is Mynewt implementation,
> https://github.com/apache/mynewt-core/blob/master/apps/blemesh_light/src/light_model.c

MyNewt's Bluetooth Mesh is essentially the same as Zephyr's mesh, since
it was ported from Zephyr. Most likely you can take any model
implementation from there and use it directly (or with minor changes)
with Zephyr. In fact, I'd welcome if someone wants to port any missing
mesh models from the MyNewt tree to Zephyr.

Johan


Re: #BluetoothMesh Lighting Model implementation #bluetoothmesh

Johan Hedberg
 

Hi Vikrant,

On Wed, Jun 06, 2018, vikrant8051 wrote:
is there any one who tried to implement Lighting Models (page 296 of
Mesh_Model_Specification v1.0.pdf) using Zephyt #BluetoothMesh API ?

I want to control three things -> Light On Off, Light Lightness
(intensity), Light CTL (cool to warm white) using single message. This is
possible only with Lighting Models.

Also want to build remote using #nRF52840_PDK which support Lighting Client
Models.

FYI, this is Mynewt implementation,
https://github.com/apache/mynewt-core/blob/master/apps/blemesh_light/src/light_model.c
MyNewt's Bluetooth Mesh is essentially the same as Zephyr's mesh, since
it was ported from Zephyr. Most likely you can take any model
implementation from there and use it directly (or with minor changes)
with Zephyr. In fact, I'd welcome if someone wants to port any missing
mesh models from the MyNewt tree to Zephyr.

Johan


#BluetoothMesh Lighting Model implementation #bluetoothmesh

vikrant8051 <vikrant8051@...>
 

Hi to all,

is there any one who tried to implement Lighting Models (page 296 of Mesh_Model_Specification v1.0.pdf) using Zephyt #BluetoothMesh API ?

I want to control three things -> Light On Off, Light Lightness (intensity), Light CTL (cool to warm white) using single message. This is possible only with Lighting Models.

Also want to build remote using #nRF52840_PDK which support Lighting Client Models.

FYI, this is Mynewt implementation,

Any unsolicited information will be highly appreciable !!

Thank You !!







Re: Building app with ext libraries (mcumgr for example)

Patrick Boettcher <patrick.boettcher@...>
 

Hi,

On Wed, 6 Jun 2018 13:38:50 +0000
"Bøe, Sebastian" <Sebastian.Boe@nordicsemi.no> wrote:

Hi,

I was able to reproduce the issue with 1.11.
Interestingly, the problem does not occur on the latest master.

This patch
https://github.com/SebastianBoe/zephyr/commit/f7c609f994a9433aa3d1e0da06f14a47c9c5174d
resolves the issue on 1.11. and seems reasonably clean to me.
But I need to reproduce the issue on master before I can apply it ...

What is going on here is that mcumgr is a zephyr cmake library that
uses another zephyr cmake library. When one library uses another it
should link with it to ensure that any build-requirements, like
include paths, are inherited.
Great, thanks for your help.

If this is a target_link_libraries()-issue I still wonder why it worked
when activated things "manually" via menuconfig.

regards,
--
Patrick.


Re: Building app with ext libraries (mcumgr for example)

Sebastian Boe
 

Hi,

I was able to reproduce the issue with 1.11.
Interestingly, the problem does not occur on the latest master.

This patch
https://github.com/SebastianBoe/zephyr/commit/f7c609f994a9433aa3d1e0da06f14a47c9c5174d
resolves the issue on 1.11. and seems reasonably clean to me.
But I need to reproduce the issue on master before I can apply it ...

What is going on here is that mcumgr is a zephyr cmake library that uses
another zephyr cmake library. When one library uses another it should
link with it to ensure that any build-requirements, like include paths,
are inherited.
________________________________________
From: Patrick Boettcher <patrick.boettcher@posteo.de>
Sent: Wednesday, 6 June 2018 10:58 AM
To: Bøe, Sebastian
Cc: devel@lists.zephyrproject.org
Subject: Re: [Zephyr-devel] Building app with ext libraries (mcumgr for example)

Hi Sebastian,

On Tue, 5 Jun 2018 14:51:38 +0000
"Bøe, Sebastian" <Sebastian.Boe@nordicsemi.no> wrote:

"What's the correct way to integrate libraries from the ext/-dir in an
application build?"

Enabling external libraries through menuconfig is intended to
just-work unless there exists documentation for the library stating
otherwise.

I was not able to reproduce your observation.
Starting from a clean (empty) project and activating everything again
manually works.

I thought the issue was easier to reproduce which is why I left out some
details of how we build apps.

What we are doing is we keep a .config file from a previous,
reference zephyr-build and use it as a prj.conf when building the
application.

I created a temporary repo on github which contains such a complete
prj.conf and the necessary files to build. With it the problem can be
reproduced:


. path/to/zephyr/zephyr-env.sh
git clone https://github.com/STIMIODEV/zephyr-build-fail-test.git
cd zephyr-build-fail-test
mkdir b
cd b
cmake .. -GNinja
ninja

I would be delighted if you could take a quick look and tell me where
our mistake lies.

(We are using zephyr 1.11 with custom additions, but nothing done to
the build-system)

regards,
--
Patrick.


Re: Building app with ext libraries (mcumgr for example)

Patrick Boettcher <patrick.boettcher@...>
 

Hi Sebastian,

On Tue, 5 Jun 2018 14:51:38 +0000
"Bøe, Sebastian" <Sebastian.Boe@nordicsemi.no> wrote:

"What's the correct way to integrate libraries from the ext/-dir in an
application build?"

Enabling external libraries through menuconfig is intended to
just-work unless there exists documentation for the library stating
otherwise.

I was not able to reproduce your observation.
Starting from a clean (empty) project and activating everything again
manually works.

I thought the issue was easier to reproduce which is why I left out some
details of how we build apps.

What we are doing is we keep a .config file from a previous,
reference zephyr-build and use it as a prj.conf when building the
application.

I created a temporary repo on github which contains such a complete
prj.conf and the necessary files to build. With it the problem can be
reproduced:


. path/to/zephyr/zephyr-env.sh
git clone https://github.com/STIMIODEV/zephyr-build-fail-test.git
cd zephyr-build-fail-test
mkdir b
cd b
cmake .. -GNinja
ninja

I would be delighted if you could take a quick look and tell me where
our mistake lies.

(We are using zephyr 1.11 with custom additions, but nothing done to
the build-system)

regards,
--
Patrick.


Re: [Zephyr-users] [Zephyr-devel] How to implement #BluetoothMesh Generic_Delta_Server_Unack opcode function ?? #bluetoothmesh

vikrant8051 <vikrant8051@...>
 

On Tue, Jun 5, 2018 at 11:53 PM, vikrant8051 <vikrant8051@...> wrote:
Hi,

I forgot to mentioned about

struct server_state *state_ptr = model->user_data;

----------------------------------------------------------------------------------------

struct server_state
{
int current;
int previous;
int model_instance;
int last_tid;
};

----------------------------------------------------------------------------------------

Thank You!!

On Tue, Jun 5, 2018 at 11:47 PM, vikrant8051 <vikrant8051@...> wrote:
Hi,

Hi to all,

I am trying to  implement Generic_Delta_Server_Unack (Level Server) as follow ...

void gen_delta_set(struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *buf)
{

   int  tmp32 = state_ptr->current + net_buf_simple_pull_le16(buf);
   int tid = net_buf_simple_pull_u8(buf);

    if(tmp32 < -32768)
    {
        tmp32 = -32768;
    }
    else if(tmp32 > 32767)
    {
        tmp32 = 32767;
    }
    state_ptr->current = (int16_t)tmp32;

    state_ptr->previous = state_ptr->current;

}

but it get executed 5 times if level client is configured as
--> pub-set 0100 c000 1 0 5 1003

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If we use something like

       if(last_tid == tid)
       {
           return; 
       }

at start, then it could escape valid message too.

For eg. if Server & Client rebooted simultaneously in that case,
Server side variable last_tid  & Client side variable tid both get set to Zero.
So first message from client get ignore.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

How to solve this problem ?





Re: How to implement #BluetoothMesh Generic_Delta_Server_Unack opcode function ?? #bluetoothmesh

vikrant8051 <vikrant8051@...>
 

Hi,

I forgot to mentioned about

struct server_state *state_ptr = model->user_data;

----------------------------------------------------------------------------------------

struct server_state
{
int current;
int previous;
int model_instance;
int last_tid;
};

----------------------------------------------------------------------------------------

Thank You!!

On Tue, Jun 5, 2018 at 11:47 PM, vikrant8051 <vikrant8051@...> wrote:
Hi,

Hi to all,

I am trying to  implement Generic_Delta_Server_Unack (Level Server) as follow ...

void gen_delta_set(struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *buf)
{

   int  tmp32 = state_ptr->current + net_buf_simple_pull_le16(buf);
   int tid = net_buf_simple_pull_u8(buf);

    if(tmp32 < -32768)
    {
        tmp32 = -32768;
    }
    else if(tmp32 > 32767)
    {
        tmp32 = 32767;
    }
    state_ptr->current = (int16_t)tmp32;

    state_ptr->previous = state_ptr->current;

}

but it get executed 5 times if level client is configured as
--> pub-set 0100 c000 1 0 5 1003

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If we use something like

       if(last_tid == tid)
       {
           return; 
       }

at start, then it could escape valid message too.

For eg. if Server & Client rebooted simultaneously in that case,
Server side variable last_tid  & Client side variable tid both get set to Zero.
So first message from client get ignore.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

How to solve this problem ?




How to implement #BluetoothMesh Generic_Delta_Server_Unack opcode function ?? #bluetoothmesh

vikrant8051 <vikrant8051@...>
 

Hi,

Hi to all,

I am trying to  implement Generic_Delta_Server_Unack (Level Server) as follow ...

void gen_delta_set(struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *buf)
{

   int  tmp32 = state_ptr->current + net_buf_simple_pull_le16(buf);
   int tid = net_buf_simple_pull_u8(buf);

    if(tmp32 < -32768)
    {
        tmp32 = -32768;
    }
    else if(tmp32 > 32767)
    {
        tmp32 = 32767;
    }
    state_ptr->current = (int16_t)tmp32;

    state_ptr->previous = state_ptr->current;

}

but it get executed 5 times if level client is configured as
--> pub-set 0100 c000 1 0 5 1003

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If we use something like

       if(last_tid == tid)
       {
           return; 
       }

at start, then it could escape valid message too.

For eg. if Server & Client rebooted simultaneously in that case,
Server side variable last_tid  & Client side variable tid both get set to Zero.
So first message from client get ignore.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

How to solve this problem ?



Re: Building app with ext libraries (mcumgr for example)

Sebastian Boe
 

"What's the correct way to integrate libraries from the ext/-dir in an
application build?"

Enabling external libraries through menuconfig is intended to just-work
unless there exists documentation for the library stating otherwise.

I was not able to reproduce your observation.

With this environment it sufficed to enable CONFIG_MCUMGR
and increase CONFIG_NET_BUF_USER_DATA_SIZE to be
able to build mcumgr:

git checkout 59bf65f481205c0171a0665845f7eb520fa65a56
export BOARD=nrf52840_pca10056
cd $ZEPHYR_BASE/samples/hello_world

________________________________________
From: devel@lists.zephyrproject.org <devel@lists.zephyrproject.org> on behalf of Patrick Boettcher <patrick.boettcher@posteo.de>
Sent: Tuesday, 5 June 2018 3:54:16 PM
To: devel@lists.zephyrproject.org
Subject: [Zephyr-devel] Building app with ext libraries (mcumgr for example)

Hi list,

We are trying to integrate mcumgn in our solutions.

We activated it within make menuconfig but we are getting compile
errors during the zephyr-build part of our application:

For example:

zephyr/ext/lib/mgmt/mcumgr/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c

requires

zephyr/include/fs/nffs_fs.h:11:23: fatal error: nffs/nffs.h: No such
file or directory

We found that when adding in the app's CMakeLists.txt the following
lines it compiles (and works) correctly:

zephyr_link_libraries(NFFS)
zephyr_link_libraries(mbedTLS)

What's the correct way to integrate libraries from the ext/-dir in an
application build?

Thanks in advance for any insights.

--
Patrick.


Zephyr news, 5 June 2018

Marti Bolivar
 

Hello,

This is the 5 June 2018 newsletter tracking the latest Zephyr
development merged into the mainline tree on GitHub.

An HTML version is available here:

https://opensourcefoundries.com/blog/2018/06/05/zephyr-news-20180605/

As usual, content is broken down as follows:

- Highlights
- Important changes: ABI/API breaks and some features
- New features: non-exhaustive descriptions of new features
- Bug fixes: non-exhaustive list of fixed bugs
- Individual changes: a complete list of patches, sorted
chronologically and categorized into areas, like:
- Architectures
- Kernel
- Drivers
- etc.

Highlights
==========

This covers what's happened since v1.12 rc1 was tagged, including
v1.12 rc2, which was tagged on 29 May, and changes since then.

Patch flow continues actively since rc1. This newsletter summarizes
the 409 patches in this inclusive range:

- c182520e ("tests: kernel: Add description for test cases"),
merged 21 May 2018
- b5a3ddf7 ("tests: ieee802154/crypto: use console harness"),
merged 4 June 2018

Since it's currently the stabilization period prior to the release of
Zephyr v1.12, the emphasis will be on tests, bug fixes, and
documentation, which are officially all that's currently permitted for
merge. (Of course, late-breaking exceptions manage to wiggle through.)

The final release is blocked until there are zero high priority and
less than twenty medium priority bugs.

Zephyr's wiki has links to helpful filters showing the number of open
bugs and other issues of various types:

https://github.com/zephyrproject-rtos/zephyr/wiki/Filters

At time of writing, there are 4 high priority bugs and 30 medium
priority bugs open, so there's still work to do before v1.12 is fully
baked.

Important Changes
-----------------

Schedule(r) wrangling:

The following appeared in the previous newsletter: "In a highly
significant but (hopefully mostly) behind-the-scenes change, the
scheduler was rewritten." Hope springs eternal.

As may have been expected, rewrites of central and notoriously
tricky areas like kernel schedulers inevitably result in bugs which
need shaking out. Most noticeably, boot hangs and increasingly lengthy
context switch times have been observed in a variety of circumstances,
and some significant bug fixes have been flowing in following the
rewrite, notably affecting pre-emption, scheduling of dummy threads,
and SMP scheduling.

The dust appears to be settling for v1.12, but more changes are in the
works for v1.13. Hold on to your hats.

CONFIG_TOOLCHAIN_VARIANT removed:

This legacy Kconfig option is gone now. Any remaining users must
switch to the ZEPHYR_TOOLCHAIN_VARIANT CMake or environment variable,
as documented in the Getting Started guide:

http://docs.zephyrproject.org/getting_started/getting_started.html

Kconfig cleanup:

In a valiant tree-wide cleanup effort, a number of stale or incorrect
Kconfig symbols were updated and fixed. This affected essentially
every subsystem. Merge conflicts for out-of-tree patches seem likely.

zephyr_library_ifdef() removed:

The build system's zephyr_library_ifdef() macro was that evil type
which modifies the control flow of the caller. In-tree uses were
replaced with safer alternatives and the macro was removed; any out of
tree users will need updates.

Features
--------

Architectures:

Nordic SoCs have their instruction cache enabled. Users who don't want
their code to run faster can disable the new CONFIG_NRF_ENABLE_ICACHE,
which is on by default.

Precious, precious MPU regions were freed up on various ARM SoCs by
deleting existing entries for memory-mapped peripheral buses and other
such areas in SoC configuration files. Access privileges for these
areas are now determined by the special "background region", or
default configuration, which allows RWX access for supervisor mode,
and prevents user mode access. This frees up these scarce resources
for use defining restrictions on other areas of memory, such as thread
stacks.

Boards:

Support was added for the NUCLEO-L053R8 board, which features an
STM32L053R8 SoC.

Drivers:

Some new features were added here, in some cases to enable bug fixes,
and in others as late-breaking exceptions to the freeze.

In order to address issues with entropy gathering, a new
interrupt-safe source of entropy, entropy_get_entropy_isr(), was
added to the API in include/entropy.h. An implementation is provided
for nRF devices. This was aided by other initialization order changes
which collectively allow the kernel to safely collect entropy earlier
in its initialization.

Users of the w25qxxdv SPI flash driver have new Kconfig options
allowing them to control chip select pins, which can be enabled and
set using CONFIG_SPI_FLASH_W25QXXDV_GPIO_SPI_CS.

A new status_cb field was added to struct netusb_function,
allowing such functions to define status callbacks. This new API was
needed to fix some issues causing kernel crashes.

Driver support was added for STM32 low power UARTs (LPUARTs); this can
be enabled with CONFIG_UART_STM32_LPUART_1.

Kernel:

A new "meta-IRQ" feature was added to control scheduling for a new
type of thread. A meta-IRQ is not a true interrupt, but pending
threads with meta-IRQ priority will be scheduled before any other
threads, even cooperative ones or those which have the scheduler
lock. This has the flavor of the "softirq" mechanism present in the
Linux kernel, and appears to have similar goals. Like softirqs, these
must be used with care, and are likely not good targets for
application developer use. See the Meta-IRQ Priorities section in the
threads documentation for more details on their design and goals:

http://docs.zephyrproject.org/kernel/threads/scheduling.html#meta-irq-priorities

A patch was merged which enables ongoing work producing a requirements
traceability matrix from requirements to test cases in APIs exposed by
the main include/kernel.h. This adds Doxygen comments with requirement
IDs to individual APIs, so it's technically documentation.

A simple deadline scheduling policy was implemented. See
CONFIG_SCHED_DEADLINE for details.

Scripts:

The Python menuconfig implementation has new features for showing a
symbol's name when 'c' is pressed, along with improvements to
searching, saving, and loading.

Kconfiglib now warns if a string symbol's default value is not quoted.

Bug Fixes
---------

Arches:

The majority of the fixes applied to the x86 and ARM architectures.
These cover typos and coding style, scheduling, stack management, IRQ
management, scheduling, and MPU management, as well as SoC
specific fixes mostly targeting STM32 and x86 chips.

Optional mitigation was added for Spectre variant v4 on Intel chips;
see CONFIG_DISABLE_SSBD for details.

Bluetooth:

It was quiet, but not too quiet.

Beyond the Kconfig cleanup, a small number of fixes were merged,
including a compiler-version specific fix for Mesh and a fix for
non-priority event handling in the core controller code. The Bluetooth
subsystem is one of Zephyr's best tested, and the small size of the
change list in this period reflects this.

Boards:

Beyond the tree-wide Kconfig fixes, a general fix was merged for "make
flash" for boards using the "bossac" flashing tool. A variety of
patches were merged fixing board-specific issues and enabling some
missing features. See the Boards list of commits in the Individual
Changes section below to learn if boards you use were affected.

Continuous Integration:

An arguable misconfiguration in sanitycheck related to job parallelism
was addressed, resulting in a 24% speed improvement. Other
miscellaneous fixes to sanitycheck were merged as well.

External libraries are no longer tracked in code coverage
measurements, improving the accuracy of the code coverage output for
Zephyr-specific code.

Device Tree:

A variety of fixes went in for warnings generated by the new dtc
v1.4.6 compiler which was part of the new Zephyr 0.9.3 SDK, with a
handful of fixes in other areas.

Documentation:

The effort preparing the documentation for release is picking up steam.

Missing documentation was added covering system calls and userspace,
kernel and threading APIs, POSIX compatibility, VLANs, network traffic
classification, the sanitycheck script used by CI, and more.

Numerous spelling errors were corrected in a series of commits, each
targeting specific areas.

Drivers:

About fifteen percent of the total patches in this period affected
Zephyr's device drivers.

Apart from the Kconfig cleanup, STM32-specific driver fixes featured
prominently, affecting SPI, UART, Ethernet, and GPIO. Fixes for
drivers needed by the new intel_s1000_crb board were merged affecting
I2S and DMA.

External:

The build system integration for OpenAMP and libmetal was fixed to
avoid recursive builds, which the Zephyr build system (maintainer)
abhors. May other developers tempted down that dark way be warned, and
stay along the straight path.

mbedTLS was updated to version 2.9.0 from 2.8.0; this brings
security fixes along with other improvements.

A subtle power-related USB fix for STM32 was merged, adding a patch to
Zephyr's copy of the STM32L4 HAL.

Kernel:

Various fixes were merged apart from the scheduler rodeo. It looks
like the dust is settling on these issues for v1.12, but the opening
of the v1.13 merge window will include additional refactoring of the
scheduler to better consolidate flags associated with non-running
threads, so the list of incoming scheduler changes won't be empty
anytime soon.

A race was fixed in the mempool allocator. Some architecture-specific
fixes were made that the meta-IRQ addition exposed. The kernel now
uses the new ISR-safe entropy source during early initialization,
before threads are available, and uses the entropy API directly to
initialize stack canaries.

Libraries:

A bug making the clock_gettime() implementation non-monotonic when
called with CLOCK_MONOTONIC was fixed.

Networking:

Not much was merged; the networking developers are hard at
work with the ongoing rewrite of Zephyr's TLS implementation to use a
new and nonstandard setsockopt()-based API. Since that's feature work,
it will have to wait for v1.13 to be merged.

Fixes went in around the subsystem addressing problems where incorrect
timeouts were set due to use of MSEC() or raw numbers instead of
K_MSEC(), and other related issues.

A boot hang related to invalid use of a receive queue was fixed.

A security session initialization bug affecting 802.15.4 was fixed.

Most of the other fixes appear to be of the usual variety: a null
pointer dereference, packet management and checksumming issues, edge
cases and error handling, etc.

Samples:

Other than the Kconfig cleanup, the samples didn't seem to need too
many changes since rc1, which is good.

The coap_server sample properly handles the case where the client no
longer wishes to receive notifications following an initial observe
operation. The coap_client application also saw general improvements
and fixes.

The OpenAMP sample has improved documentation and comments.

Scripts:

Not much happened here.

The elf_helper.py library used by the build system to manipulate
Zephyr binaries got some cleanup and an architecture-specific corner
case fix.

Issues in west preventing "make flash" etc. from working on certain
boards, as well as running as root on Unix, were fixed.

Fixes were made to genrest.py, which generates Zephyr's Kconfig symbol
documentation.

Storage:

This subsystem was fairly quiet as well.

As might be expected with new code, a variety of bug fixes went in to
the non-volatile storage (NVS) layer. These are mostly related to
buffer management and padding, and also include a fix related to
device addressing.

A pile of issues in the disk subsystem discovered by Coverity were
fixed with extra NULL pointer checks.

Testing:

Test, test, one, two, three, ... eighty commits have gone in to
improving Zephyr's tests. These break down into the following rough
categories:

- tons of test descriptions added as Doxygen comments (see GitHub issue
#6991, https://github.com/zephyrproject-rtos/zephyr/issues/6991, for
details on how this is part of a larger strategy)
- other restructuring and refactoring to make #6991 infrastructure work better
- fixes to problems in the sources for the test case themselves
- fixes and improvements related to testing user mode
- Kconfig cleanup
- new tests

As always, details are below.

Individual Changes
==================

Patches by area (409 patches total):

- Arches: 63
- Bluetooth: 6
- Boards: 38
- Build: 9
- Continuous Integration: 8
- Device Tree: 12
- Documentation: 31
- Drivers: 59
- External: 12
- Kernel: 20
- Libraries: 3
- Miscellaneous: 5
- Networking: 15
- Samples: 27
- Scripts: 12
- Storage: 9
- Testing: 80

Arches (63):

- edf7c4fd arch: arm: kw41z: Set DTS fixup for CONFIG_RTC_0_NAME
- a21a075c native: ethernet: fix k_sleep() wait time
- 9731a0cc arm: syscalls: fix some register issues
- 99f36de0 arm: userspace: fix initial user sp location
- 5b37cd73 arch: arm: swap: Remove old context switch code
- d4221f9a arch: x86: Rename MSR-handling functions to conform to convention
- 7faac6a7 arch: arm: atmel_sam: Add quotes to strings in Kconfig
- c2742f66 arch: arc: Fix typo in comment
- 6ef2f76b arch: arm: thread.c: Fix typo in comment
- e653e478 arch: arm: Fix typo in comment
- 33628f1c arch: arc: userspace: Fix typo in comment
- 95592770 arch: stm32: Remove unsupported MPU options
- 5b20350a gdb_server: Remove leftover testing and x86 parts
- 8321b6b6 arch: arm: nxp: Fixup HAS_MCUX_RTC
- dc01b990 arch: stm32l4: only enable USB OTG on SoCs supporting it
- 509e6964 arch: stm32l432: add support for USB controller
- 2bfcb849 arch/arc: UART QMSI's baudrate is not present in Kconfig anymore
- 46a3e8bd arch: arm: fix fault status register bitfield masks
- fb0fba91 arch: x86: Rename CPU_NO_SPECTRE to CPU_NO_SPECTRE_V2
- ecadd465 arch: x86: Allow disabling speculative store bypass
- d9a227c1 arm: st_stm32: reduce boot MPU regions
- 6f6acb46 arm_mpu: reduce boot MPU regions for various soc
- 77eb883a arch: arc: fix the bug in exception return for secure mode
- 876a9af9 arch: arc: fix the bug in register clear for USER_SPACE
- d2c8a205 arch: arm: document non-returning fatal handlers
- d54dc42a arch: arm: refactor FAULT_DUMP to retrieve the fatal error reason
- 49f0dabf arch: arm: refactor default _FaultDump to provide fatal error code
- 24fcba44 arch: arm: remove redundant ifdef check
- 8b7c3cff arch: arm: soc: stm32l0: add LPUART1 pinmux options
- 8cc002e6 soc: stm32f1: add port uart4
- 94a22daf arch: arm: STM32L053X8 support
- 0825d0cd arch: arm: fix undefined variable bug
- a9fe133d arch: arm: fix a typos in Kconfig file
- edd18c8f arch: x86: Better document that CR0.WP will also be set
when CR0.PG is
- 3ac3216d soc: defconfig: Consistently quote string defaults
- d946ed73 soc: defconfig.series: Consistently quote string defaults
- cc447383 soc: soc_family: Consistently quote string defaults
- 71ce9b52 arch: arc: snps_emsk: Removed dead code
- cbac8fca arch: arm: select CPU_HAS_FPU on STM32L4 family
- 93a46432 arch: arm: nordic: nrf52: Enable instruction cache
- 699aacad arch: arm: add_subdirectory shouldn't depend on a hidden kconfig.
- a9ea1554 arch: arm: add_subdirectory shouldn't depend on a hidden kconfig.
- c2d632d6 arch: arm/arc: Remove usage of zephyr_library_ifdef.
- f315afd0 arch: stm32: Fix inclusion of SPI headers
- 3c8ed211 arch: arc: fix the wrong setting of STACK_CHECK for user thread
- 76b1cefd arch: arc: fix the bug in STACK_ARRAY defintion.
- ec7d483b arch: arm: soc: cc2650: Remove dead code.
- 1fe6c367 esp32: Add some "logging" voodoo to SMP initialization
- 56c97608 arch: arm: use stored value for MMFAR
- 6399cb6b arch: arm: force MpuFaultHandler to inspect multiple error conditions
- 45b75dd7 arch: arm: Fix zero interrupt latency priority level
- 7b77a25f arch: arm: coding and comment style fixes
- 0967f11f arch: arm: enhance internal function documentation
- 25c211d2 arch: arm: implement internal function to disable MPU region
- 7f643677 arch: arm: add additional sanity checks before MPU config change
- e76ef30a arch: arm: mpu: minor comment style fixes
- ed33f43e arch: xtensa: intel_s1000: Reference clock API
- 9f4702b3 arch: soc: intel_s1000: set M/N divider ownership
- 997a49ad arm: userspace: Do not overwrite r7 during syscall.
- 7a18b083 x86: align stack buffer sizes
- 0d56036f arch/x86: Rename a legacy network Kconfig option
- b829bc78 arch: arc: refactor the arc stack check support
- b09b6b6e arch: arc: add comments for _load_stack_check_regs

Bluetooth (6):

- f7a1ffe6 Bluetooth: GATT: Change attribute count from u16_t to size_t
- 8e57097e bluetooth: disable user mode for one test
- 20a2b7a7 Bluetooth: Mesh: Fix reference to CONFIG_BT_MESH_FRIEND
- 8d1f67c6 Bluetooth: Remove references to non-existing Kconfig symbols
- c4b0f1c5 Bluetooth: Mesh: Fix build error when LPN is not enabled
- a59f544f bluetooth: controller: Handle non-priority events correctly

Boards (38):

- b5db62ca frdm_kl25z: Remove incorrect references to spi
- 1d1bd60d boards: arduino_101: Fix separated-line interrupt Kconfig setting
- df9e95e5 boards: arm: Remove nonexistent Kconfig symbols
- c1908c3d boards: arm: Fixup comment related to CONFIG_USB_DC_STM
- 3689359f board: frdm_kl25z: Remove undefined Kconfig symbol from defconfig
- 3b83ccdb boards: stm32_mini_a15: fix PLL source selection
- 9c1a2b51 boards: disco_l475_iot1: Remove used pinmux configuration
- 7213ceb3 boards: cc2650_sensortag: Remove Kconfig FLASH/SRAM address
assignments
- e09484f7 boards: arm: lpcxpresso54114: Remove sample specific
defconfig setting
- a85c5462 boards: x86: minnowboard: Unset CONFIG_X86_NO_SPECTRE_V4 by default
- 65e79fd5 boards: exp432p401r_launchxl: Remove Flash base address
Kconfig setting
- b028a515 boards: cc2650_sensortag: Remove TRNG and PINMUX prio
Kconfig settings
- 9d2f370d boards: cc3220sf_launchxl: Make cc3220sf XIP by default
- e0d02d94 boards: cc3220sf_launchxl: Enable standard flash/debug build targets
- 5fe0f7df boards: cc3220sf_launchxl: Update board documentation for flash/debug
- 1d7bd566 boards: cc3220sf_launchxl: Fix documentation links
- fa153a00 boards: nucleo_l432kc: fix GPIO definitions
- 2ef42b7a boards: arm: add support for NUCLEO-L053R8
- 2568e839 boards: stm32f3_disco: Add usb_device to supported features
- a3128e6a boards: defconfig: Consistently quote string defaults
- 41826fdc boards: arm: cc2650: Remove CONFIG_FLASH from defconfig.
- 53a924b3 boards: arm: cc3220sf: Remove CONFIG_FLASH from defconfig.
- c2b2add1 boards: arm: msp_exp432p401r: Remove CONFIG_FLASH from defconfig.
- 6350de3a boards: arm: Remove CONFIG_{FLASH,SRAM}_BASE_ADDRESS assignments
- 10d54e2b boards: arm: argonkey: Properly set choice default
- af411f31 boards/x86: Fix support for w25qxxdv on arduino_101
- 547128e3 boards: frdm_k64f: add USB comment to documentation
- 55494c3f boards: usb_kw24d512: add USB comment to documentation
- 90e00088 boards: intel_s1000: Fix runner invocation
- cddd9e79 boards: intel_s1000: move runner config out of boards/common
- 538db998 boards/x86: Removing undefined Kconfig symbol in
quark_se_c1000_devboard
- b2522d44 mimxrt1050: remove app specific code from soc file
- 3fd25c64 boards: mimxrt1050_evk: add condition to initialize different PLL
- 282d95f6 boards: mimxrt1050_evk: move iomuxc to soc folder
- 5757b448 mimxrt1050: fix dcdc value change process
- 5c6a3991 mimxrt1050: check if D-cache is enabled before enabling it.
- 4a693c3c boards: common: bossac: Fix bossac flash script.
- 9611002f boards/x86: Use right GPIO names for CC2520

Build (9):

- cde6bef7 kconfig: Drop support for CONFIG_TOOLCHAIN_VARIANT
- 59b2c743 cmake: Remove dead logic related to CONFIG_DEBUG_SECTION_MISMATCH
- 411686f0 build: suppress asserts warning if forced off
- 8364b223 Fix struct offsets (DWARF v2 compatibility)
- 5d22834e cmake: extensions: Remove macro zephyr_library_ifdef.
- 5405f688 kconfig: Remove remaining 'option env' bounce symbols
- ddba3d66 kconfig: Define the IRQ priorities for CAVS & DW ICTL
- f90416c6 cmake: fix warning message
- 420bfc1f cmake: toolchain: Don't warn of both ZEPHYR_*_VARIANT envvars defined

Continuous Integration (8):

- dec163fe sanitycheck: Disable parallel builds with Ninja
- a3a7e8e7 sanitycheck: Add support for _bt_settings_area linker section
- 0a9a505e sanitycheck: update script arguments
- 1c7ba097 sanitycheck: document --device-testing feature
- 333a315f sanitycheck: improve help message
- 29599f6d sanitycheck: deprecate assertion options
- fac7108e ci: remove ext/ from coverage
- 386b3e6d ci: increase ccache size

Device Tree (12):

- 6701d449 dts: xtensa: Fix build error due to dts changes for ns16550 driver.
- 22231601 dts/bindings: Make use of RTC base in QMSI bindings
- 76676651 dts: intel_s1000: Enable generating IRQ priority.
- 2ebb6a1f dts: intel_s1000: use dts to set i2c0 priority.
- 22fc6008 dts/nxp: Fix dtc v1.4.6 warning: Missing property
'#clock-cells' in node
- 4e90bd36 dts/nxp: Fix dtc v1.4.6 warning: Aliases property name is not valid
- 2d6c48bf dts/nxp: Fix dtc v1.4.6 warning: Node has a reg but not unit name
- 9faa26db dts/nxp: Fix dtc v1.4.6 warning: Node has a unit name, but
no reg prop
- 95fc141a dts: x86: Fix wrong interrupt number for I2C
- 922490d3 dts/bindings: Remove superfluous property definition
- 5fae3731 dts: nxp: fix typo in usbd bindings
- 05063ede dts: arc: Fix IRQ priorities for quark_se_c1000_ss

Documentation (31):

- 3fb20eb8 doc: updated doc for Zephyr release 1.12.
- a129f19b doc: CODEOWNERS for .rst files
- dcc9cefe doc: i.MX7 updated doc for Zephyr release 1.12
- 81b964b6 doc: Update description of BT_RECV_IS_RX_THREAD.
- 8e7a0051 doc: Makefile: Use phony targets and remove unneeded prereqs
- 071b1bd6 doc: fix misspellings in test documentation
- fcbd8fb6 doc: fix misspellings in API doxygen comments
- 44383a39 doc: fix misspellings in Kconfig files
- 6c6cf23d doc: fix misspellings in docs
- 1fd8b139 doc: update syscall docs to new handler APIs
- 9e4f25bb doxygen: reference requirements
- a50a388b doc: build with CONFIG_USERSPACE enabled
- 993f6db7 doc: Add networking information to 1.12 release note
- 11c6306f doc: tweak CSS for option table display
- a7ffc83b doc: Create a sensor threat model doc
- 92b9d960 doxygen: enable more option for docs
- ce78d16b doc: document kernel APIs with doxygen
- a541e93d doc: document thread options
- 47420d04 doc: add requirement IDs
- cf8ee737 doc: updated doc for Zephyr release 1.12.
- c4bbdc70 doc: Update doc for posix feature
- 9d8c630b doc: release notes: Add details to various sections for 1.12 release
- 5d50d136 doc: Update doc for POSIX feature
- f1eda7b9 doc: updated doc for Zephyr release 1.12.
- d07d5e87 doc: fix broken table display
- e5be22fa doc: net: Add information about VLANs
- d58efe77 doc: net: Add information about network traffic classification
- 7760b941 doc: fix misspellings in docs
- 972386d7 genrest: Highlight Kconfig as Kconfig, not Python
- d96205f6 doc: fix early closing of GPIO doxygen defgroup
- 711adb89 doc: Update release note for 1.12

Drivers (59):

- 30e558f3 devices: entropy: Initialize drivers during PRE_KERNEL_1 stage
- fcc56e31 subsys: random: xoroshiro128: Use SYS_INIT hook to
initialize properly
- c9dd05b9 drivers: net: loopback: Fix setting of SYS_LOG_LEVEL
- 682455ec drivers: crypto_ataes132a: Fix typo in Kconfig symbol
- 08438630 drivers: sensor: bmm150: Fix typo in Kconfig symbol
- 4a3f5e5c drivers: sensor: pms7003: Rename CONFIG_PMS7003_SERIAL_TIMEOUT
- 5013cca6 usb: rndis: Rename CONFIG_RNDIS_TX_BUF_* and CONFIG_RNDIS_CMD_BUF_*
- 1ea03316 drivers: pinmux: Remove dead logic
- 192833a8 drivers: usb_dc_kinetis: fix out-of-bounds write/read
- 134b7484 drivers: clock_control: remove reference unknown config flag
- 2bd15aa7 drivers: clock_control: stm32: Remove unsupported clock configuration
- 80a9b022 drivers: usb_dc_stm32: enable VDDUSB on STM32L4x2
- 45221a97 serial: nsim: Fix impossible-to-enable CONFIG_UART_NSIM
- 668e31f7 drivers: entropy: Introduce ISR-specific entropy function
- 6f534e45 drivers: entropy: nrf5: Implement standard ISR-specific call
- 8e415727 drivers: spi: remove dead references to CONFIG_SPI_QMSI{_SS}
- 23bf9426 drivers: serial: uart_fe310: Match Kconfig defines in comment
- b0e697cc subsys: usb: Remove undefined CONFIG_USB_DEVICE_HID_BOOTP
- f245ef2a drivers: i2s: i2s_cavs: Fix typo in IRQ priority
- 7f4608cc gpio: Fix imx driver edge selection when configuring by port
- 6632ffa6 drivers: serial: stm32: remove HAL driver legacy
- fd26514a drivers: serial: stm32: rework macros and fixups
- 967c31bc drivers: serial: stm32: enable LBD only for UARTs with LIN support
- 1e6d827a drivers: serial: stm32: add LPUART support for L0/L4 series
- bb9fe428 spi: spi_ll_stm32: Fix transceive() ret value in spi_slave case
- d8fd97ab drivers/ethernet: stm32: Don't exit driver init on HAL timeout
- 5135a733 usb: netusb: Add subsys/usb to include list
- 34977913 usb: netusb: Use function - defined status callbacks
- 851195bf usb: netusb: Implement status callback for ECM
- 1d5692a7 usb: netusb: Implement status callback for EEM
- 7a6f1c98 usb: netusb: Implement status callback for RNDIS
- fc8bcb9a usb: netusb: Refactor function's status callbacks
- 8e15353d i2c: i2c_gpio: fix typos in Kconfig file
- 373a0212 drivers: serial: nrf: Fix interrupts enabling/disabling
- 7fb245f9 spi: spi_ll_stm32: fix slave frame shifting
- a8d93406 eth_stm32_hal: fix dev_data->mac_addr typo
- cb0dd0cc usb: function_eem: fix eem_read_cb
- 62004146 drivers: sensors: Remove usage of zephyr_library_ifdef
- 5f5e9fb9 drivers: flash: Remove usage of zephyr_library_ifdef
- 963a0bee drivers: serial: Remove usage of zephyr_library_ifdef
- 8c812900 drivers: entropy: Remove usage of zephyr_library_ifdef
- 8eb652bf drivers: apds9960: Always default on I2C_0
- a6d83783 drivers/flash: A support for SPI gpio-cs logic into w25qxxdv driver
- 002031d8 drivers/flash: Cleaning up Kconfig
- 33e3ae71 drivers/spi: Handle the case when tx buf/len is NULL/>0 in DW driver
- 13e1c3c2 uart_console: delete char using BS(08H) or DEL(7FH)
- 73009d05 usb: cdc_acm: Set bInterfaceProtocol to No Protocol (0)
- 4d0a1912 drivers: usb_dc_kinetis: fix usb_dc_ep_read_continue
- 29b7cdc8 drivers: eth: native_posix: Fix malformed echo response
- 9a7538b9 drivers: dma_cavs: separate callbacks per channel
- 30dbf3c0 drivers: eth: mcux: use CONFIG_SYS_LOG_ETHERNET_LEVEL for
syslog level
- f2719501 drivers/gpio: stm32 fix gpio device init prio
- f36edc6c drivers: i2s: intel_s1000: Fractional bit-clock
- b97dd472 drivers: can: Move bit timing and clock to device tree
- eefeb2b0 drivers: watchdog: esp32: Use common Kconfig option to
disable at boot
- 158ea970 drivers: watchdog: Use common name configuration for all drivers
- a88a9866 drivers/flags: W25QXXDW internal erase logic fix
- b4d0850d drivers/rtc: Fix how prescaler is used in QMSI driver
- c7053643 spi: spi_ll_stm32: (fix) Clear OVR bit condition

External (12):

- 57637029 ext: simplelink: Fix minor typo in CONFIG_NUM_IRQs
- bdf2f4ef ext: move libmetal to hal
- 6a2c371f ext: libmetal: Update import of libmetal
- f6fb8b8a ext: libmetal: Change build integration so its not recursive
- 6a86b026 ext: open-amp: move open-amp down one dir
- e3e8c83b ext: open-amp: Update import of open-amp
- 4e8438bc ext: open-amp: Change build integration so its not recursive
- b66ecc57 ext: hal: stm32cube: fix stm32l4xx VDDUSB supply control
- e91b5802 ext: hal: libmetal: Allow for libmetal source to be external
- 9a89f39b ext: hal: open-amp: Allow for open-amp source to be external
- 1cd6373f ext: lib: crypto: Update mbedTLS to 2.9.0
- 9550a7b1 ext: lib: crypto: Restore config macros removed in mbedTLS 2.9.0

Kernel (20):

- 72c7ded5 kernel: prepare threads after PRE_KERNEL*
- 1856e220 kernel/sched: Don't preempt cooperative threads
- 7aa25fa5 kernel: Add "meta IRQ" thread priorities
- 4a2e50f6 kernel: Earliest-deadline-first scheduling policy
- 4afc6c9f kernel: remove STACK_ALIGN checks
- 982d5c8f init: run kernel_arch_init() earlier
- 389c3643 kernel: init: Use entropy API directly to initialize stack canary
- 177bbbd3 kernel: Fix trivial typo in CONFIG_WAIT_Q_FAST
- c8e0d0ce kernel: add requirement Ids to implementation
- 538754cb kernel: handle early entropy issues
- b5464491 kernel: Use IS-specific entropy function when available
- 3a0cb2d3 kernel: Remove legacy preemption checking
- df55524d userspace: align _k_object to 4 bytes
- 75398d2c kernel/mempool: Handle transient failure condition
- eace1df5 kernel/sched: Fix SMP scheduling
- 43553da9 kernel/sched: Fix preemption logic
- f669a08e kernel: thread: fix _THREAD_DUMMY check in _check_stack_sentinel()
- e2d77915 kernel: update stack macro documentation
- b85ac3e5 kernel: clarify thread->stack_info documentation
- 6c95dafd kernel: sched: use _is_thread_ready() in should_preempt()

Libraries (3):

- dd78ab05 newlib: Fix typo in Kconfig related to NEWLIB_LIBC_ALIGNED_HEAP_SIZE
- 817e3cd9 lib: posix: Make sure the name string is NULL terminated
- 03a3c992 lib: posix: clock: Use k_uptime_get() to compute tv_nsec

Miscellaneous (5):

- 0b708185 misc: improve description of BOOTLOADER_SRAM_SIZE
- c40b9e04 codeowner: Fix wildcard issue for arch/arm/soc/st_stm32/
- d93ecda4 release: Move version to 1.12.0-rc2
- 98fcaf29 release: Update release notes with CAVS ICTL info
- 718a4cd2 include/toolchain/gcc.h: Fix static assert detection

Networking (15):

- 4dd5867a net: conn: Fix is_invalid_packet
- b1e06f2b net: lwm2m: remove silent fail for bad endpoint data in rd_client
- 6586dba3 net: coap: Fix CoAP observer helper function
- 6180b904 net: Too long timeout was passed to k_sleep
- 5ec569df net: Fix dependency to offload driver in Kconfig
- c5cfb462 net: rpl: fix null pointer dereference
- 2facf33f net: ieee802154: Remove old cc2520 AUTO_ACK assignments
- 4c58ffb5 net: lwm2m: dont release reply for duplicate block transfer
- 8f5929dd net: Too long timeout for k_sleep
- 8670e8a1 net: Convert MSEC_PER_SEC to K_SECONDS()
- 48ac4a37 net: Convert raw timeout values to use K_MSEC() macro
- 201a1b40 net/ieee802154: Security session must be initialized with a valid key
- dcb0ac12 net: tc: dont yield during net_rc tx/rx workq init
- c84b37b0 net: icmpv4: fix incorrect IP header checksum
- 9ab9a835 net/ethernet: Fix ethernet net mgmt interface layer code

Samples (27):

- ac3c6ba9 samples: net: Fix coap-server sample
- 55680f88 samples: net: Fix coap-client sample
- 2c305d2c samples: net: Remove unwanted code from coap-server
- d5df6472 samples: net: rpl_br: Fix coverity issues
- e0e188d3 samples: xtensa_asm2: Cleanup stray IS_TEST reference
- 02d9cc17 samples: subsys: debug: Remove CONFIG_SEGGER_RTT assignment
- 4a54005e samples: net: Remove undefined references to CONFIG_NET_LOG_ENABLED
- e7468fb5 samples: net: Fix VLAN tag name in prj.conf file
- 1a7ae583 samples: net: mqtt: Remove CONFIG_BT_MAX_CMD_LEN assignment
- 7bb6eb62 samples: wifi: remove dead Kconfig symbol
- 91d80445 samples: net: zperf: Remove dead Kconfig symbol from galileo conf
- 27f05e39 samples: board: 96b_argonkey: Remove dead code
- 2dbde4a1 samples: net: zperf: Remove config files for Galileo board
- f346c7ae samples: grove: Remove CONFIG_GROVE_LCD_RGB_INIT_PRIORITY assignment
- d154060a samples: grove: Fix CONFIG_GROVE_TEMPERATURE_SENSOR_V1_X assignment
- 9a06d119 samples: mcp9808: Fix CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD assignment
- 40777af7 samples: openamp: Cleanup CMakeLists.txt files
- 31c5a83e samples: hci_uart: Remove NRF5 Kconfig baud rate setting
- cbdfdf9e samples: bmm150: Remove assignment to missing CONFIG_BMM150_SET_ATTR
- 544f8271 samples: mbedTLS server: Remove CONFIG_NET_SLIP_TAP assignment
- ee4a4175 samples: echo_server: Remove conflicting option from conf file
- 7d01bf8c samples: openamp: Update docs
- b0ffe06f samples: openamp: add some comments to the code
- c5fda143 samples: Quote BOARD value in custom board definition
- 337832d1 samples: hci_uart: Remove CONFIG_UART_NRF5_BAUD_RATE assignment
- 659c241e samples: net: big_http_download: Ignore close() return value.
- 61f91f8f samples: sensor : mcp9808: check return value

Scripts (12):

- e0477756 scripts: west: downgrade missing ZEPHYR_BASE to a warning
- b45e152f menuconfig/genrest: Exclude implicit submenus from menu paths
- 06ecb287 genrest: Move from doc/scripts/genrest/ to doc/scripts/
- e144a68f elf_helper: fix member offset calculation
- f20efcfb scripts: generalize kobject -> enum naming
- d44fee35 menuconfig: Add search and save/load improvements from upstream
- a06b14f2 scripts: check-compliance: Allow to run from any path
- 58967c7d scripts: extract_dts_includes.py: fix multiple include in bindings
- 6eabea3a Kconfiglib: Warn for unquoted string defaults
- 163dec6d menuconfig: Add show-name mode + small help dialog improvement
- 1d27ee0b scripts: extract_dts_includes: fix recursion in extract_controller
- 63f2cf57 scripts: west: update to upstream 894aedbc0

Storage (9):

- 2f074783 subsys: disk: Fix NULL pointer checks for disk operations
- 83ac3f8b subsys: fs/nvs: explicitly pad flash writes up to the write
block size
- 7acd3399 subsys: fs/nvs: never read more than the destination buffer
- 154e6ea7 subsys: fs/nvs: never write more than the source buffer
- 14aae1a1 subsys: fs/nvs: remove explicit padding from structures
- 4795b79e subsys: fs/nvs: kill a warning
- 131c4a4f subsys: fs/nvs: do not assume the flash is mapped at address 0
- 4089602f subsys: fs/nvs: fix _nvs_sector_is_used
- ae2f419b subsys: disk: Fix log level issues

Testing (80):

- c182520e tests: kernel: Add description for test cases
- 4c7a44b5 tests: posix: Fix pthread attribute initialization
- 9f30a6ca tests: mem_protect: fix off-by-one
- 136687d2 test_build_sensors_a_m: disable app memory
- 5b8da206 tests: fatal: fix several issues
- efe0c4b7 tests: enable user mode by default
- 5414a7de tests: mqtt: Fix CONFIG_NET_BUF_DATA_SIZE assignments
- 4190f61c tests: net: Fix misspelled CONFIG_DNS_NUM_CONCUR_QUERIES assignments
- cf227f36 tests: drivers: build_all: Fix CONFIG_ETH_ENC28J60_0_MAC2 reference
- ac13bedc tests: net: all: Fix COAP enablement in prj.conf
- 24b0b3c1 tests: Remove CONFIG_COMMAND_STACK_SIZE assignments
- 7a3ace35 tests: Remove newline character
- dccd2753 tests: posix: fs: Free dirp resource in case error
- a1492325 tests: kernel: fifo: Do NULL pointer check before accessing data
- 14fe2727 tests: unfold nffs_fs_api
- 17998888 tests: footprint: only use user mode for max
- 2348daa8 tests: crypto: disable user mode on 2 tests
- e1fab4c3 tests: kernel: timer: timer_api: Remove nonexistent config option
- 6f40b533 tests: semaphore: improve test documentation
- c2be4417 tests: alert: improve test documentation
- 12d47cc5 tests: fifo: improve test documentation
- e989283f tests: lifo: improve test documentation
- 234484fd tests: msgq: improve test documentation
- 876195de tests: pipe: improve test documentation
- d73e9700 tests: stack: improve test documentation
- f8ef918d tests/lib/c_lib: Turn off too-clever compiler warning
- e9174c6d tests/kernel/common: Add rigorous integer typing test
- d6b11e15 tests: net: arp: Check NULL in unicast test
- ba8c8c3c tests: mslab_threadsafe: Check for return value
- 843ad8b0 tests: semaphore: Check return value
- dda7befd tests: benchmarks: force assertions off
- bc40f934 debug: enable assertions for all tests
- f3f767a2 tests: power: multicore: Remove CONFIG_UART_{0,1}=n assignments
- e8182fa0 test: kernel: remove workaround for arm_mpu (keep for nxp_mpu)
- d96dbadd tests: adc_simple: Change ADC_DEBUG=y to SYS_LOG_ADC_LEVEL=4
- 637ad4cc tests: net: all: Remove redundant/misspelled NET_RPL assignments
- 77658137 tests: net: all: Fix assignments to old TIME_WAIT Kconfig symbols
- f6bdcb71 tests: net: all: Fix assignments to old nbuf API Kconfig symbols
- 3c8e033e tests: net: all: Remove CONFIG_HTTP_HEADER_FIELD_ITEMS assignment
- 21792fa0 tests: posix: timer: Fix integer handling issues
- 86b53643 tests/kernel: Add preemption priority test
- 6a014b63 tests: spi: Check for return value
- ba2c44e4 tests: enable HW stack protection by default
- 0a438983 tests: kernel: document thread tests for RTM
- fa4aa9fe tests: threads: fold systemthread tests into main test
- fe4693bd tests: threads: fold customdata tests into main test
- eeae0eef tests: kernel: put all thread tests on one level
- 43293b90 tests: critical: fix naming and comments
- c5be083d tests: move schedule_api under sched/
- 20e969b8 tests: schedule_api: fix references to tested APIs
- f0f11289 tests: schedule_api: change category to sched
- 6faf5b86 test: early_sleep: cleanup test
- 9a28c87b tests: posix: rename entry file to main.c
- c2e9eef8 tests: kernel context: rewrite test to use ztest correctly
- 8c8ddb81 tests: workqueue: add API references and doxygen group
- 4317a181 tests: net: all: Increase NET_MAX_CONTEXTS from 4 to 5
- b20cc63d tests: power states: Remove CONFIG_GPIO_QMSI_1_{NAME,PRI} assignments
- 12f87f7a tests: net: Fix assignments to CONFIG_NET_DEBUG_6LO
- aa26d992 tests: mbedtls: don't use stdout console
- e63cccdc tests: fixes for ARC
- 467f8fbe tests: fixes for ARC
- 92a3c41d tests: necessary fixes for ARC
- 22838e8b benchmarks: object_footprint: Disable userspace for benchmarks
- 6663286f benchmarks: app_kernel: Disable userspace for benchmarks
- a5988f81 benchmarks: latency_measure: Disable userspace for benchmarks
- e8626d71 benchmarks: boot_time: Disable userspace for benchmarks
- a9dda77f benchmarks: footprint: Disable userspace for benchmarks
- 2182178b benchmarks: sys_kernel: Disable userspace for benchmarks
- 8bbf0fd7 benchmarks: timing_info: Disable userspace for benchmarks
- c782d07a tests/kernel/smp: Properly synchronize CPU counters at test start
- bed0ac68 tests: workqueue: fix doxygen group
- 2f7fe7e2 tests: mem_pool: organise test documentation
- 4ef36a4b tests/kernel/mem_slab: Fix memory overcommit
- 338f4519 tests: kernel: profiling: Fix _sys_soc_suspend logic
- 66e84540 tests: subsys: settings: fcb: Fix failure on nrf52_pca10040
- f5bf2816 tests: posix: Function call return values need to be validated.
- 2d03b552 tests/kernel/mem_slab: Fix memory overcommit for real
- 75e2af20 tests: fifo_timeout : Dereference after null check
- 2237ce6b tests: mem_protect: use better stack size arg
- b5a3ddf7 tests: ieee802154/crypto: use console harness


Building app with ext libraries (mcumgr for example)

Patrick Boettcher <patrick.boettcher@...>
 

Hi list,

We are trying to integrate mcumgn in our solutions.

We activated it within make menuconfig but we are getting compile
errors during the zephyr-build part of our application:

For example:

zephyr/ext/lib/mgmt/mcumgr/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c

requires

zephyr/include/fs/nffs_fs.h:11:23: fatal error: nffs/nffs.h: No such
file or directory

We found that when adding in the app's CMakeLists.txt the following
lines it compiles (and works) correctly:

zephyr_link_libraries(NFFS)
zephyr_link_libraries(mbedTLS)

What's the correct way to integrate libraries from the ext/-dir in an
application build?

Thanks in advance for any insights.

--
Patrick.


Re: echo_client / echo_server hop limit

Jukka Rissanen
 

On Tue, 2018-06-05 at 09:24 +0000, Lubos, Robert wrote:
Hi Diana,

I checked if there is any interference of OT port in Zephyr with Hop
Limit IPv6 field, and there is no such a thing. A quick research
showed up that it is rather a problem in Zephyr’s IPv6 layer. It
looks like it does not set the ipv6_hop_limit filed in the packet
structure based on the received IPv6 header (that’s why you see 0,
it’s left as it was initialized). For a quick fix you can add the
following line to the net_ipv6_process_pkt function (ipv6.c):

net_pkt_set_ipv6_hop_limit(pkt, NET_IPV6_HDR(pkt)->hop_limit);
Note that we set the hop-limit in ipv6.c line 717
(net_ipv6_create_raw() function) if the user has not set it itself. It
seems that there is a glitch somewhere if the user set hop-limit is
lost.

Diana, could you create a issue in github that describes the scenario
so we do not forget it.


Cheers,
Jukka


Re: echo_client / echo_server hop limit

Lubos, Robert
 

Hi Diana,

 

I checked if there is any interference of OT port in Zephyr with Hop Limit IPv6 field, and there is no such a thing. A quick research showed up that it is rather a problem in Zephyr’s IPv6 layer. It looks like it does not set the ipv6_hop_limit filed in the packet structure based on the received IPv6 header (that’s why you see 0, it’s left as it was initialized). For a quick fix you can add the following line to the net_ipv6_process_pkt function (ipv6.c):

 

net_pkt_set_ipv6_hop_limit(pkt, NET_IPV6_HDR(pkt)->hop_limit);

 

It will copy the Hop Limit value from the header to the packet structure. Still, someone more familiar with IPv6 in Zephyr might propose a better fix or submit a PR to fix the problem.

 

Also please note that Hop Limit is decremented only when a packet is forwarded (there are routers between the endpoints), so if there’s a direct link between two endpoints the Hop Limit will remain unchanged.

 

Best Regards,

Robert

From: devel@... [mailto:devel@...] On Behalf Of Diana Rivera
Sent: Tuesday, June 5, 2018 10:37
To: devel@...
Subject: [Zephyr-devel] echo_client / echo_server hop limit

 

Hello,

I am currently working on an OpenThread app based on the echo_client and echo_server. I am currently trying to use the hop-limit field by setting it as follows:

In the echo_client udp.c file:
static void send_udp_data(struct net_app_ctx *ctx, struct data *data)
{
    struct net_pkt *pkt;
    size_t len;
    int ret;

    data->expecting_udp = ipsum_len;

    pkt = prepare_send_pkt(ctx, data->proto, &data->expecting_udp);
    if (!pkt) {
        return;
    }
    
    net_pkt_set_ipv6_hop_limit(pkt, 8);
    NET_INFO("Hop limit set to: %d", net_pkt_ipv6_hop_limit(pkt));
    len = net_pkt_get_len(pkt);


    NET_ASSERT_INFO(data->expecting_udp == len,
            "Data to send %d bytes, real len %zu",
            data->expecting_udp, len);

    ret = net_app_send_pkt(ctx, pkt, NULL, 0, K_FOREVER,
                   UINT_TO_POINTER(len));
    if (ret < 0) {
        NET_ERR("Cannot send %s data to peer (%d)", data->proto, ret);

        net_pkt_unref(pkt);
    }

    k_delayed_work_submit(&data->recv, WAIT_TIME);
}

In the echo_server udp.c:

struct net_pkt *build_reply_pkt(const char *name,
                struct net_app_ctx *ctx,
                struct net_pkt *pkt)
{
    struct net_pkt *reply_pkt;
    struct net_buf *frag, *tmp;
    int header_len = 0, recv_len, reply_len;
    u8_t *ptr = net_pkt_appdata(pkt);
    // hop_lim = pkt->ipv6_hop_limit;
    hop_lim = net_pkt_ipv6_hop_limit(pkt);

    NET_INFO("Application message received: %s, hop limit: %d\n", ptr, hop_lim);
    NET_INFO("%s received %d bytes", name, net_pkt_appdatalen(pkt));


    if (net_pkt_appdatalen(pkt) == 0) {
        return NULL;
    }

    reply_pkt = net_app_get_net_pkt(ctx, net_pkt_family(pkt), K_FOREVER);

    NET_ASSERT(reply_pkt);
    NET_ASSERT(net_pkt_family(reply_pkt) == net_pkt_family(pkt));

    recv_len = net_pkt_get_len(pkt);

    tmp = pkt->frags;

    /* If we have link layer headers, then get rid of them here. */
    if (recv_len != net_pkt_appdatalen(pkt)) {
        /* First fragment will contain IP header so move the data
         * down in order to get rid of it.
         */
        header_len = net_pkt_appdata(pkt) - tmp->data;

        NET_ASSERT(header_len < CONFIG_NET_BUF_DATA_SIZE);

        /* After this pull, the tmp->data points directly to application
         * data.
         */
        net_buf_pull(tmp, header_len);
    }

    net_pkt_set_appdatalen(reply_pkt, net_pkt_appdatalen(pkt));

    while (tmp) {
        frag = net_app_get_net_buf(ctx, reply_pkt, K_FOREVER);

        if (net_buf_headroom(tmp) == 0) {
            /* If there is no link layer headers in the
             * received fragment, then get rid of that also
             * in the sending fragment. We end up here
             * if MTU is larger than fragment size, this
             * is typical for ethernet.
             */
            net_buf_push(frag, net_buf_headroom(frag));

            frag->len = 0; /* to make fragment empty */

            /* Make sure to set the reserve so that
             * in sending side we add the link layer
             * header if needed.
             */
            net_pkt_set_ll_reserve(reply_pkt, 0);
        }

        NET_ASSERT_INFO(net_buf_tailroom(frag) >= tmp->len,
                "tail %zd longer than len %d",
                net_buf_tailroom(frag), tmp->len);

        memcpy(net_buf_add(frag, tmp->len), tmp->data, tmp->len);

        tmp = net_pkt_frag_del(pkt, NULL, tmp);
    }

    reply_len = net_pkt_get_len(reply_pkt);

    NET_ASSERT_INFO((recv_len - header_len) == reply_len,
            "Received %d bytes, sending %d bytes",
            recv_len - header_len, reply_len);

    return reply_pkt;
}

On the client side, I'm able to observe that the hop limit has been set to 8; however, by the time I read the hop limit field at the server, this value returns zero, instead of having decreased by just 1 as expected.
Am I making a mistake in the way I'm using the   net_pkt_set_ipv6_hop_limit and   net_pkt_ipv6_hop_limit functions? Or is there another way to be able to use the hop limit field in OT?

Thank you in advance for your answer,
Diana


Re: How to configure #NVS if #FCB in used for #BluetoothMesh ? #nvs #fcb #bluetoothmesh

laczenJMS
 

Hi Vikrant,

At the moment the default settings for NVS and FCB are indeed
overlapping; you cannot use them at the same time. To use NVS and FCB
together my advice would be to look at the board dts file and to
shrink the image partitions so that there is more space at the end of
flash for storage. NVS needs a minimum of 2 sectors of each one flash
page. Shrinking the image partitions will probably require you to
rebuild and flash mcuboot.

I would not just set the NVS offset to FLASH_AREA_OFFSET - 4096. If on
your system the flash page size is 4096 bytes, the second sector of
NVS will still overlap. As soon as you reach the end of the first
sector you will overwrite the first flash page of FCB.

Kind regards,

Jehudi


echo_client / echo_server hop limit

Diana Rivera
 

Hello,

I am currently working on an OpenThread app based on the echo_client and echo_server. I am currently trying to use the hop-limit field by setting it as follows:

In the echo_client udp.c file:
static void send_udp_data(struct net_app_ctx *ctx, struct data *data)
{
    struct net_pkt *pkt;
    size_t len;
    int ret;

    data->expecting_udp = ipsum_len;

    pkt = prepare_send_pkt(ctx, data->proto, &data->expecting_udp);
    if (!pkt) {
        return;
    }
    
    net_pkt_set_ipv6_hop_limit(pkt, 8);
    NET_INFO("Hop limit set to: %d", net_pkt_ipv6_hop_limit(pkt));
    len = net_pkt_get_len(pkt);


    NET_ASSERT_INFO(data->expecting_udp == len,
            "Data to send %d bytes, real len %zu",
            data->expecting_udp, len);

    ret = net_app_send_pkt(ctx, pkt, NULL, 0, K_FOREVER,
                   UINT_TO_POINTER(len));
    if (ret < 0) {
        NET_ERR("Cannot send %s data to peer (%d)", data->proto, ret);

        net_pkt_unref(pkt);
    }

    k_delayed_work_submit(&data->recv, WAIT_TIME);
}

In the echo_server udp.c:

struct net_pkt *build_reply_pkt(const char *name,
                struct net_app_ctx *ctx,
                struct net_pkt *pkt)
{
    struct net_pkt *reply_pkt;
    struct net_buf *frag, *tmp;
    int header_len = 0, recv_len, reply_len;
    u8_t *ptr = net_pkt_appdata(pkt);
    // hop_lim = pkt->ipv6_hop_limit;
    hop_lim = net_pkt_ipv6_hop_limit(pkt);

    NET_INFO("Application message received: %s, hop limit: %d\n", ptr, hop_lim);
    NET_INFO("%s received %d bytes", name, net_pkt_appdatalen(pkt));


    if (net_pkt_appdatalen(pkt) == 0) {
        return NULL;
    }

    reply_pkt = net_app_get_net_pkt(ctx, net_pkt_family(pkt), K_FOREVER);

    NET_ASSERT(reply_pkt);
    NET_ASSERT(net_pkt_family(reply_pkt) == net_pkt_family(pkt));

    recv_len = net_pkt_get_len(pkt);

    tmp = pkt->frags;

    /* If we have link layer headers, then get rid of them here. */
    if (recv_len != net_pkt_appdatalen(pkt)) {
        /* First fragment will contain IP header so move the data
         * down in order to get rid of it.
         */
        header_len = net_pkt_appdata(pkt) - tmp->data;

        NET_ASSERT(header_len < CONFIG_NET_BUF_DATA_SIZE);

        /* After this pull, the tmp->data points directly to application
         * data.
         */
        net_buf_pull(tmp, header_len);
    }

    net_pkt_set_appdatalen(reply_pkt, net_pkt_appdatalen(pkt));

    while (tmp) {
        frag = net_app_get_net_buf(ctx, reply_pkt, K_FOREVER);

        if (net_buf_headroom(tmp) == 0) {
            /* If there is no link layer headers in the
             * received fragment, then get rid of that also
             * in the sending fragment. We end up here
             * if MTU is larger than fragment size, this
             * is typical for ethernet.
             */
            net_buf_push(frag, net_buf_headroom(frag));

            frag->len = 0; /* to make fragment empty */

            /* Make sure to set the reserve so that
             * in sending side we add the link layer
             * header if needed.
             */
            net_pkt_set_ll_reserve(reply_pkt, 0);
        }

        NET_ASSERT_INFO(net_buf_tailroom(frag) >= tmp->len,
                "tail %zd longer than len %d",
                net_buf_tailroom(frag), tmp->len);

        memcpy(net_buf_add(frag, tmp->len), tmp->data, tmp->len);

        tmp = net_pkt_frag_del(pkt, NULL, tmp);
    }

    reply_len = net_pkt_get_len(reply_pkt);

    NET_ASSERT_INFO((recv_len - header_len) == reply_len,
            "Received %d bytes, sending %d bytes",
            recv_len - header_len, reply_len);

    return reply_pkt;
}

On the client side, I'm able to observe that the hop limit has been set to 8; however, by the time I read the hop limit field at the server, this value returns zero, instead of having decreased by just 1 as expected.
Am I making a mistake in the way I'm using the   net_pkt_set_ipv6_hop_limit and   net_pkt_ipv6_hop_limit functions? Or is there another way to be able to use the hop limit field in OT?

Thank you in advance for your answer,
Diana


Re: How to configure #NVS if #FCB in used for #BluetoothMesh ? #nvs #fcb #bluetoothmesh

Puzdrowski, Andrzej
 

Hi

 

As you notice right now it is impossible to use both NVS and FCB out of the box. So you need a hack.

I think finally this problem should be resolved by introduction of dedicate flash slot which are described via DTS (similar to the current one, the  STORAGE_PARTITION).

STORAGE_PARTITION might be kept for situation where it is only storage partition.

Unfortunately I don’t have time right now to improve this. Any contribution and further comment regard this are highly welcome 😃

 

Andrzej

 

From: devel@... [mailto:devel@...] On Behalf Of vikrant8051
Sent: Monday, June 04, 2018 4:50 PM
To: devel@...; users@...
Cc: Laczen JMS <laczenjms@...>
Subject: [Zephyr-devel] How to configure #NVS if #FCB in used for #BluetoothMesh ?

 

Hi all,

 

I wanna use #NVS to save #BluetoothMesh Models states.

 

As per current implementation, #BluetoothMesh stack is using #FCB for persistent storage.

 

If I use #NVS (with default setting) along with #FCB, and try to save some data using it, then it pushes NODE into unprovisioned state. This should be because of overlapping.

 

Solution is to modify NVS's storage offset. For e.g.

 

#define NVS_STORAGE_OFFSET (FLASH_AREA_STORAGE_OFFSET - 4096)

 

But it will be not a good idea, if #DFU_OTA going to be part of project. Am i right ?

 

Do anyone have better solution ?

 

Thank You !!

 

 

 

 

 

 


Re: [Zephyr-users] [Zephyr-devel] How to change Bluetooth default TX power ?

Gurpreet Singh <gurpreet@...>
 

I'd second that vote as our use case also involves being able to change the tx power depending on the type of advertisement packet being sent out. 

On Mon, Jun 4, 2018 at 11:16 AM, Ryan Erickson <ryan.erickson@...> wrote:
I'd like to put in a vote for changing the TX power at runtime.  Our use case would be making the TX power less during advertisements and then increasing it once the connection is made.

Thanks,

Ryan

From: devel@... <devel@...> On Behalf Of Chettimada, Vinayak Kariappa
Sent: Monday, June 4, 2018 13:13
To: Vikrant More <vikrant8051@...>
Cc: Abderrezak Mekkaoui <ab.mekka@...>; devel@...; users@...
Subject: Re: [Zephyr-users] [Zephyr-devel] How to change Bluetooth default TX power ?

Vikrant,

Sure, I will send a PR for that one as soon as I can (tomorrow maybe).

Regards,
Vinayak


On 4 Jun 2018, at 23:41, Vikrant More <mailto:vikrant8051@...> wrote:

Hi Vinayak, 
As of now, I need build time configuration option to change Tx power. It will be great, if we could do it by editing prj.conf.

Thank You !!

On Mon, Jun 4, 2018, 11:29 PM Chettimada, Vinayak Kariappa <mailto:vinayak.kariappa.chettimada@...> wrote:
Hi Vikrant and Abderrezak,

Please elaborate on your applications' use case for Tx power change. Do you want to use a build time custom Tx power setting or runtime dynamic update to Tx Power?

As there is no HCI command to update Tx power, except in Extended Advertising feature, it is important to define a Host API for a dynamic update well suited targeting an use case for legacy advertising and connections.
This will then need to define vendor specific HCI extensions to update the settings in the controller’s radio implementations.

Regards,
Vinayak


On 4 Jun 2018, at 19:28, Abderrezak Mekkaoui <mailto:ab.mekka@...> wrote:

Hi All,
I have the same issue. This is clearly an app variable imho.
Thanks
Abderrezak

On 6/4/2018 9:45 AM, vikrant8051 wrote:
Hi,

If anyone want to edit tx power of #nRF52840_PDK, then have to edit two file ..
1) $zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c: L5882
2)  $zephyr/subsys/bluetooth/controller/ll_sw/ll_test.c: L189

which are part of Bluetooth Stack.

How to modify TX power at APP level (after reboot or in middle of firmware execution) ?
Is it possible to use some configuration parameter for it ?

Thank You !!












--
Gurpreet Singh
Member of Technical Staff
Mist Systems

e:gurpreet@...   w:  www.mist.com
Sign up for a live demo of the world's first Virtual Network Assistant. Join Demo!

3501 - 3520 of 8196