Date   

Re: Enable SPI driver on nrf52840

cpmcparland@...
 

Justin, Vinayak,

Thanks, still digging into this.  So far, the cmake phase is not properly copying the
drivers into the library and failing before any make files are produced.  So, menuconfig
will not run on the project.  The driver CMakeLists.txt seems to be correct, but the value
CONFIG_SPI is not being set (I assume because of a DTS issue) and therefore the
source/library environment is not being properly generated by the initial project
cmake command.

Have performed the same operation with arduino_101 target and things work.  Don't
have one of those boards, so can't say that target code runs.  But, cmake and make
phase run successfully.  Have been comparing dts and dtsi files (should I be looking at
yaml as well?) between arduino_101 and nrf52840_pca10056 to look for an answer.
But, no joy as yet.  Any suggestions from the group?

Cheers,
Chuck


Re: bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Chettimada, Vinayak Kariappa
 

Hi Johan,

It is nothing to do with controller privacy, its just that advertiser is active and by BT Spec. 

If the Host issues this command when scanning or legacy advertising is enabled, the Controller shall return the error code Command Disallowed (0x0C).

Can we do something about this in the host, when address is regenerated?

- Vinayak

On 22 Aug 2018, at 14:21, Chettimada, Vinayak Kariappa <vinayak.kariappa.chettimada@...> wrote:

Hi,

Could you please turn off the controller privacy feature and check if you still face issues?
CONFIG_BT_CTLR_PRIVACY=n

This is to narrow down the locality of the problem, just suspecting some race condition with the running advertiser in concurrency,

Regards,
Vinayak

On 22 Aug 2018, at 11:31, Johan Hedberg <johan.hedberg@...> wrote:

Thanks Declan. The logs do indeed show the HCI error:

[bt] [DBG] bt_hci_cmd_send_sync: (0x20004240) opcode 0x2005 status 0x0c

0x0c is the same as "Command Disallowed", i.e. the controller considers
itself to be in a state where it cannot accept a command. OpCode 0x2005
in turn is HCI_Set_Random_Address, so it's this command that the
controller is refusing to accept.

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi Johan,

 I have attached a new log. This time it fails after 121 cycles (maybe the 128 was a coincidence and the extra debug has changed the timing?).

 Any ideas what is happening?

Regards,
Declan

-----Original Message-----
From: Johan Hedberg <johan.hedberg@...> 
Sent: Wednesday, 22 August 2018 2:34 PM
To: Declan Traill <declan.traill@...>
Cc: devel@...
Subject: Re: [Zephyr-devel] bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Hi Declan,

Could you enable the following options and try to take another log:

CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEBUG_HCI_CORE=y

If I remember right, EIO is just a generic mapping to any HCI error coming from the controller. Enabling the above options should hopefully reveal what that error is. If it still doesn't help we'll need to enable controller logs or take a full HCI log (using CONFIG_BT_DEBUG_MONITOR).

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi,

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.
After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

Given the number of time it works (128) it seems like a resource or memory may have run out?

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

Thanks...

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

Regards,

Declan Traill
Embedded Firmware Engineer
declan.traill@...
SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

--------
Email from setec.com.au does not necessarily represent the official 
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.




***** Booting Zephyr OS v1.12.0-1096-g55f6620c3 ***** Zephyr Shell, 
Zephyr version: 1.12.99 Type 'help' for a list of available commands
shell> [bt] [INF] hci_vs_init: HW Platform: Nordic Semiconductor 
shell> (0x0002)
[bt] [INF] hci_vs_init: HW Variant: nRF52x (0x0002) [bt] [INF] 
hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version 
1.12 Build 99 [bt] [WRN] bt_pub_key_gen: ECC HCI commands not 
available Bluetooth initialized [bt] [INF] bt_dev_show_info: Identity: 
c0:7e:4c:e6:8b:f3 (random) [bt] [INF] bt_dev_show_info: HCI: version 
5.0 (0x09) revision 0x0000, manufacturer 0x05f1 [bt] [INF] 
bt_dev_show_info: LMP: version 5.0 (0x09) subver 0xffff Advertising 
successfully started

Scanning Started 1
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -70) 
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning 
Stopped Scanning Started 2 Scanning Stopped Scanning Started 3 
Scanning Stopped Scanning Started 4
Connected: 59:75:02:8a:8f:b6 (random) (NOT Bonded) Scanning Stopped 
Scanning Started 5 Scanning Stopped Scanning Started 6 Scanning 
Stopped Scanning Started 7 Scanning Stopped Scanning Started 8 
Scanning Stopped Scanning Started 9 Scanning Stopped Scanning Started 
10 Scanning Stopped Scanning Started 11 Device found in close 
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device found - 
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning 
Started 12 Device found in close proximity: 5d:29:c2:26:6c:4c (random) 
(RSSI -61) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded 
Scanning Stopped Scanning Started 13 Device found in close proximity: 
5d:29:c2:26:6c:4c (random) (RSSI -48) Device found - 5d:29:c2:26:6c:4c 
(random) - NOT bonded Scanning Stopped Scanning Started 14 Device 
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device 
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped 
Scanning Started 15 Device found in close proximity: 5d:29:c2:26:6c:4c 
(random) (RSSI -57) Device found - 5d:29:c2:26:6c:4c (random) - NOT 
bonded Scanning Stopped Scanning Started 16 Device found in close 
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -55) Device found - 
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning 
Started 17 Device found in close proximity: 5d:29:c2:26:6c:4c (random) 
(RSSI -50) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded 
Scanning Stopped Scanning Started 18 Device found in close proximity: 
5d:29:c2:26:6c:4c (random) (RSSI -51) Device found - 5d:29:c2:26:6c:4c 
(random) - NOT bonded Scanning Stopped Scanning Started 19 Device 
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device 
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped 
Scanning Started 20 Device found in close proximity: 6f:d9:fb:62:fc:95 
(random) (RSSI -51) Device found - 6f:d9:fb:62:fc:95 (random) - NOT 
bonded Scanning Stopped Scanning Started 21 Device found in close 
proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -58) Device found - 
6f:d9:fb:62:fc:95 (random) - NOT bonded Scanning Stopped Scanning 
Started 22 Device found in close proximity: 6f:d9:fb:62:fc:95 (random) 
(RSSI -53) Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded 
Scanning Stopped Scanning Started 23 Device found in close proximity: 
6f:d9:fb:62:fc:95 (random) (RSSI -52) Device found - 6f:d9:fb:62:fc:95 
(random) - NOT bonded Scanning Stopped Scanning Started 24 Scanning 
Stopped Scanning Started 25 Scanning Stopped Scanning Started 26 
Scanning Stopped Scanning Started 27 Scanning Stopped Scanning Started 
28 Scanning Stopped Scanning Started 29 Scanning Stopped Scanning 
Started 30 Scanning Stopped Scanning Started 31 Scanning Stopped 
Scanning Started 32 Scanning Stopped Scanning Started 33 Scanning 
Stopped Scanning Started 34 Scanning Stopped Scanning Started 35 
Scanning Stopped Scanning Started 36 Scanning Stopped Scanning Started 
37 Scanning Stopped Scanning Started 38 Scanning Stopped Scanning 
Started 39 Device found in close proximity: 72:bd:c4:8a:51:23 (random) 
(RSSI -70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded 
Scanning Stopped Scanning Started 40 Scanning Stopped Scanning Started 
41 Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI 
-70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded Scanning 
Stopped Scanning Started 42 Scanning Stopped Scanning Started 43 
Scanning Stopped Scanning Started 44 Scanning Stopped Scanning Started 
45 Scanning Stopped Scanning Started 46 Scanning Stopped Scanning 
Started 47 Scanning Stopped Scanning Started 48 Scanning Stopped 
Scanning Started 49 Scanning Stopped Scanning Started 50 Scanning 
Stopped Scanning Started 51 Scanning Stopped Scanning Started 52 
Scanning Stopped Scanning Started 53 Scanning Stopped Scanning Started 
54 Scanning Stopped Scanning Started 55 Device found in close 
proximity: 72:bd:c4:8a:51:23 (random) (RSSI -69) Device found - 
72:bd:c4:8a:51:23 (random) - NOT bonded Scanning Stopped Scanning 
Started 56 Scanning Stopped Scanning Started 57 Scanning Stopped 
Scanning Started 58 Scanning Stopped Scanning Started 59 Scanning 
Stopped Scanning Started 60 Scanning Stopped Scanning Started 61 
Scanning Stopped Scanning Started 62 Scanning Stopped Scanning Started 
63 Scanning Stopped Scanning Started 64 Scanning Stopped Scanning 
Started 65 Scanning Stopped Scanning Started 66 Scanning Stopped 
Scanning Started 67 Scanning Stopped Scanning Started 68 Scanning 
Stopped Scanning Started 69 Scanning Stopped Scanning Started 70 
Scanning Stopped Scanning Started 71 Scanning Stopped Scanning Started 
72 Scanning Stopped Scanning Started 73 Scanning Stopped Scanning 
Started 74 Scanning Stopped Scanning Started 75 Scanning Stopped 
Scanning Started 76 Scanning Stopped Scanning Started 77 Scanning 
Stopped Scanning Started 78 Scanning Stopped Scanning Started 79 
Scanning Stopped Scanning Started 80 Scanning Stopped Scanning Started 
81 Scanning Stopped Scanning Started 82 Scanning Stopped Scanning 
Started 83 Scanning Stopped Scanning Started 84 Scanning Stopped 
Scanning Started 85 Device found in close proximity: 7a:19:47:6d:5e:b8 
(random) (RSSI -69) Device found - 7a:19:47:6d:5e:b8 (random) - NOT 
bonded Scanning Stopped Scanning Started 86 Device found in close 
proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69) Device found - 
7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning Stopped Scanning 
Started 87 Scanning Stopped Scanning Started 88 Scanning Stopped 
Scanning Started 89 Scanning Stopped Scanning Started 90 Scanning 
Stopped Scanning Started 91 Scanning Stopped Scanning Started 92 
Scanning Stopped Scanning Started 93 Scanning Stopped Scanning Started 
94 Scanning Stopped Scanning Started 95 Scanning Stopped Scanning 
Started 96 Scanning Stopped Scanning Started 97 Scanning Stopped 
Scanning Started 98 Scanning Stopped Scanning Started 99 Scanning 
Stopped Scanning Started 100 Scanning Stopped Scanning Started 101 
Scanning Stopped Scanning Started 102 Scanning Stopped Scanning 
Started 103 Scanning Stopped Scanning Started 104 Scanning Stopped 
Scanning Started 105 Scanning Stopped Scanning Started 106 Scanning 
Stopped Scanning Started 107 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning Started 108 Device 
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device 
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped 
Scanning Started 109 Scanning Stopped Scanning Started 110 Scanning 
Stopped Scanning Started 111 Scanning Stopped Scanning Started 112 
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) 
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning 
Stopped Scanning Started 113 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning Started 114 Device 
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device 
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped 
Scanning Started 115 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning Started 116 Scanning 
Stopped Scanning Started 117 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning Started 118 Scanning 
Stopped Scanning Started 119 Scanning Stopped Scanning Started 120 
Scanning Stopped Scanning Started 121 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning Started 122 Scanning 
Stopped Scanning Started 123 Scanning Stopped Scanning Started 124 
Scanning Stopped Scanning Started 125 Scanning Stopped Scanning 
Started 126 Scanning Stopped Scanning Started 127 Scanning Stopped 
Scanning Started 128 Device found in close proximity: 
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc 
(public) - NOT bonded Scanning Stopped Scanning failed to start 129 
(err -5) Scanning Stopped Scanning failed to start 130 (err -5) 
Scanning Stopped Scanning failed to start 131 (err -5) Scanning 
Stopped Scanning failed to start 132 (err -5) Scanning Stopped 
Scanning failed to start 133 (err -5) Scanning Stopped Scanning failed 
to start 134 (err -5)




Scanning failed to start (err -5)
Scanning failed to start (err -5)
[bt] [ERR] rpa_adv_refresh: assert: 'idx < ((unsigned long) (((int) 
sizeof(char[1 - 2 * !(!__builtin_types_compatible_p(__typeof__(rl), 
__typeof__(&(rl)[0])))]) - 1) + (sizeof(rl) / sizeof((rl)[0]))))' 
failed
***** Kernel OOPS! *****
Current thread ID = 0x20004a10
Faulting instruction address = 0x2a134 Fatal fault in thread 
0x20004a10! Aborting.
Scanning failed to start (err -5)
Scanning failed to start (err -5)
S




--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.








Code cleanup for dts.fixup #defines

Diego Sueiro
 

Folks,

I was thinking about doing a code cleanup in the dts.fixup and uart and gpio driver for the i.MX7 SoC, where we create redundant defines already covered by devicetree aliases.

Here is a breif example for the CONFIG_UART_IMX_UART_2_NAME:
boards/arm/colibri_imx7d_m4/colibri_imx7d_m4.dts:
<...>
aliases {
                <...>
                uart-2 = &uart2;
                <...>
        };
<...>

This alias will generate the following define in <build>/zephyr/include/generated/generated_dts_board.h:
#define UART_2_LABEL                        NXP_IMX_UART_30890000_LABEL

And the associated change will be:
diff --git a/arch/arm/soc/nxp_imx/mcimx7_m4/dts.fixup b/arch/arm/soc/nxp_imx/mcimx7_m4/dts.fixup
index f8765dc..8e46695 100644
--- a/arch/arm/soc/nxp_imx/mcimx7_m4/dts.fixup
+++ b/arch/arm/soc/nxp_imx/mcimx7_m4/dts.fixup
@@ -65,7 +65,6 @@
 #define CONFIG_UART_IMX_UART_1_IRQ_PRI      NXP_IMX_UART_30860000_IRQ_0_PRIORITY
 #define CONFIG_UART_IMX_UART_1_MODEM_MODE   NXP_IMX_UART_30860000_MODEM_MODE
 
-#define CONFIG_UART_IMX_UART_2_NAME         NXP_IMX_UART_30890000_LABEL
 #define CONFIG_UART_IMX_UART_2_BASE_ADDRESS NXP_IMX_UART_30890000_BASE_ADDRESS
 #define CONFIG_UART_IMX_UART_2_BAUD_RATE    NXP_IMX_UART_30890000_CURRENT_SPEED
 #define CONFIG_UART_IMX_UART_2_IRQ_NUM      NXP_IMX_UART_30890000_IRQ_0
diff --git a/drivers/serial/uart_imx.c b/drivers/serial/uart_imx.c
index 6a8f701..a3ef5ea 100644
--- a/drivers/serial/uart_imx.c
+++ b/drivers/serial/uart_imx.c
@@ -337,7 +337,7 @@ static const struct imx_uart_config imx_uart_2_config = {
 
 static struct imx_uart_data imx_uart_2_data;
 
-DEVICE_AND_API_INIT(uart_2, CONFIG_UART_IMX_UART_2_NAME, &uart_imx_init,
+DEVICE_AND_API_INIT(uart_2, UART_2_LABEL, &uart_imx_init,
                &imx_uart_2_data, &imx_uart_2_config,
                PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
                &uart_imx_driver_api);


I used this strategy for the imx i2c and pwm drivers.

I believe that this will simplify and let the code a little bit cleaner.

What do you think? Do you see any caveats about this? 

PS.: I found that we could potentially remove 1828 defines in dts.fixup files in master (grep -R --exclude-dir={build,samples,tests} --include="dts.fixup" "#define CONFIG_"  ./* | grep -v "PRIO_BITS" | wc -l)

Regards,

--
*dS
Diego Sueiro

CEO do Embarcados
www.embarcados.com.br

/*long live rock 'n roll*/


Re: Enable SPI driver on nrf52840

Justin
 

I believe that the SPI driver for NRF52 doesn't support DTS yet, and you have to configure it through the config files.  I'm not sure why that's the case and if something is preventing it from being supporting DTS?


Re: bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Chettimada, Vinayak Kariappa
 

Hi,

Could you please turn off the controller privacy feature and check if you still face issues?
CONFIG_BT_CTLR_PRIVACY=n

This is to narrow down the locality of the problem, just suspecting some race condition with the running advertiser in concurrency,

Regards,
Vinayak

On 22 Aug 2018, at 11:31, Johan Hedberg <@jhe> wrote:

Thanks Declan. The logs do indeed show the HCI error:

[bt] [DBG] bt_hci_cmd_send_sync: (0x20004240) opcode 0x2005 status 0x0c

0x0c is the same as "Command Disallowed", i.e. the controller considers
itself to be in a state where it cannot accept a command. OpCode 0x2005
in turn is HCI_Set_Random_Address, so it's this command that the
controller is refusing to accept.

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi Johan,

I have attached a new log. This time it fails after 121 cycles (maybe the 128 was a coincidence and the extra debug has changed the timing?).

Any ideas what is happening?

Regards,
Declan

-----Original Message-----
From: Johan Hedberg <@jhe>
Sent: Wednesday, 22 August 2018 2:34 PM
To: Declan Traill <declan.traill@...>
Cc: devel@...
Subject: Re: [Zephyr-devel] bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Hi Declan,

Could you enable the following options and try to take another log:

CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEBUG_HCI_CORE=y

If I remember right, EIO is just a generic mapping to any HCI error coming from the controller. Enabling the above options should hopefully reveal what that error is. If it still doesn't help we'll need to enable controller logs or take a full HCI log (using CONFIG_BT_DEBUG_MONITOR).

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi,

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.
After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

Given the number of time it works (128) it seems like a resource or memory may have run out?

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

Thanks...

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

Regards,

Declan Traill
Embedded Firmware Engineer
declan.traill@...
SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


***** Booting Zephyr OS v1.12.0-1096-g55f6620c3 ***** Zephyr Shell,
Zephyr version: 1.12.99 Type 'help' for a list of available commands
shell> [bt] [INF] hci_vs_init: HW Platform: Nordic Semiconductor
shell> (0x0002)
[bt] [INF] hci_vs_init: HW Variant: nRF52x (0x0002) [bt] [INF]
hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version
1.12 Build 99 [bt] [WRN] bt_pub_key_gen: ECC HCI commands not
available Bluetooth initialized [bt] [INF] bt_dev_show_info: Identity:
c0:7e:4c:e6:8b:f3 (random) [bt] [INF] bt_dev_show_info: HCI: version
5.0 (0x09) revision 0x0000, manufacturer 0x05f1 [bt] [INF]
bt_dev_show_info: LMP: version 5.0 (0x09) subver 0xffff Advertising
successfully started

Scanning Started 1
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -70)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning
Stopped Scanning Started 2 Scanning Stopped Scanning Started 3
Scanning Stopped Scanning Started 4
Connected: 59:75:02:8a:8f:b6 (random) (NOT Bonded) Scanning Stopped
Scanning Started 5 Scanning Stopped Scanning Started 6 Scanning
Stopped Scanning Started 7 Scanning Stopped Scanning Started 8
Scanning Stopped Scanning Started 9 Scanning Stopped Scanning Started
10 Scanning Stopped Scanning Started 11 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 12 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -61) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 13 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -48) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 14 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 15 Device found in close proximity: 5d:29:c2:26:6c:4c
(random) (RSSI -57) Device found - 5d:29:c2:26:6c:4c (random) - NOT
bonded Scanning Stopped Scanning Started 16 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -55) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 17 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -50) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 18 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -51) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 19 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 20 Device found in close proximity: 6f:d9:fb:62:fc:95
(random) (RSSI -51) Device found - 6f:d9:fb:62:fc:95 (random) - NOT
bonded Scanning Stopped Scanning Started 21 Device found in close
proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -58) Device found -
6f:d9:fb:62:fc:95 (random) - NOT bonded Scanning Stopped Scanning
Started 22 Device found in close proximity: 6f:d9:fb:62:fc:95 (random)
(RSSI -53) Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped Scanning Started 23 Device found in close proximity:
6f:d9:fb:62:fc:95 (random) (RSSI -52) Device found - 6f:d9:fb:62:fc:95
(random) - NOT bonded Scanning Stopped Scanning Started 24 Scanning
Stopped Scanning Started 25 Scanning Stopped Scanning Started 26
Scanning Stopped Scanning Started 27 Scanning Stopped Scanning Started
28 Scanning Stopped Scanning Started 29 Scanning Stopped Scanning
Started 30 Scanning Stopped Scanning Started 31 Scanning Stopped
Scanning Started 32 Scanning Stopped Scanning Started 33 Scanning
Stopped Scanning Started 34 Scanning Stopped Scanning Started 35
Scanning Stopped Scanning Started 36 Scanning Stopped Scanning Started
37 Scanning Stopped Scanning Started 38 Scanning Stopped Scanning
Started 39 Device found in close proximity: 72:bd:c4:8a:51:23 (random)
(RSSI -70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped Scanning Started 40 Scanning Stopped Scanning Started
41 Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI
-70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded Scanning
Stopped Scanning Started 42 Scanning Stopped Scanning Started 43
Scanning Stopped Scanning Started 44 Scanning Stopped Scanning Started
45 Scanning Stopped Scanning Started 46 Scanning Stopped Scanning
Started 47 Scanning Stopped Scanning Started 48 Scanning Stopped
Scanning Started 49 Scanning Stopped Scanning Started 50 Scanning
Stopped Scanning Started 51 Scanning Stopped Scanning Started 52
Scanning Stopped Scanning Started 53 Scanning Stopped Scanning Started
54 Scanning Stopped Scanning Started 55 Device found in close
proximity: 72:bd:c4:8a:51:23 (random) (RSSI -69) Device found -
72:bd:c4:8a:51:23 (random) - NOT bonded Scanning Stopped Scanning
Started 56 Scanning Stopped Scanning Started 57 Scanning Stopped
Scanning Started 58 Scanning Stopped Scanning Started 59 Scanning
Stopped Scanning Started 60 Scanning Stopped Scanning Started 61
Scanning Stopped Scanning Started 62 Scanning Stopped Scanning Started
63 Scanning Stopped Scanning Started 64 Scanning Stopped Scanning
Started 65 Scanning Stopped Scanning Started 66 Scanning Stopped
Scanning Started 67 Scanning Stopped Scanning Started 68 Scanning
Stopped Scanning Started 69 Scanning Stopped Scanning Started 70
Scanning Stopped Scanning Started 71 Scanning Stopped Scanning Started
72 Scanning Stopped Scanning Started 73 Scanning Stopped Scanning
Started 74 Scanning Stopped Scanning Started 75 Scanning Stopped
Scanning Started 76 Scanning Stopped Scanning Started 77 Scanning
Stopped Scanning Started 78 Scanning Stopped Scanning Started 79
Scanning Stopped Scanning Started 80 Scanning Stopped Scanning Started
81 Scanning Stopped Scanning Started 82 Scanning Stopped Scanning
Started 83 Scanning Stopped Scanning Started 84 Scanning Stopped
Scanning Started 85 Device found in close proximity: 7a:19:47:6d:5e:b8
(random) (RSSI -69) Device found - 7a:19:47:6d:5e:b8 (random) - NOT
bonded Scanning Stopped Scanning Started 86 Device found in close
proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69) Device found -
7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning Stopped Scanning
Started 87 Scanning Stopped Scanning Started 88 Scanning Stopped
Scanning Started 89 Scanning Stopped Scanning Started 90 Scanning
Stopped Scanning Started 91 Scanning Stopped Scanning Started 92
Scanning Stopped Scanning Started 93 Scanning Stopped Scanning Started
94 Scanning Stopped Scanning Started 95 Scanning Stopped Scanning
Started 96 Scanning Stopped Scanning Started 97 Scanning Stopped
Scanning Started 98 Scanning Stopped Scanning Started 99 Scanning
Stopped Scanning Started 100 Scanning Stopped Scanning Started 101
Scanning Stopped Scanning Started 102 Scanning Stopped Scanning
Started 103 Scanning Stopped Scanning Started 104 Scanning Stopped
Scanning Started 105 Scanning Stopped Scanning Started 106 Scanning
Stopped Scanning Started 107 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 108 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 109 Scanning Stopped Scanning Started 110 Scanning
Stopped Scanning Started 111 Scanning Stopped Scanning Started 112
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning
Stopped Scanning Started 113 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 114 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 115 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 116 Scanning
Stopped Scanning Started 117 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 118 Scanning
Stopped Scanning Started 119 Scanning Stopped Scanning Started 120
Scanning Stopped Scanning Started 121 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 122 Scanning
Stopped Scanning Started 123 Scanning Stopped Scanning Started 124
Scanning Stopped Scanning Started 125 Scanning Stopped Scanning
Started 126 Scanning Stopped Scanning Started 127 Scanning Stopped
Scanning Started 128 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning failed to start 129
(err -5) Scanning Stopped Scanning failed to start 130 (err -5)
Scanning Stopped Scanning failed to start 131 (err -5) Scanning
Stopped Scanning failed to start 132 (err -5) Scanning Stopped
Scanning failed to start 133 (err -5) Scanning Stopped Scanning failed
to start 134 (err -5)




Scanning failed to start (err -5)
Scanning failed to start (err -5)
[bt] [ERR] rpa_adv_refresh: assert: 'idx < ((unsigned long) (((int)
sizeof(char[1 - 2 * !(!__builtin_types_compatible_p(__typeof__(rl),
__typeof__(&(rl)[0])))]) - 1) + (sizeof(rl) / sizeof((rl)[0]))))'
failed
***** Kernel OOPS! *****
Current thread ID = 0x20004a10
Faulting instruction address = 0x2a134 Fatal fault in thread
0x20004a10! Aborting.
Scanning failed to start (err -5)
Scanning failed to start (err -5)
S


--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.



Re: bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Declan Traill <declan.traill@...>
 

Hi Johan,

I have attached a new log. This time it fails after 121 cycles (maybe the 128 was a coincidence and the extra debug has changed the timing?).

Any ideas what is happening?

Regards,
Declan

-----Original Message-----
From: Johan Hedberg <@jhe>
Sent: Wednesday, 22 August 2018 2:34 PM
To: Declan Traill <declan.traill@...>
Cc: devel@...
Subject: Re: [Zephyr-devel] bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Hi Declan,

Could you enable the following options and try to take another log:

CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEBUG_HCI_CORE=y

If I remember right, EIO is just a generic mapping to any HCI error coming from the controller. Enabling the above options should hopefully reveal what that error is. If it still doesn't help we'll need to enable controller logs or take a full HCI log (using CONFIG_BT_DEBUG_MONITOR).

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi,

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.
After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

Given the number of time it works (128) it seems like a resource or memory may have run out?

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

Thanks...

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

Regards,

Declan Traill
Embedded Firmware Engineer
declan.traill@...
SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


***** Booting Zephyr OS v1.12.0-1096-g55f6620c3 ***** Zephyr Shell,
Zephyr version: 1.12.99 Type 'help' for a list of available commands
shell> [bt] [INF] hci_vs_init: HW Platform: Nordic Semiconductor
shell> (0x0002)
[bt] [INF] hci_vs_init: HW Variant: nRF52x (0x0002) [bt] [INF]
hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version
1.12 Build 99 [bt] [WRN] bt_pub_key_gen: ECC HCI commands not
available Bluetooth initialized [bt] [INF] bt_dev_show_info: Identity:
c0:7e:4c:e6:8b:f3 (random) [bt] [INF] bt_dev_show_info: HCI: version
5.0 (0x09) revision 0x0000, manufacturer 0x05f1 [bt] [INF]
bt_dev_show_info: LMP: version 5.0 (0x09) subver 0xffff Advertising
successfully started

Scanning Started 1
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -70)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning
Stopped Scanning Started 2 Scanning Stopped Scanning Started 3
Scanning Stopped Scanning Started 4
Connected: 59:75:02:8a:8f:b6 (random) (NOT Bonded) Scanning Stopped
Scanning Started 5 Scanning Stopped Scanning Started 6 Scanning
Stopped Scanning Started 7 Scanning Stopped Scanning Started 8
Scanning Stopped Scanning Started 9 Scanning Stopped Scanning Started
10 Scanning Stopped Scanning Started 11 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 12 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -61) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 13 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -48) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 14 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 15 Device found in close proximity: 5d:29:c2:26:6c:4c
(random) (RSSI -57) Device found - 5d:29:c2:26:6c:4c (random) - NOT
bonded Scanning Stopped Scanning Started 16 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -55) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 17 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -50) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 18 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -51) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 19 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 20 Device found in close proximity: 6f:d9:fb:62:fc:95
(random) (RSSI -51) Device found - 6f:d9:fb:62:fc:95 (random) - NOT
bonded Scanning Stopped Scanning Started 21 Device found in close
proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -58) Device found -
6f:d9:fb:62:fc:95 (random) - NOT bonded Scanning Stopped Scanning
Started 22 Device found in close proximity: 6f:d9:fb:62:fc:95 (random)
(RSSI -53) Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped Scanning Started 23 Device found in close proximity:
6f:d9:fb:62:fc:95 (random) (RSSI -52) Device found - 6f:d9:fb:62:fc:95
(random) - NOT bonded Scanning Stopped Scanning Started 24 Scanning
Stopped Scanning Started 25 Scanning Stopped Scanning Started 26
Scanning Stopped Scanning Started 27 Scanning Stopped Scanning Started
28 Scanning Stopped Scanning Started 29 Scanning Stopped Scanning
Started 30 Scanning Stopped Scanning Started 31 Scanning Stopped
Scanning Started 32 Scanning Stopped Scanning Started 33 Scanning
Stopped Scanning Started 34 Scanning Stopped Scanning Started 35
Scanning Stopped Scanning Started 36 Scanning Stopped Scanning Started
37 Scanning Stopped Scanning Started 38 Scanning Stopped Scanning
Started 39 Device found in close proximity: 72:bd:c4:8a:51:23 (random)
(RSSI -70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped Scanning Started 40 Scanning Stopped Scanning Started
41 Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI
-70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded Scanning
Stopped Scanning Started 42 Scanning Stopped Scanning Started 43
Scanning Stopped Scanning Started 44 Scanning Stopped Scanning Started
45 Scanning Stopped Scanning Started 46 Scanning Stopped Scanning
Started 47 Scanning Stopped Scanning Started 48 Scanning Stopped
Scanning Started 49 Scanning Stopped Scanning Started 50 Scanning
Stopped Scanning Started 51 Scanning Stopped Scanning Started 52
Scanning Stopped Scanning Started 53 Scanning Stopped Scanning Started
54 Scanning Stopped Scanning Started 55 Device found in close
proximity: 72:bd:c4:8a:51:23 (random) (RSSI -69) Device found -
72:bd:c4:8a:51:23 (random) - NOT bonded Scanning Stopped Scanning
Started 56 Scanning Stopped Scanning Started 57 Scanning Stopped
Scanning Started 58 Scanning Stopped Scanning Started 59 Scanning
Stopped Scanning Started 60 Scanning Stopped Scanning Started 61
Scanning Stopped Scanning Started 62 Scanning Stopped Scanning Started
63 Scanning Stopped Scanning Started 64 Scanning Stopped Scanning
Started 65 Scanning Stopped Scanning Started 66 Scanning Stopped
Scanning Started 67 Scanning Stopped Scanning Started 68 Scanning
Stopped Scanning Started 69 Scanning Stopped Scanning Started 70
Scanning Stopped Scanning Started 71 Scanning Stopped Scanning Started
72 Scanning Stopped Scanning Started 73 Scanning Stopped Scanning
Started 74 Scanning Stopped Scanning Started 75 Scanning Stopped
Scanning Started 76 Scanning Stopped Scanning Started 77 Scanning
Stopped Scanning Started 78 Scanning Stopped Scanning Started 79
Scanning Stopped Scanning Started 80 Scanning Stopped Scanning Started
81 Scanning Stopped Scanning Started 82 Scanning Stopped Scanning
Started 83 Scanning Stopped Scanning Started 84 Scanning Stopped
Scanning Started 85 Device found in close proximity: 7a:19:47:6d:5e:b8
(random) (RSSI -69) Device found - 7a:19:47:6d:5e:b8 (random) - NOT
bonded Scanning Stopped Scanning Started 86 Device found in close
proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69) Device found -
7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning Stopped Scanning
Started 87 Scanning Stopped Scanning Started 88 Scanning Stopped
Scanning Started 89 Scanning Stopped Scanning Started 90 Scanning
Stopped Scanning Started 91 Scanning Stopped Scanning Started 92
Scanning Stopped Scanning Started 93 Scanning Stopped Scanning Started
94 Scanning Stopped Scanning Started 95 Scanning Stopped Scanning
Started 96 Scanning Stopped Scanning Started 97 Scanning Stopped
Scanning Started 98 Scanning Stopped Scanning Started 99 Scanning
Stopped Scanning Started 100 Scanning Stopped Scanning Started 101
Scanning Stopped Scanning Started 102 Scanning Stopped Scanning
Started 103 Scanning Stopped Scanning Started 104 Scanning Stopped
Scanning Started 105 Scanning Stopped Scanning Started 106 Scanning
Stopped Scanning Started 107 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 108 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 109 Scanning Stopped Scanning Started 110 Scanning
Stopped Scanning Started 111 Scanning Stopped Scanning Started 112
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning
Stopped Scanning Started 113 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 114 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 115 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 116 Scanning
Stopped Scanning Started 117 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 118 Scanning
Stopped Scanning Started 119 Scanning Stopped Scanning Started 120
Scanning Stopped Scanning Started 121 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 122 Scanning
Stopped Scanning Started 123 Scanning Stopped Scanning Started 124
Scanning Stopped Scanning Started 125 Scanning Stopped Scanning
Started 126 Scanning Stopped Scanning Started 127 Scanning Stopped
Scanning Started 128 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning failed to start 129
(err -5) Scanning Stopped Scanning failed to start 130 (err -5)
Scanning Stopped Scanning failed to start 131 (err -5) Scanning
Stopped Scanning failed to start 132 (err -5) Scanning Stopped
Scanning failed to start 133 (err -5) Scanning Stopped Scanning failed
to start 134 (err -5)




Scanning failed to start (err -5)
Scanning failed to start (err -5)
[bt] [ERR] rpa_adv_refresh: assert: 'idx < ((unsigned long) (((int)
sizeof(char[1 - 2 * !(!__builtin_types_compatible_p(__typeof__(rl),
__typeof__(&(rl)[0])))]) - 1) + (sizeof(rl) / sizeof((rl)[0]))))'
failed
***** Kernel OOPS! *****
Current thread ID = 0x20004a10
Faulting instruction address = 0x2a134 Fatal fault in thread
0x20004a10! Aborting.
Scanning failed to start (err -5)
Scanning failed to start (err -5)
S


--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


Re: bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Johan Hedberg
 

Thanks Declan. The logs do indeed show the HCI error:

[bt] [DBG] bt_hci_cmd_send_sync: (0x20004240) opcode 0x2005 status 0x0c

0x0c is the same as "Command Disallowed", i.e. the controller considers
itself to be in a state where it cannot accept a command. OpCode 0x2005
in turn is HCI_Set_Random_Address, so it's this command that the
controller is refusing to accept.

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi Johan,

I have attached a new log. This time it fails after 121 cycles (maybe the 128 was a coincidence and the extra debug has changed the timing?).

Any ideas what is happening?

Regards,
Declan

-----Original Message-----
From: Johan Hedberg <@jhe>
Sent: Wednesday, 22 August 2018 2:34 PM
To: Declan Traill <declan.traill@...>
Cc: devel@...
Subject: Re: [Zephyr-devel] bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Hi Declan,

Could you enable the following options and try to take another log:

CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEBUG_HCI_CORE=y

If I remember right, EIO is just a generic mapping to any HCI error coming from the controller. Enabling the above options should hopefully reveal what that error is. If it still doesn't help we'll need to enable controller logs or take a full HCI log (using CONFIG_BT_DEBUG_MONITOR).

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi,

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.
After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

Given the number of time it works (128) it seems like a resource or memory may have run out?

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

Thanks...

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

Regards,

Declan Traill
Embedded Firmware Engineer
declan.traill@...
SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


***** Booting Zephyr OS v1.12.0-1096-g55f6620c3 ***** Zephyr Shell,
Zephyr version: 1.12.99 Type 'help' for a list of available commands
shell> [bt] [INF] hci_vs_init: HW Platform: Nordic Semiconductor
shell> (0x0002)
[bt] [INF] hci_vs_init: HW Variant: nRF52x (0x0002) [bt] [INF]
hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version
1.12 Build 99 [bt] [WRN] bt_pub_key_gen: ECC HCI commands not
available Bluetooth initialized [bt] [INF] bt_dev_show_info: Identity:
c0:7e:4c:e6:8b:f3 (random) [bt] [INF] bt_dev_show_info: HCI: version
5.0 (0x09) revision 0x0000, manufacturer 0x05f1 [bt] [INF]
bt_dev_show_info: LMP: version 5.0 (0x09) subver 0xffff Advertising
successfully started

Scanning Started 1
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -70)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning
Stopped Scanning Started 2 Scanning Stopped Scanning Started 3
Scanning Stopped Scanning Started 4
Connected: 59:75:02:8a:8f:b6 (random) (NOT Bonded) Scanning Stopped
Scanning Started 5 Scanning Stopped Scanning Started 6 Scanning
Stopped Scanning Started 7 Scanning Stopped Scanning Started 8
Scanning Stopped Scanning Started 9 Scanning Stopped Scanning Started
10 Scanning Stopped Scanning Started 11 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 12 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -61) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 13 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -48) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 14 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 15 Device found in close proximity: 5d:29:c2:26:6c:4c
(random) (RSSI -57) Device found - 5d:29:c2:26:6c:4c (random) - NOT
bonded Scanning Stopped Scanning Started 16 Device found in close
proximity: 5d:29:c2:26:6c:4c (random) (RSSI -55) Device found -
5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped Scanning
Started 17 Device found in close proximity: 5d:29:c2:26:6c:4c (random)
(RSSI -50) Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped Scanning Started 18 Device found in close proximity:
5d:29:c2:26:6c:4c (random) (RSSI -51) Device found - 5d:29:c2:26:6c:4c
(random) - NOT bonded Scanning Stopped Scanning Started 19 Device
found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57) Device
found - 5d:29:c2:26:6c:4c (random) - NOT bonded Scanning Stopped
Scanning Started 20 Device found in close proximity: 6f:d9:fb:62:fc:95
(random) (RSSI -51) Device found - 6f:d9:fb:62:fc:95 (random) - NOT
bonded Scanning Stopped Scanning Started 21 Device found in close
proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -58) Device found -
6f:d9:fb:62:fc:95 (random) - NOT bonded Scanning Stopped Scanning
Started 22 Device found in close proximity: 6f:d9:fb:62:fc:95 (random)
(RSSI -53) Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped Scanning Started 23 Device found in close proximity:
6f:d9:fb:62:fc:95 (random) (RSSI -52) Device found - 6f:d9:fb:62:fc:95
(random) - NOT bonded Scanning Stopped Scanning Started 24 Scanning
Stopped Scanning Started 25 Scanning Stopped Scanning Started 26
Scanning Stopped Scanning Started 27 Scanning Stopped Scanning Started
28 Scanning Stopped Scanning Started 29 Scanning Stopped Scanning
Started 30 Scanning Stopped Scanning Started 31 Scanning Stopped
Scanning Started 32 Scanning Stopped Scanning Started 33 Scanning
Stopped Scanning Started 34 Scanning Stopped Scanning Started 35
Scanning Stopped Scanning Started 36 Scanning Stopped Scanning Started
37 Scanning Stopped Scanning Started 38 Scanning Stopped Scanning
Started 39 Device found in close proximity: 72:bd:c4:8a:51:23 (random)
(RSSI -70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped Scanning Started 40 Scanning Stopped Scanning Started
41 Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI
-70) Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded Scanning
Stopped Scanning Started 42 Scanning Stopped Scanning Started 43
Scanning Stopped Scanning Started 44 Scanning Stopped Scanning Started
45 Scanning Stopped Scanning Started 46 Scanning Stopped Scanning
Started 47 Scanning Stopped Scanning Started 48 Scanning Stopped
Scanning Started 49 Scanning Stopped Scanning Started 50 Scanning
Stopped Scanning Started 51 Scanning Stopped Scanning Started 52
Scanning Stopped Scanning Started 53 Scanning Stopped Scanning Started
54 Scanning Stopped Scanning Started 55 Device found in close
proximity: 72:bd:c4:8a:51:23 (random) (RSSI -69) Device found -
72:bd:c4:8a:51:23 (random) - NOT bonded Scanning Stopped Scanning
Started 56 Scanning Stopped Scanning Started 57 Scanning Stopped
Scanning Started 58 Scanning Stopped Scanning Started 59 Scanning
Stopped Scanning Started 60 Scanning Stopped Scanning Started 61
Scanning Stopped Scanning Started 62 Scanning Stopped Scanning Started
63 Scanning Stopped Scanning Started 64 Scanning Stopped Scanning
Started 65 Scanning Stopped Scanning Started 66 Scanning Stopped
Scanning Started 67 Scanning Stopped Scanning Started 68 Scanning
Stopped Scanning Started 69 Scanning Stopped Scanning Started 70
Scanning Stopped Scanning Started 71 Scanning Stopped Scanning Started
72 Scanning Stopped Scanning Started 73 Scanning Stopped Scanning
Started 74 Scanning Stopped Scanning Started 75 Scanning Stopped
Scanning Started 76 Scanning Stopped Scanning Started 77 Scanning
Stopped Scanning Started 78 Scanning Stopped Scanning Started 79
Scanning Stopped Scanning Started 80 Scanning Stopped Scanning Started
81 Scanning Stopped Scanning Started 82 Scanning Stopped Scanning
Started 83 Scanning Stopped Scanning Started 84 Scanning Stopped
Scanning Started 85 Device found in close proximity: 7a:19:47:6d:5e:b8
(random) (RSSI -69) Device found - 7a:19:47:6d:5e:b8 (random) - NOT
bonded Scanning Stopped Scanning Started 86 Device found in close
proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69) Device found -
7a:19:47:6d:5e:b8 (random) - NOT bonded Scanning Stopped Scanning
Started 87 Scanning Stopped Scanning Started 88 Scanning Stopped
Scanning Started 89 Scanning Stopped Scanning Started 90 Scanning
Stopped Scanning Started 91 Scanning Stopped Scanning Started 92
Scanning Stopped Scanning Started 93 Scanning Stopped Scanning Started
94 Scanning Stopped Scanning Started 95 Scanning Stopped Scanning
Started 96 Scanning Stopped Scanning Started 97 Scanning Stopped
Scanning Started 98 Scanning Stopped Scanning Started 99 Scanning
Stopped Scanning Started 100 Scanning Stopped Scanning Started 101
Scanning Stopped Scanning Started 102 Scanning Stopped Scanning
Started 103 Scanning Stopped Scanning Started 104 Scanning Stopped
Scanning Started 105 Scanning Stopped Scanning Started 106 Scanning
Stopped Scanning Started 107 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 108 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 109 Scanning Stopped Scanning Started 110 Scanning
Stopped Scanning Started 111 Scanning Stopped Scanning Started 112
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning
Stopped Scanning Started 113 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 114 Device
found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70) Device
found - 88:6b:0f:07:08:fc (public) - NOT bonded Scanning Stopped
Scanning Started 115 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 116 Scanning
Stopped Scanning Started 117 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 118 Scanning
Stopped Scanning Started 119 Scanning Stopped Scanning Started 120
Scanning Stopped Scanning Started 121 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning Started 122 Scanning
Stopped Scanning Started 123 Scanning Stopped Scanning Started 124
Scanning Stopped Scanning Started 125 Scanning Stopped Scanning
Started 126 Scanning Stopped Scanning Started 127 Scanning Stopped
Scanning Started 128 Device found in close proximity:
88:6b:0f:07:08:fc (public) (RSSI -70) Device found - 88:6b:0f:07:08:fc
(public) - NOT bonded Scanning Stopped Scanning failed to start 129
(err -5) Scanning Stopped Scanning failed to start 130 (err -5)
Scanning Stopped Scanning failed to start 131 (err -5) Scanning
Stopped Scanning failed to start 132 (err -5) Scanning Stopped
Scanning failed to start 133 (err -5) Scanning Stopped Scanning failed
to start 134 (err -5)




Scanning failed to start (err -5)
Scanning failed to start (err -5)
[bt] [ERR] rpa_adv_refresh: assert: 'idx < ((unsigned long) (((int)
sizeof(char[1 - 2 * !(!__builtin_types_compatible_p(__typeof__(rl),
__typeof__(&(rl)[0])))]) - 1) + (sizeof(rl) / sizeof((rl)[0]))))'
failed
***** Kernel OOPS! *****
Current thread ID = 0x20004a10
Faulting instruction address = 0x2a134 Fatal fault in thread
0x20004a10! Aborting.
Scanning failed to start (err -5)
Scanning failed to start (err -5)
S


--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


hciconfig error with nrf52832 running zephyr #nrf52832#hciconfig#bluez

icephyr
 

hi guys,
    I got a problem here and hope anyone can give me some advice,thanks.

    I bought a official nrf52832 development kits and ported zephyr project successfully. It runs fine with my ubuntu host,via btattach and btmgmt tools.But it didn't work with my nxp embedded linux,the linux version is 4.1.15 and supports hciattach hciconfig tools only.When I tried to bring the bluetooth module up with hciconfig hci0 up,an error comes up:

#hciconfig hci0 up
#Can't init device hci1: Cannot assign requested address (99)

has anyone met this problem before ? I don't know how to deal with it now,the hci0 can not be up status.


Re: Flash configuration in dts file

Laurence Pasteau
 

Thanks David.


However since I had this issue, I change the board definition to have a board out of zephyr scope, since it is a board created here in the compagny for a specific custom. Before I used pca10040 board and a dts.overlay file with all custom components but it is less clean.


It seems that what I needed to do works when the dts file is out of zephyr scope. I don't really undestand why but my issue is resolved in this way.


I have in dts file :
        zephyr ,code-partition = &slot_partition;
Then :
        slot_partition: partition@0 {
            label = "code-partition";
            reg = <0x00000000 0x40000>;
        };

and CONFIG_FLASH_LOAD_SIZE  is correclty setted to 262kB.

Regards,
Laurence

De : David Brown <david.brown@...>
Envoyé : mardi 21 août 2018 19:46
À : Laurence Pasteau
Cc : zephyr-devel@...
Objet : Re: [Zephyr-devel] Flash configuration in dts file
 

On Fri, Aug 17, 2018 at 02:51:54PM +0000, Laurence Pasteau wrote:

>However in the script that generates the generated_dts_board files from dts, it
>seems that :
>
>if CONFIG_FLASH_LOAD_OFFSET is set to 0
>
>then
>
>CONFIG_FLASH_LOAD_SIZE is set to 0.

I wonder if you are running into the same bug I've found in the
extraction script, which assumes the partition reg values are absolute
rather than relative.  I've included the patch below if you want to
try it, and I'll be pushing it into the Zephyr tree soon.

From 656a2b6a78698c1173d9b5537c25eff8f01e2aba Mon Sep 17 00:00:00 2001
From: David Brown <david.brown@...>
Date: Tue, 21 Aug 2018 11:40:51 -0600
Subject: [PATCH] scripts: dts: Fix flash load offset

The flash load offset is being computed assuming that the reg property
in the partition table is an absolute address.  Since this is a relative
address, this causes the offset to effectively subtract the flash base
twice.  Since most flash devices start at zero, this hasn't been noticed
until now.

Change this so that the load-offset is just the offset of the code
partition.

Signed-off-by: David Brown <david.brown@...>
---
 scripts/dts/extract/flash.py | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/scripts/dts/extract/flash.py b/scripts/dts/extract/flash.py
index fb5d42981..98fb8422d 100644
--- a/scripts/dts/extract/flash.py
+++ b/scripts/dts/extract/flash.py
@@ -95,8 +95,7 @@ class DTFlash(DTDirective):
         if node and node is not self._flash_node:
             # only compute the load offset if the code partition
             # is not the same as the flash base address
-            load_offset = str(int(node['props']['reg'][0]) \
-                              - int(self._flash_node['props']['reg'][0]))
+            load_offset = node['props']['reg'][0]
             load_defs['CONFIG_FLASH_LOAD_OFFSET'] = load_offset
             load_size = node['props']['reg'][1]
             load_defs['CONFIG_FLASH_LOAD_SIZE'] = load_size
--
2.16.4


debug with mcuboot

robert.konc@...
 

How could I create image that will be signed that mcuboot will recognise it as valid image.
I wuild like to sign image with imgtool.py in ninja script after build (target all) was succesfull.

Thanks in advance!

Robert


Re: bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Johan Hedberg
 

Hi Declan,

Could you enable the following options and try to take another log:

CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEBUG_HCI_CORE=y

If I remember right, EIO is just a generic mapping to any HCI error
coming from the controller. Enabling the above options should hopefully
reveal what that error is. If it still doesn't help we'll need to enable
controller logs or take a full HCI log (using CONFIG_BT_DEBUG_MONITOR).

Johan

On Wed, Aug 22, 2018, Declan Traill wrote:
Hi,

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.
After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

Given the number of time it works (128) it seems like a resource or memory may have run out?

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

Thanks...

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

Regards,

Declan Traill
Embedded Firmware Engineer
declan.traill@...
SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

--------
Email from setec.com.au does not necessarily represent the official
policy of SETEC Pty Ltd.
See http://www.setec.com.au/emaildisclaimer20060629.html for details.


***** Booting Zephyr OS v1.12.0-1096-g55f6620c3 *****
Zephyr Shell, Zephyr version: 1.12.99
Type 'help' for a list of available commands
shell> [bt] [INF] hci_vs_init: HW Platform: Nordic Semiconductor (0x0002)
[bt] [INF] hci_vs_init: HW Variant: nRF52x (0x0002)
[bt] [INF] hci_vs_init: Firmware: Standard Bluetooth controller (0x00) Version 1.12 Build 99
[bt] [WRN] bt_pub_key_gen: ECC HCI commands not available
Bluetooth initialized
[bt] [INF] bt_dev_show_info: Identity: c0:7e:4c:e6:8b:f3 (random)
[bt] [INF] bt_dev_show_info: HCI: version 5.0 (0x09) revision 0x0000, manufacturer 0x05f1
[bt] [INF] bt_dev_show_info: LMP: version 5.0 (0x09) subver 0xffff
Advertising successfully started

Scanning Started 1
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -70)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded
Scanning Stopped
Scanning Started 2
Scanning Stopped
Scanning Started 3
Scanning Stopped
Scanning Started 4
Connected: 59:75:02:8a:8f:b6 (random) (NOT Bonded)
Scanning Stopped
Scanning Started 5
Scanning Stopped
Scanning Started 6
Scanning Stopped
Scanning Started 7
Scanning Stopped
Scanning Started 8
Scanning Stopped
Scanning Started 9
Scanning Stopped
Scanning Started 10
Scanning Stopped
Scanning Started 11
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 12
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -61)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 13
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -48)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 14
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 15
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 16
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -55)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 17
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -50)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 18
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -51)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 19
Device found in close proximity: 5d:29:c2:26:6c:4c (random) (RSSI -57)
Device found - 5d:29:c2:26:6c:4c (random) - NOT bonded
Scanning Stopped
Scanning Started 20
Device found in close proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -51)
Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped
Scanning Started 21
Device found in close proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -58)
Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped
Scanning Started 22
Device found in close proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -53)
Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped
Scanning Started 23
Device found in close proximity: 6f:d9:fb:62:fc:95 (random) (RSSI -52)
Device found - 6f:d9:fb:62:fc:95 (random) - NOT bonded
Scanning Stopped
Scanning Started 24
Scanning Stopped
Scanning Started 25
Scanning Stopped
Scanning Started 26
Scanning Stopped
Scanning Started 27
Scanning Stopped
Scanning Started 28
Scanning Stopped
Scanning Started 29
Scanning Stopped
Scanning Started 30
Scanning Stopped
Scanning Started 31
Scanning Stopped
Scanning Started 32
Scanning Stopped
Scanning Started 33
Scanning Stopped
Scanning Started 34
Scanning Stopped
Scanning Started 35
Scanning Stopped
Scanning Started 36
Scanning Stopped
Scanning Started 37
Scanning Stopped
Scanning Started 38
Scanning Stopped
Scanning Started 39
Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI -70)
Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped
Scanning Started 40
Scanning Stopped
Scanning Started 41
Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI -70)
Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped
Scanning Started 42
Scanning Stopped
Scanning Started 43
Scanning Stopped
Scanning Started 44
Scanning Stopped
Scanning Started 45
Scanning Stopped
Scanning Started 46
Scanning Stopped
Scanning Started 47
Scanning Stopped
Scanning Started 48
Scanning Stopped
Scanning Started 49
Scanning Stopped
Scanning Started 50
Scanning Stopped
Scanning Started 51
Scanning Stopped
Scanning Started 52
Scanning Stopped
Scanning Started 53
Scanning Stopped
Scanning Started 54
Scanning Stopped
Scanning Started 55
Device found in close proximity: 72:bd:c4:8a:51:23 (random) (RSSI -69)
Device found - 72:bd:c4:8a:51:23 (random) - NOT bonded
Scanning Stopped
Scanning Started 56
Scanning Stopped
Scanning Started 57
Scanning Stopped
Scanning Started 58
Scanning Stopped
Scanning Started 59
Scanning Stopped
Scanning Started 60
Scanning Stopped
Scanning Started 61
Scanning Stopped
Scanning Started 62
Scanning Stopped
Scanning Started 63
Scanning Stopped
Scanning Started 64
Scanning Stopped
Scanning Started 65
Scanning Stopped
Scanning Started 66
Scanning Stopped
Scanning Started 67
Scanning Stopped
Scanning Started 68
Scanning Stopped
Scanning Started 69
Scanning Stopped
Scanning Started 70
Scanning Stopped
Scanning Started 71
Scanning Stopped
Scanning Started 72
Scanning Stopped
Scanning Started 73
Scanning Stopped
Scanning Started 74
Scanning Stopped
Scanning Started 75
Scanning Stopped
Scanning Started 76
Scanning Stopped
Scanning Started 77
Scanning Stopped
Scanning Started 78
Scanning Stopped
Scanning Started 79
Scanning Stopped
Scanning Started 80
Scanning Stopped
Scanning Started 81
Scanning Stopped
Scanning Started 82
Scanning Stopped
Scanning Started 83
Scanning Stopped
Scanning Started 84
Scanning Stopped
Scanning Started 85
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded
Scanning Stopped
Scanning Started 86
Device found in close proximity: 7a:19:47:6d:5e:b8 (random) (RSSI -69)
Device found - 7a:19:47:6d:5e:b8 (random) - NOT bonded
Scanning Stopped
Scanning Started 87
Scanning Stopped
Scanning Started 88
Scanning Stopped
Scanning Started 89
Scanning Stopped
Scanning Started 90
Scanning Stopped
Scanning Started 91
Scanning Stopped
Scanning Started 92
Scanning Stopped
Scanning Started 93
Scanning Stopped
Scanning Started 94
Scanning Stopped
Scanning Started 95
Scanning Stopped
Scanning Started 96
Scanning Stopped
Scanning Started 97
Scanning Stopped
Scanning Started 98
Scanning Stopped
Scanning Started 99
Scanning Stopped
Scanning Started 100
Scanning Stopped
Scanning Started 101
Scanning Stopped
Scanning Started 102
Scanning Stopped
Scanning Started 103
Scanning Stopped
Scanning Started 104
Scanning Stopped
Scanning Started 105
Scanning Stopped
Scanning Started 106
Scanning Stopped
Scanning Started 107
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 108
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 109
Scanning Stopped
Scanning Started 110
Scanning Stopped
Scanning Started 111
Scanning Stopped
Scanning Started 112
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 113
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 114
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 115
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 116
Scanning Stopped
Scanning Started 117
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 118
Scanning Stopped
Scanning Started 119
Scanning Stopped
Scanning Started 120
Scanning Stopped
Scanning Started 121
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning Started 122
Scanning Stopped
Scanning Started 123
Scanning Stopped
Scanning Started 124
Scanning Stopped
Scanning Started 125
Scanning Stopped
Scanning Started 126
Scanning Stopped
Scanning Started 127
Scanning Stopped
Scanning Started 128
Device found in close proximity: 88:6b:0f:07:08:fc (public) (RSSI -70)
Device found - 88:6b:0f:07:08:fc (public) - NOT bonded
Scanning Stopped
Scanning failed to start 129 (err -5)
Scanning Stopped
Scanning failed to start 130 (err -5)
Scanning Stopped
Scanning failed to start 131 (err -5)
Scanning Stopped
Scanning failed to start 132 (err -5)
Scanning Stopped
Scanning failed to start 133 (err -5)
Scanning Stopped
Scanning failed to start 134 (err -5)




Scanning failed to start (err -5)
Scanning failed to start (err -5)
[bt] [ERR] rpa_adv_refresh: assert: 'idx < ((unsigned long) (((int) sizeof(char[1 - 2 * !(!__builtin_types_compatible_p(__typeof__(rl), __typeof__(&(rl)[0])))]) - 1) + (sizeof(rl) / sizeof((rl)[0]))))' failed
***** Kernel OOPS! *****
Current thread ID = 0x20004a10
Faulting instruction address = 0x2a134
Fatal fault in thread 0x20004a10! Aborting.
Scanning failed to start (err -5)
Scanning failed to start (err -5)
S


bt_le_scan_start Fails with Error -5 after 128 scan start/stop cycles

Declan Traill <declan.traill@...>
 

Hi,

 

I have a basic project that scans for 5 seconds, then stops for one second - then repeats forever.

After exactly 128 cycles, the 129th scan start (and all after that) fails with error code -5 (I think this is POSIX: #define EIO 5 /* I/O error */).

 

Given the number of time it works (128) it seems like a resource or memory may have run out?

 

Here is the debug log (attached) showing the problem: Any ideas what might be wrong & how to fix it?

 

Thanks...

 

P.S. Also at the end of this file is a fragment of debug I saw a couple of times earlier today during testing - showing a kernel error that occurred. It may be related or unrelated to the other problem??

 

Regards,

 

Declan Traill
Embedded Firmware Engineer
declan.traill@...

SETEC Pty Ltd
19 Henderson Road, Knoxfield 3180, Victoria, Australia
Phone: +61 3 9763 0962
Fax: +61 3 9763 8789
Direct: +61 3 9213 8458
setec.com.au | teambmpro.com

SETEC on Facebook     SETEC on Instagram     SETEC on LinkedIn     SETEC on YouTube
SETEC Celebrating 50 Years



Email from setec.com.au does not necessarily represent the official policy of SETEC Pty Ltd.
See Email Disclaimer 20060629 for details.



Re: Development cycle of Zephyr 1.13 is coming to an end

Nashif, Anas
 

Hi,

 

We are waiting on 4 PRs to be addressed and merged before we create RC1. So expect and RC1 tomorrow the latest.

 

Anas

 

From: devel@... [mailto:devel@...] On Behalf Of Nashif, Anas
Sent: Tuesday, August 14, 2018 10:28 PM
To: devel@...
Subject: [Zephyr-devel] Development cycle of Zephyr 1.13 is coming to an end

 

Hi,

We are slowly approaching the end of the development cycle for Zephyr 1.13. Based on the current status of things we will be closing the merge window for new features end of this week.

 

Please help with the review process of pending pull requests to accelerate the review and merge process of features and changes that need to go into the next release.

 

Thanks you very much for your contributions.

 

Anas

 


Re: Flash configuration in dts file

David Brown
 

On Fri, Aug 17, 2018 at 02:51:54PM +0000, Laurence Pasteau wrote:

However in the script that generates the generated_dts_board files from dts, it
seems that :

if CONFIG_FLASH_LOAD_OFFSET is set to 0

then

CONFIG_FLASH_LOAD_SIZE is set to 0.
I wonder if you are running into the same bug I've found in the
extraction script, which assumes the partition reg values are absolute
rather than relative. I've included the patch below if you want to
try it, and I'll be pushing it into the Zephyr tree soon.

From 656a2b6a78698c1173d9b5537c25eff8f01e2aba Mon Sep 17 00:00:00 2001
From: David Brown <@d3zd3z>
Date: Tue, 21 Aug 2018 11:40:51 -0600
Subject: [PATCH] scripts: dts: Fix flash load offset

The flash load offset is being computed assuming that the reg property
in the partition table is an absolute address. Since this is a relative
address, this causes the offset to effectively subtract the flash base
twice. Since most flash devices start at zero, this hasn't been noticed
until now.

Change this so that the load-offset is just the offset of the code
partition.

Signed-off-by: David Brown <@d3zd3z>
---
scripts/dts/extract/flash.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/scripts/dts/extract/flash.py b/scripts/dts/extract/flash.py
index fb5d42981..98fb8422d 100644
--- a/scripts/dts/extract/flash.py
+++ b/scripts/dts/extract/flash.py
@@ -95,8 +95,7 @@ class DTFlash(DTDirective):
if node and node is not self._flash_node:
# only compute the load offset if the code partition
# is not the same as the flash base address
- load_offset = str(int(node['props']['reg'][0]) \
- - int(self._flash_node['props']['reg'][0]))
+ load_offset = node['props']['reg'][0]
load_defs['CONFIG_FLASH_LOAD_OFFSET'] = load_offset
load_size = node['props']['reg'][1]
load_defs['CONFIG_FLASH_LOAD_SIZE'] = load_size
--
2.16.4


Re: Segger SystemView sample

Nashif, Anas
 

Hi,

Still need to try this with the K64F, but the tracing system has been overhauled and now you can enable systemview tracing with any application.

 

See http://www.planux.com/index.php/2018/08/21/tracing-zephyr-applications-with-segger-systemview/

 

Anas

 

From: devel@... [mailto:devel@...] On Behalf Of Diego Sueiro
Sent: Sunday, August 12, 2018 2:22 AM
To: zephyr-devel <zephyr-devel@...>
Subject: [Zephyr-devel] Segger SystemView sample

 

Hello,

 

I'm having problems when trying to use the SystemView for both frdm_k64f and colibri_imx7d_m4 boards. I followed these instructions and sometimes the SystemView crashes, or reports it was failed to connect to the target, or that the RTT Control Block Address was not found or it starts recording but no event is detected.

I can see in the zephyr console output it printing the RTT block address and tried to use it when start recording, but no success.

 

Environment:

Host: Ubuntu 16.04.4 LTS

J-Link Commander: V6.32d (frdm_k64f SWD interface with J-Link OpenSDA 2 firmware and colibri_imx7d_m4 JTAG interface with J-Link EDU)

Systemview: V2.52a

 

 

I even opened a thread in the Segger support forum reporting the crash and they said that it is working without any issues on Ubuntu with embOS application on a Cortex-M4 target device.

 

I'm just wondering if this sample app is currently working in the master branch.

 

PS.: I can debug Zephyr apps step-by-step on both boards, and I can see that apparently sysview_thread is sending out data and the SDA_LED in the frdm_64k is blinking.


Cheers,

 

--
*dS
Diego Sueiro

CEO do Embarcados

www.embarcados.com.br


/*long live rock 'n roll*/


Re: help building using the latest zephyr version (nRF52840, pca10056)

Florian Vaussard
 

Hi,

Le 20. 08. 18 à 18:17, Abderrezak Mekkaoui a écrit :
Error: Aborting due to non-whitelisted Kconfig warning '../apps/ble_esp/ble_esp_build/zephyr/.config:149: warning: attempt to assign the value "n" to the undef
ined symbol WAITQ_FAST'.
This looks like the culprit. Looks for the WAITQ_FAST Kconfig
in your prj.conf (or possibly elsewhere if you made changes).
This Kconfig does not exist in v1.11 or v1.12, so I do not
know where it is coming from.

Regards,
Florian


Re: help building using the latest zephyr version (nRF52840, pca10056)

Carles Cufi
 

Hi there,

+Ulf, who should be able to help you with the Kconfig issues.

Regards,

Carles

-----Original Message-----
From: devel@... <devel@...> On
Behalf Of Abderrezak Mekkaoui
Sent: 20 August 2018 18:18
To: devel@...
Subject: [Zephyr-devel] help building using the latest zephyr version
(nRF52840, pca10056)

Hi All,

My app does not build under the new version (1.12.99). I have been
successfully building this app using versions <= 1.12.rc2 The issues
were very likely described and debated by the group, but I would
appreciate a quick pointer (links to documents or posts) to what needs
to be adjusted. I use BLE, NVS, I2C, UART  among other things.
Error messages are pasted below.
Thank you

Abderrezak

========================================================================
===================

[0/1] Re-running CMake...
../zephyr/scripts/check_host_is_ok.py:5: DeprecationWarning: 'U' mode is
deprecated
  f = open('{}/Kconfig'.format(os.environ["ZEPHYR_BASE"]), 'U')
-- Selected BOARD nrf52840_pca10056
Zephyr version: 1.12.99
warning: HAS_DTS_I2C (defined at dts\Kconfig:28) was assigned the value
'y' but got the value 'n'.
This symbol has no prompt, meaning assignments in configuration files
have no effect on it. It can only be set indirectly, via Kconfig
defaults (e.g. in a Kconfig.defconfig file) or through being 'select'ed
or 'imply'd (note: try to avoid Kconfig 'select's except for trivial
promptless "helper"
symbols without dependencies, as it ignores dependencies and forces
symbols on). You can check symbol information (including dependencies)
in the 'menuconfig'
interface (see the Application
Development Primer section of the manual), or in the Kconfig reference
at
http://docs.zephyrproject.org/reference/kconfig/CONFIG_HAS_DTS_I2C.html
(which is updated regularly
from the master branch). See the 'Setting configuration values' section
of the Board Porting Guide as well. It covers Kconfig.defconfig files.
warning: SERIAL_HAS_DRIVER (defined at drivers\serial\Kconfig:18) was
assigned the value 'y' but got the value 'n'.  This symbol has no
prompt, meaning assignments in configuration files have no effect on it.
It can only be set indirectly, via Kconfig defaults (e.g. in a
Kconfig.defconfig file) or through being 'select'ed or 'imply'd (note:
try to avoid Kconfig 'select's except for trivial promptless "helper"
symbols without dependencies, as it ignores dependencies and forces
symbols on).
You can check symbol information (including dependencies) in the
'menuconfig' interface (see the Application Development Primer section
of the manual), or in the Kconfig reference at
http://docs.zephyrproject.org/reference/kconfig/CONFIG_SERIAL_HAS_DRIVER
.html
(which is updated
regularly from the master branch). See the 'Setting configuration
values' section of the Board Porting Guide as well. It covers
Kconfig.defconfig files.
warning: SERIAL_SUPPORT_INTERRUPT (defined at drivers\serial\Kconfig:25)
was assigned the value 'y'
but got the value 'n'.  This symbol has no prompt, meaning assignments
in configuration files have no effect on it. It can only be set
indirectly, via Kconfig defaults (e.g. in a Kconfig.defconfig
file) or through being 'select'ed or 'imply'd (note: try to avoid
Kconfig 'select's except for trivial promptless "helper" symbols without
dependencies, as it ignores dependencies and forces symbols on). You can
check symbol information (including dependencies) in the 'menuconfig'
interface (see the Application Development Primer section of the
manual), or in the Kconfig reference at
http://docs.zephyrproject.org/reference/kconfig/CONFIG_SERIAL_SUPPORT_IN
TERRUPT.html
(which is
updated regularly from the master branch). See the 'Setting
configuration values' section of the Board Porting Guide as well. It
covers Kconfig.defconfig files.
warning: BT_CTLR_EXT_SCAN_FP (defined at
subsys\bluetooth\controller\Kconfig:237) was assigned the value 'y' but
got the value 'n'. You can check symbol information (including
dependencies) in the 'menuconfig' interface (see the Application
Development Primer section of tParsing Kconfig tree in
../apps/ble_esp/ble_esp_src/Kconfig
Using ../apps/ble_esp/ble_esp_build/zephyr/.config as base he manual),
or in the Kconfig reference at
http://docs.zephyrproject.org/reference/kconfig/CONFIG_BT_CTLR_EXT_SCAN_
FP.html
(which is updated regularly from the master branch). See the 'Setting
configuration values' section of the Board Porting Guide as well.
../apps/ble_esp/ble_esp_build/zephyr/.config:149: warning: attempt to
assign the value "n" to the undefined symbol WAITQ_FAST
../apps/ble_esp/ble_esp_build/zephyr/.config:268: warning: attempt to
assign the value "y" to the undefined symbol UART_NRF5
../apps/ble_esp/ble_esp_build/zephyr/.config:269: warning: attempt to
assign the value "16000000" to the undefined symbol UART_NRF5_CLK_FREQ
../apps/ble_esp/ble_esp_build/zephyr/.config:270: warning: attempt to
assign the value "n" to the undefined symbol UART_NRF5_FLOW_CONTROL
../apps/ble_esp/ble_esp_build/zephyr/.config:271: warning: attempt to
assign the value "6" to the undefined symbol UART_NRF5_GPIO_TX_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:272: warning: attempt to
assign the value "8" to the undefined symbol UART_NRF5_GPIO_RX_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:273: warning: attempt to
assign the value "5" to the undefined symbol UART_NRF5_GPIO_RTS_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:274: warning: attempt to
assign the value "7" to the undefined symbol UART_NRF5_GPIO_CTS_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:306: warning: attempt to
assign the value "y" to the undefined symbol GPIO_NRF5
../apps/ble_esp/ble_esp_build/zephyr/.config:307: warning: attempt to
assign the value "40" to the undefined symbol GPIO_NRF5_INIT_PRIORITY
../apps/ble_esp/ble_esp_build/zephyr/.config:308: warning: attempt to
assign the value "y" to the undefined symbol GPIO_NRF5_P0
../apps/ble_esp/ble_esp_build/zephyr/.config:309: warning: attempt to
assign the value ""GPIO_0"" to the undefined symbol
GPIO_NRF5_P0_DEV_NAME
../apps/ble_esp/ble_esp_build/zephyr/.config:310: warning: attempt to
assign the value "n" to the undefined symbol GPIO_NRF5_P1
../apps/ble_esp/ble_esp_build/zephyr/.config:311: warning: attempt to
assign the value "5" to the undefined symbol GPIOTE_NRF5_PRI
../apps/ble_esp/ble_esp_build/zephyr/.config:329: warning: attempt to
assign the value "y" to the undefined symbol I2C_NRF5
../apps/ble_esp/ble_esp_build/zephyr/.config:330: warning: attempt to
assign the value "38" to the undefined symbol I2C_NRF5_0_GPIO_SDA_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:331: warning: attempt to
assign the value "36" to the undefined symbol I2C_NRF5_0_GPIO_SCL_PIN
../apps/ble_esp/ble_esp_build/zephyr/.config:612: warning: attempt to
assign the value "n" to the undefined symbol CONSOLE_PULL
../apps/ble_esp/ble_esp_build/zephyr/.config:675: warning: attempt to
assign the value """" to the undefined symbol
NET_APP_IEEE802154_DEV_NAME
Error: Aborting due to non-whitelisted Kconfig warning
'../apps/ble_esp/ble_esp_build/zephyr/.config:149: warning: attempt to
assign the value "n" to the undef ined symbol WAITQ_FAST'.
Note: If this warning doesn't point to an actual problem, you can add it
to the whitelist at the top of ../zephyr/scripts/kconfig/kconfig.py.
CMake Error at ../zephyr/cmake/kconfig.cmake:149 (message):
  command failed with return code: 1
Call Stack (most recent call first):
  ../zephyr/cmake/app/boilerplate.cmake:251 (include)
  CMakeLists.txt:3 (include)


-- Configuring incomplete, errors occurred!
See also "../apps/ble_esp/ble_esp_build/CMakeFiles/CMakeOutput.log".
See also "../apps/ble_esp/ble_esp_build/CMakeFiles/CMakeError.log".
FAILED: build.ninja
"C:\Program Files\CMake\bin\cmake.exe" -H..\apps\ble_esp\ble_esp_src -
B..\apps\ble_esp\ble_esp _build
ninja: error: rebuilding 'build.ninja': subcommand failed




Re: Zephyr development news, 20 August 2018

Marti Bolivar <marti@...>
 

Sure thing! Sorry for the long delay since the last one. Summertime...

On Mon, Aug 20, 2018 at 1:37 PM Thea Aldrich <aldrich.thea@...> wrote:

Thank you Marti!

On Mon, Aug 20, 2018 at 1:33 PM, Marti Bolivar <marti@...> wrote:

Hello,

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


An HTML version is available here:
https://foundries.io/insights/2018/08/20/zephyr-news-20180820/


As usual, contents are broken down as follows:

- Highlights
- Important changes
- New features
- Bug fixes
- Individual changes: a complete list of patches, sorted chronologically
and categorized into areas, like:
- Architectures
- Kernel
- Drivers
- etc.


Highlights
==========

Breakage ahoy: The time since the last newsletter has seen a variety of
incompatible or breaking changes merged into mainline. As
usual, we've summarized these in the Important Changes
section below, along with descriptions of what developers of
affected applications should do to handle them. (A couple of
new features were included there as well.)

This newsletter covers commits in the following inclusive range:

- bb8cb5ac ("tests: pipe: Add description and RTM links"),
merged 26 July 2018
- 36ef1921 ("samples: led_lp5562: cmake_minimum_required added"),
merged 16 August 2018

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

Various net app settings renamed:

Various Kconfig variables that were formerly in the CONFIG_NET_APP_
namespace were moved into CONFIG_NET_CONFIG_. For example,
CONFIG_NET_APP_SETTINGS is now CONFIG_NET_CONFIG_SETTINGS.

The affected variables are (without the CONFIG_NET_APP_ prefix, for
brevity):

- SETTINGS, AUTO_INIT, INIT_TIMEOUT
- NEED_IPV4, MY_IPV4_ADDR, PEER_IPV4_ADDR
- NEED_IPV6, NEED_IPV6_ROUTER, MY_IPV6_ADDR, PEER_IPV6_ADDR
- IEEE802154_DEV_NAME, IEEE802154_PAN_ID, IEEE802154_CHANNEL,
IEEE802154_RADIO_TX_POWER, IEEE802154_SECURITY_KEY,
IEEE802154_SECURITY_KEY_MODE, IEEE802154_SECURITY_LEVEL

Out of tree applications will need to perform the appropriate renames. The
default settings of the Kconfig library will cause fatal errors on attempts
to assign to the old names in .conf fragments, which should help find any
uses.

This completes the work of splitting network configuration from the net-app
library, which is in the process of being replaced and deprecated, into a
new net-config library.

Network interfaces now require flags:

Layer 2 objects must now declare supported features via a new flags
field. Initial flags declare support for multicast and promiscuous mode,
and whether or not to join a solicited node multicast group. Existing
in-tree users have been updated; out of tree implementations will need to
take care of build errors in the changed NET_L2_INIT.

Kconfig now prefers first default:

The Kconfig library used by Zephyr no longer carries a local patch to make
it prefer later default settings in Kconfig option definitions. The
application boilerplate.cmake file thankfully emits a loud warning about
this, which can be silenced by creating a file named "hide-defaults-note"
in the Zephyr build directory.

This change is likely to bite any out of tree applications which define
their own default settings for Zephyr's Kconfig options and expect them to
override Zephyr's.

Affected applications should change from this pattern in their
application's KCONFIG_ROOT:

# OLD STYLE, for older Zephyr versions:

source "$ZEPHYR_BASE/Kconfig.zephyr"

config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
default your_value

to this:

# NEW STYLE, use this from now on:

config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
default your_value

source "$ZEPHYR_BASE/Kconfig.zephyr"

Kconfig: gsource is gone, use source, osource, or orsource:

The Zephyr dialect of the Kconfig language previously featured a gsource
extension, which, like source, worked to include a Kconfig file within
another one, but also supported shell-like glob patterns. However, gsource
did not check if any files matched the pattern. This has been replaced with
a scheme in which source is globbing, and requires at least one file to
match. A new osource (optional source) works the way gsource used to, and
orsource is an optional source included by relative path (rsource, to
include nother source by relative path, already existed).

NVS rewritten:

The NVS storage layer has been completely rewritten, and has what appears
to be a backwards-incompatible format on the storage medium. Any
applications using this layer will likely need to have their storage
partitions set up anew.

In the new version, the storage medium can become "locked" in case of fatal
errors. When this occurs, writes are prevented, but the user can read
existing data which has been stored without error before re-initializing
the flash device.

In the previous version, metadata and user data were placed together on the
storage medium. This has been replaced with a new layout, which separates
data from metadata. The data layout has also been changed in ways which
reduces overhead on some flash devices, and allows for the latest items to
be searched first on reads, improving performance in some workloads.

Bluetooth ID changes:

Bluetooth LE peripherals built with Zephyr can now support multiple
identity addresses.

This new feature seems to have brought incompatible API changes, as various
functions now take u8_t id parameters which index into the array of IDs
returned by bt_id_get(). If broken by this change and in doubt about what
to do, BT_ID_DEFAULT (0) is provided as a recommended value.

The number of supported identities can be controlled with
CONFIG_BT_ID_MAX, and several routines (with documentation!) were
added to manage them:

- int bt_id_create(bt_addr_le_t *addr, u8_t *irk)
- int bt_id_get(bt_addr_le_t *addrs, size_t *count)
- int bt_id_reset(u8_t id, bt_addr_le_t *addr, u8_t *irk)
- int bt_id_delete(u8_t id)

There are new Bluetooth shell commands related to these as well:
id-create, id-delete, id-reset, id-show, and id-select.

The Bluetooth Settings API takes multiple identities into account.

Bluetooth dynamic device name changes:

Dynamic setting of the Bluetooth device name is now disabled unless
CONFIG_BT_DEVICE_NAME_DYNAMIC=y.

Build system use of target_link_libraries changed:

The build system's internals now use the CMake target_link_libraries()
signature which includes PRIVATE/PUBLIC/INTERFACE keywords.

This is incompatible with the "plain" signature, which does not use
these keywords.

This change was made for good reasons, but has the rather unpleasant side
effect of breaking the build in cases where the application CMakeLists.txt
used the "plain" signature, as Zephyr's build system internals tend to get
included into the top level file. Affected application developers are
advised that adding PUBLIC after the target name restores the same
behavior as the "plain" signature.

Arm toolchain renamed:

The Zephyr environment and CMake variables used to select the GNU toolchain
provided by Arm have changed; the old usage is now deprecated. Users of
this toolchain should make the following changes:

- Change the value of ZEPHYR_TOOLCHAIN_VARIANT from gccarmemb to
gnuarmemb
- The GCCARMEMB_TOOLCHAIN_PATH variable is now GNUARMEMB_TOOLCHAIN_PATH

This follows the replacement of the GCC ARM Embedded toolchain page with
the GNU Arm Embedded version:

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm

PyOCD on Python 3, now with Zephyr thread awareness:

Thankfully, this is not a breaking change, but it is welcome news.

The PyOCD project, used for flashing and debugging several Zephyr boards,
now supports Python 3. It's now possible to remove any Python 2 PyOCD
install and re-install it with pip3 install --user pyOCD (perhaps after
updating applications and toolchain configurations to handle the changes
discussed above.)

To add a carrot of incentive to upgrade, PyOCD has also now learned
Zephyr thread awareness. To play along at home:

1. Add CONFIG_OPENOCD_SUPPORT=y to samples/synchronization/prj.conf
2. Build the sample for any board which uses PyOCD (like frdm_k64f)
3. ninja debug
4. Type continue at the (gdb) prompt
5. Hit control-C to halt execution
6. Run info threads at the (gdb) prompt.

Example output:

(gdb) info threads
Id Target Id Frame
* 2 Thread 536874280 (Unnamed; Running; Priority 15) k_cpu_idle ()
at /home/mbolivar/src/zephyr/arch/arm/core/cpu_idle.S:135
3 Thread 536870912 (Unnamed; Ready; Priority 7) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
4 Thread 536874544 (Unnamed; Pending; Priority 7) __swap (key=0)
at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
5 Thread 536875032 (Unnamed; Pending; Priority 255) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69

Socket-based DTLS support:

The new sockets layer now has experimental support for the DTLS
protocol. It can be enabled with CONFIG_NET_SOCKETS_ENABLE_DTLS. Support
for creation of DTLS sockets, DTLS handshaking, send()/sendto(), and
recv()/recvfrom() is included. Demonstration code illustrating usage
was added to the echo_client and echo_server pair of samples.

This continues the work of remaking Zephyr's secure networking code as
a socket-based implementation, with TLS managed via a set of
nonstandard setsockopt() calls.

Syscall support for sockets:

The following socket-related APIs are now accessible from Zephyr user
space, if that is enabled: socket(), close(), bind(),
connect(), listen(), accept(), send()/sendto(),
recv()/recvfrom(), fcntl(), poll(), inet_pton(), and
getaddrinfo().

CMSIS RTOS v1 support:

Zephyr now supports version 1 of the CMSIS RTOS API. This is a common API
defined by Arm for Cortex microcontrollers, which provides abstractions for
common RTOS interfaces, such as multi-threading, mutual exclusion, CPU
time, memory pools, etc. At time of writing, official documentation on
usage within Zephyr mostly refers users to the KEIL CMSIS-RTOS
v1 reference page:

http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html

Support for this API can be included within a Zephyr application by
enabling CONFIG_CMSIS_RTOS_V1. The main header is <cmsis_os.h>, which is
a shim between the abstractions presented by the CMSIS RTOS API and
Zephyr's own kernel APIs. There is also a new lib/cmsis_rtos_v1
directory, which contains the implementation. A variety of test cases were
added to tests/cmsis_rtos_v1.

Features
--------

Arches:

The effort to support Arm v8-M's secure and non-secure worlds
continues with the building blocks necessary to transfer control flow
between the "secure" and "insecure" worlds. Zephyr has gained support
for building secure world images which export entry points as a
library that non-secure images can be linked against to call into, as
well as invocation of function pointers to non-trusted code from the
secure world. Support for this feature can be enabled with
CONFIG_ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS. A variety of other
related changes allow for controlling secure and non-secure world
exceptions, system reset behavior, and stack management.

The native POSIX pseudo-architecture now supports a mechanism for
executing code at various points in its initialization, power
management sequence, and shutdown. It can also dynamically manage
command line options with native_add_command_line_opts() and
native_cleanup_cmd_line(). See the NATIVE_TASK() macro defined in
its soc.h header for details. There appears to be some overlap here
with Zephyr's existing <init.h> APIs, but those do not allow for
task execution at sleep or exit times.

The x86, Arm, and ARC architectures grew the architecture-specific
code needed to implement safe copying to and from userspace discussed
in the kernel features below.

Bluetooth:

Various other features were merged in addition to the somewhat
breaking identity management changes discussed above.

Many (but definitely not all) of the changes merged during this period
improve Zephyr's feature set related to secure pairing.

New APIs include:

- An int bt_passkey_set(unsigned int passkey) routine, which can set
a passkey to be used during pairing, and can be enabled with
CONFIG_BT_FIXED_PASSKEY.

- The bt_conn_auth_cb struct, which contains application callbacks for
events of interest during authenticated pairing, now has documentation
for all of its fields. It also gained new callbacks for learning the
results of the pairing process, with signatures:

{{< highlight c >}}
void (*pairing_complete)(struct bt_conn *conn, bool bonded);
void (*pairing_failed)(struct bt_conn *conn);{{< /highlight >}}

The Bluetooth shell sports some new commands, mainly to exercise the
above new features:

- hci-cmd: this Swiss Army knife can be used to inject arbitrary HCI
commands into the system
- fixed-passkey: sets a fixed passkey to be used during pairing
using bt_passkey_set()
- the auth command now takes confirm as an authentication method,
which can be used to test passkey support

When Zephyr's Bluetooth stack is being built in a "combined" configuration
(i.e. host and controller on the same chip), the default for
CONFIG_BT_TINYCRYPT_ECC is now y. This implements elliptic curve
cryptography related HCI commands required to support LE Secure Connections
in software, using the TinyCrypt library. (This of course implies a
footprint penalty.)

Finally, access address generation now supports Coded PHY requirements.

Boards:

New board-specific peripheral and shield enablement includes:

- frdm_k64f now supports uart2, and has device tree settings for
the Wistron WNC-M14A2A LTE-M modem, which can be connected as a shield
- frdm_kl25z now supports the the MMA8451Q accelerometer attached to i2c0
- nrf52840_pca10056 also now supports the WNC-M14A2A
- nucleo_f207zg now supports USB and Ethernet
- up_squared now has I2C support (the Zephyr board configuration also
now works on all the marketed variants of the board hardware)

Build:

The Kconfig dialect also now features def_int, def_hex, and
def_string keywords, which specify the type of a config option and
set its default value in a single line.

The Zephyr SDK has been packaged for Arch Linux, and is available as
zephyr-sdk in the AUR:

https://aur.archlinux.org/packages/zephyr-sdk

Device Tree:

The RISC-V boards were all converted to use device tree.

Cortex M4 cores on i.MX devices which have a Cortex A core on the same
die now have device tree bindings and support for the Resource Domain
Controller (RDC), which allows safe sharing of other peripherals
between the cores. A variety of i.MX peripheral bindings now contain a
required rdc property, through which the relevant permissions can be
configured.

Documentation:

Zephyr's documentation was re-themed to use the popular Read the Docs
Sphinx theme. Zephyr's documentation continues to be hosted at
docs.zephyrproject.org; just the theme was changed.

Drivers:

About 30% of the total driver commits in this period affected a single
driver, for the Atmel SAM GMAC Ethernet peripheral. This now supports
the gPTP protocol which Zephyr learned about during the v1.13 cycle,
multiple transmit and receive queues, and 802.1Qav support. Whew.

Zephyr received initial support for modem drivers, which can be enabled by
setting CONFIG_MODEM=y. Modem-specific shell commands can be enabled with
CONFIG_MODEM_SHELL. There is a new "modem receiver" API and driver which
can be enabled using CONFIG_MODEM_RECEIVER; its purpose is to allow modem
drivers to communicate via a UART using custom protocols. The initial
device is the Wistron WNC-M14A2A (LTE / LTE-M) modem.

The UART driver core now supports registering user-specified callbacks with
arbitrary callback data via uart_irq_callback_user_data_set. This is a
backwards-compatible change; existing callbacks registered with
uart_irq_callback_set() will continue to work in the same way.

Support was added for the MMA8451Q accelerometer.

The I2S API is now userspace-aware. All memory buffers are copied.

The I2C driver core now supports up to 8 controllers. The initial user
is the DesignWare I2C driver.

On x86, the Apollo Lake SoCs now have PCI-based UART and I2C device
support.

STM32F2 devices now support Ethernet and USB OTG FS.

There is a new LED driver for the TI LP5562 device.

The SLIP and POSIX ethernet networking drivers now have LLDP support,
following addition of that protocol to Zephyr.

The POSIX ethernet driver can now execute user-defined scripts at
various points in time.

The console driver is starting to be refactored to more closely
resemble a UNIX-like TTY layer. Somewhat ominously, its APIs have been
marked "experimental" in Kconfig.

Nordic devices have an optimized implementation for the clock control
driver which provides k_cycle_get_32(). (This is important for users
of the new Logger subsystem on those devices, as Logger relies on this
routine being fast to retrieve timestamps with minimum overhead. This
propagated into the real time clock driver.)

External:

The Kconfiglib library was updated to revision 6aea8d0, bringing in
the changes discussed above.

TinyCrypt was updated to revision 3ea1a60.

Kernel:

Zephyr's userspace implementation now has all the necessary routines
for copying buffers to and from userspace in the kernel. Curious
readers are referred to the API documentation in
kernel/include/syscall_handler.h for details.

There is a new _k_object_recycle() routine, which can be used to
re-initialize a kernel object with permissions that only allow access
by the caller. This is intended for scenarios in which objects are
allocated and released to a shared pool.

The userspace implementation is now aware of net_context
structures. This was necessary to implement the argument validation
steps of system calls which operate on them.

Logging:

Since its initial merge, the Logger hexdump macros (LOG_HEXDUMP_INF()
and friends) now take an additional parameter. Their revised "signature"
is now:

{{< highlight c >}}
/* Likewise for DBG, WRN, and ERR. */
void LOG_HEXDUMP_INF(void *data, size_t size, const char *metadata);
{{< /highlight >}}

The final "metadata" parameter is new; any out of tree applications
using the API will need changes. The expected value is a string
literal which can be used to describe the data being
printed. Presumably, this makes it easier to distinguish the origin of
multiple different types of hexdump coming from the same module.

Networking:

Additional features not discussed above follow.

Experimental support for auto-configuration of link-local IPv4 addresses
was added, per RFC 3927. It can be enabled with CONFIG_NET_IPV4_AUTO (and
extra debugging can be enabled with NET_DEBUG_IPV4_AUTOCONF). A sample
application is in samples/net/ipv4_autoconf.

Support for the Link Layer Discovery Protocol (LLDP) was added, per
802.1AB. It can be enabled using CONFIG_NET_LLDP. Only support for
transmission of LLDP frames is included; received LLDP frames are
dropped. Sample code is in samples/net/lldp.

The network management layer for Ethernet gained support for
device-specific enable and disable routines in struct
ethernet_api. Ethernet also gained support for 802.1Qav (priority
routing for audio-video streams) requests; when Ethernet management is
enabled, the iface network shell command now prints Qav status.

The existing traffic class support saw the addition of a new choice
for the mapping between priority and traffic class. See this choice
option for details:

http://docs.zephyrproject.org/reference/kconfig/choice_174.html

The net_pkt structure used to store network packets has had routines
for linearizing data into a contiguous array, as well as appending
bytes. However, the underlying net_buf struct, which actually
implements the buffer management, was lacking in this regard. As part
of the modem support work, the relevant routines were moved into the
net_buf layer, with net_pkt wrappers left behind to avoid API
breakage.

The networking shell iface command now prints the supported hardware
capabilities for Ethernet interfaces.

Ethernet devices saw continued feature additions. They can now report
hardware-specific configuration. The initial user is a getter for the
number of priority queues. Support for MAC-based incoming packet
filters was also added.

If the (new) CONFIG_NET_STATISTICS_ETHERNET_VENDOR Kconfig option is
enabled, the stats command can now include vendor-specific statistics in
its output.

The DHCPv4 implementation got some love, reducing footprint through
increasing code reuse and cleaning up the code.

A variety of other structure sizes were also optimized.

Samples:

New sample support includes samples/sensor/mma8451q for MMA8451Q
accelerometers, WNC-M14A2A LTE-M modem support in lwm2m_client, a
variety of new features in the Bluetooth Mesh samples, and LP5562 LED
support in samples/drivers/led_lp5562.

Scripts:

The West implementation for flashing with nrfjprog can now
configurably mass erase or sector erase the underlying flash device.

The menuconfig script displays symbols in a more compact format, among
other improvements.

Testing:

As has become usual, a great number of tests have increased Doxygen
grouping and requirements traceability matrix annotations.

A variety of other test cases were added to cover several of the new
features discussed above.

Bug Fixes
---------

Arches:

A bug in the ARC MPU driver stack guard implementation was fixed.

The POSIX pseudo-architecture saw fixes related to, and stopped
silencing, the undef and implicit-function-declaration GCC
warnings.

Bluetooth:

A variety of fixes were merged, including a Mesh SeqAuth calculation
fix, increased robustness during pairing, the set PHY command status
response, the existence of keying material before doing encryption,
and storage of the Bluetooth device name in via the settings
subsystem.

Build:

A bug causing corrupt data copying into RAM during RISC-V
initialization was fixed.

The build system generator's Kconfig logic would previously get
confused if kconfig.py failed after creating the .config file. Since
has become more common since the addition of several helpful errors
which are emitted in response to malformed Kconfig fragments, the
confusion has been resolved.

The continued removal of redundant default n introduced into
Zephyr's Kconfig continues.

Various Kconfig patterns for describing the type (int, bool, etc.)
and prompt ("help string for the option") were merged into a single
line: <type> "prompt". This improves concision and avoids potential
confusion about (nonexistent) differences between the other styles.

Documentation:

A variety of errors and misspellings were corrected. The installation
documentation on Linux was cleaned up for readability.

Drivers:

The POSIX Ethernet driver got a fix for an unlikely memory leak.

The nRFx clock control driver saw some fixes related to clock status
checking.

The nRF5 entropy driver got a fix for an infinite loop.

The FXOS8700 and FXAS21002 sensor drivers (these peripherals are
available on some NXP FRDM boards) got fixes for initialization race
conditions.

Various issues in the CAN driver were fixed.

External:

The STM32F2 USB OTG HAL received a local patch to fix VBUS sensing
deactivation.

The STM32 HAL CAN APIs were switched to the legacy versions, restoring
Zephyr CAN functionality.

Kernel:

A kernel bug which allowed dynamically allocated thread objects to
potentially masquerade as other threads has been fixed.

A schedule bug affecting time slice update has been fixed. As part of
this effort, all scheduler time slices are now measured in ticks
rather than milliseconds.

The kernel's support for shared memory between threads was fixed;
users affected by the previous incorrect implementation include
systems using an ARM MPU.

Libraries:

The calloc() implementation in Zephyr's libc was failing to live up
to its contract to return zeroed memory; this has been fixed.

Logging:

A few fixes were merged, affecting modules which span multiple files,
runtime filtering, and compilation on non-GCC toolchains.

Networking:

VLAN tags are now properly set for ARP messages.

TCP servers now have their disconnection callbacks invoked correctly.

A couple of memory leaks were fixed, along with a TCP RST edge case.

The MQTT parser now properly handles UNSUBACK packets.

A couple of OpenThread addressing issues were resolved: duplicate
multicast addresses are no longer registered with their network
interfaces, and unicast addresses are now also registered with their
Zephyr network interfaces. The latter fix resolves an issue preventing
use of mesh-local endpoint identifiers.

Scripts:

The device tree management scripts were fixed to avoid destroying
shared data due to a shallow copy of a data structure.

Zephyr's Kconfig generation script no longer ignores warnings
generated during symbol evaluation.

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

Patches by area (417 patches total):

- Arches: 39
- Bluetooth: 39
- Boards: 11
- Build: 22
- Continuous Integration: 3
- Device Tree: 2
- Documentation: 25
- Drivers: 56
- External: 8
- Kernel: 15
- Libraries: 13
- Logging: 7
- Maintainers: 1
- Miscellaneous: 2
- Networking: 80
- Samples: 23
- Scripts: 7
- Storage: 2
- Testing: 62

Arches (39):

- 88f4b681 arch/x86: apollo_lake: add MMU regions for I2C controllers
- b3e68703 arch/x86: apollo_lake: add PCI related bits for UARTs/I2Cs
- 0b899205 arch/x86: update linker definition for x86 real mode
- 550225b6 native: Generalize native tasks
- f742d0e2 native: Allow cmd line options to be registered dynamically
- 55f6620c native_posix: Refactor cmd line options
- 3369a5ed arch: introduce exc_handle.h
- 9d3cdb35 x86: add z_arch_user_string_nlen
- 3cef6deb arm: add z_arch_user_string_nlen
- b1dec299 arc: add z_arch_user_string_nlen
- 9426a3cb arch: x86: set output format/arch per arch
- 61570342 arch/x86: always make BSS section MMU page align if X86_MMU
- a76fa45e native_posix: minor doc fixes
- c0ea40cd posix arch: Add missing header
- 00b07615 native_posix: Add missing headers and function prototypes
- 4388cde9 arch posix: Allow including XOPEN extensions
- 11aa0b80 posix arch: Do not disable warnings
- eab3f3f2 arm: _FaultShow: fix typo MMFSR -> UFSR
- 37cc2ccc arch: arc: fix a bug in mpu driver
- 9283ee7a arch: i.MX add RDC peripheral permission setting for
applications cores
- b996955e arch: arm: optimize _size_to_mpu_rasr_size function
- 034499af arch: arm: configure non-secure registers from secure firmware
- de784300 arch: arm: internal API to enable/disable SAU
- 97d5f60a arch: arm: configure NS stack pointer limit registers
- 28acaead arch: arm: add macro definition for vector key write permit value
- 179b8d15 arch: arm: API to configure fault target state
- 5bb3d015 arch: arm: API to configure Secure exception boost
- ba02c6d9 arch: arm: api for reading MCU SAU regions
- f8b5046b arch: arm: include GCC -mcmse compile option for secure firmware
- a0508180 arch: arm: API macros for CMSE non-secure function pointers
- d9cfbc28 arch: arm: macro API for defining non-secure entry functions
- 6e93eea3 arch: arm: api to permit/block NS system reset requests
- 3b79b283 arch: arm: API & implementation of SAU region configuration
- db3f6aab arch: arm: add option to define an NSC region
- f2bdee35 arch: arm: export entry veneers
- c4703661 arch: arm: soc: add STM32L433
- bb0b66e1 arch: arm: clean-up "default n" entries in Kconfig option definitions
- 970cfdb8 arch: riscv32: Move MEPC increment in irq_wrapper
- 218d7a0a riscv: Rename the FE310 SoC to Sifive Freedom

Bluetooth (39):

- 9b6ad406 bluetooth: add callback to notify pairing is complete
- e2e02029 Bluetooth: SMP: Fix minor coding style issues
- 8780636f Bluetooth: shell: Add hci-cmd command
- 4d10b04a Bluetooth: SMP: Fix missing NULL-checks for bt_auth
- 4fe8eddd Bluetooth: SMP: Don't return STK if it hasn't been generated yet
- db0e4d52 Bluetooth: Kconfig: Enable TINYCRYPT_ECC for combined builds
- 642db775 bluetooth: kconfig: Fix swapped 'range's on BT_RFCOMM_L2CAP_MTU
- 4752788c Bluetooth: Fix documentation and other issues with auth callbacks
- da8f62de Bluetooth: SMP: Remove redundant check for smp pointer
- ef70fc85 Bluetooth: SMP: Fix SMP context init when sending security request
- c446c826 Bluetooth: Add support for fixed passkeys
- b049ac12 Bluetooth: shell: Add command for setting fixed passkey
- e504aad2 Bluetooth: shell: Add pairing failed/complete callbacks
- 0ab27e68 Bluetooth: shell: Add support for pairing confirm-only callbacks
- 97da52bb Bluetooth: controller: Update AA generation for Coded PHY support
- 76320d21 Bluetooth: controller: Fix HCI LE Set PHY command status response
- 3ebb81ba Bluetooth: controller: Wait for stable k32src for connected roles
- 28d5a65a Bluetooth: SMP: Don't try to encrypt with a non-existing LTK
- 6ee8e419 Bluetooth: Mesh: Clarify confusing log message
- 304f26c3 Bluetooth: Userchan: Add missing headers
- 1329763a Bluetooth: Fix storing name in plain text
- 504584a9 Bluetooth: att: Add option to disable GATT writable name
- e0864a93 Bluetooth: controller: HAL: Separate simulated SOC in own header
- 3712fd34 Bluetooth: controller: remove unnecessary guards in hal headers
- 6b8af4f0 Bluetooth: Minor whitespace fixes
- 5708f1e8 Bluetooth: Add infrastructure to handle multiple identities
- 1d8dab81 Bluetooth: Add initial APIs for identity manipulation
- 3ed01b48 Bluetooth: Remove redundant BT_DEV_ID_STATIC_RANDOM flag
- e70c556d Bluetooth: Add full storage support for multiple identities
- cbb1b84f Bluetooth: Pass identity to connection and pairing clearing functions
- 93360497 Bluetooth: Remove bogus bt_keys_func_t typedef
- 3d3888c0 Bluetooth: Remove return parameter from bt_id_add/del
- 7dba2512 Bluetooth: Introduce bt_id_reset() API
- 7ec40e81 Bluetooth: shell: Add multiple identity support
- 47291330 Bluetooth: Add safe-guards for creating duplicate identities
- 346f815d Bluetooth: Introduce bt_id_delete() API
- 61ec5125 Bluetooth: shell: Add id-delete command
- 734eda39 bluetooth: tester: Increase SDU size to meet PTS requirement
- e4908119 Bluetooth: Mesh: Transport: Fix calculating SeqAuth

Boards (11):

- bcc95235 boards/x86: up_squared: add I2C configurations
- 7b0c7aab boards/x86: up_squared: support new devices and Atom SoC
- ee7f834e boards: frdm_kl25z: Add mma8451q to i2c in dts
- b9bbebca boards: 96b_argonkey, fix lsm6dsl label name
- d917f239 boards: arm: k64f: add settings for UART_2
- 01745c38 boards: arm: frdm_k64f: add settings to use WNC-M14A2A LTE-M modem
- 65af15bc boards: arm: nrf52840_pca10056: add settings for WNC-M14A2A modem
- 5fda25af Revert "mimxrt1050_evk: disable sanitycheck on this board
[REVERT ME]"
- 7433f75e mimxrt1050_evk: Update jlink device name
- 45d5d5db boards: riscv: Convert HiFive1 to DTS
- 107efdf2 boards: nucleo_f207zg: enable usb

Build (22):

- 15516ed0 linker: riscv: Relocate .eh_frame symbol
- 99306334 kconfig: remove whitelisting for ARC_INIT
- c1bf7350 cmake: Improve the error message when the compiler is not executable
- d1684a83 Kconfig: Clean up some symbol definitions
- 5402662d cmake: kconfig: Fix rerunning cmake after Kconfig warnings
- a500e7e0 cmake: kconfig: Fix broken menuconfig due to misspelling
- d46e2c7e ld: Don't use --start-group and --end-group
- 957262e3 build: Replace GCC ARM Embedded with GNU Arm Embedded
- b9e8cd11 cmake: Refactor usage of target_link_libraries on Zephyr libraries
- ec3eff57 Kconfig: Use the first default with a satisfied condition
- 3ed9328d Kconfig: Get rid of some leftover 'option env's
- a8aba2f8 Kconfig: Include Kconfig.zephyr last in sample Kconfig files
- d08a212e Kconfig: Document the new prefer-earlier-defaults behavior
- 9c93e8e8 Kconfig: Have CMake print a note about the changed 'default' behavior
- 83d2a47d cmake: Don't propagate zephyr_library_compile_options
- bf8efdbf genrest: Generate RST links in a less hacky way
- 55ee53ce cmake: Prepend 'cmake_minimum_required()' into 'app' build scripts
- 6682652a cmake: change policy CMP0000 to NEW
- 17f1b0ad Kconfig: Switch to improved globbing statements
- 0af60bc2 Kconfig: Document new def_{int,hex,string} extensions
- 8cf8db3a Kconfig: Use a short, consistent style for prompts
- 1186f5bb cmake: Deprecate the 2 symbols _SYSCALL_{LIMIT,BAD}

Continuous Integration (3):

- 632597eb coverage: kernel: poll: Cleanup redundant code to improve coverage
- a51fb782 coverage: tests: poll: Add missing poll event to improve
code coverage
- f3a6e8aa sanitycheck: Recommend installing "ply" instead of "python3-ply"

Device Tree (2):

- 4016136b dts: bindings: add generic yaml description for uart-devices
- 0b60f383 dts: Fix get_compat when parent compat is a list

Documentation (25):

- 4cac31b2 doc: fix doxygen error for BUILD_ASSERT_MSG
- d47bd0b5 doc: prepare for read_the_docs theme change
- d7d10904 doc: scripts: Updates for pyocd v0.11.1
- f6349c88 doc: simplify CONTRIBUTING, merge non-apache
- f3f266ea doc: more RTD theme tweaks
- 368826e9 doc: getting started: add Arch Linux package
- 7555476b doc: Replace title with logo in front page
- ac7753ee doc: Add getting started to README.rst
- cb243eae doc: Correct arch spellings in README.rst
- cd170531 Doc: installation_linux.rst: Feedback Updates
- 2cf47fed doc: tweak table CSS for caption location
- a0dbc7aa doc: Copy all doc/ contents and not just .rst files
- a33b15d2 doc: Remove workaround file
- d6c56d57 doc: Remove unnecessary copy statements
- 9a3d7a43 doc: fix misspellings in API docs
- 7c89b63b doc: fix kconfig misspellings
- 6750b8d2 doc: fix misspellings in docs
- 17d04524 doc: tweak doc build instructions
- 0c5a88a6 doc: Update OpenSDA document for flashing with jlink
- 5c8398da doc: switch to use RTD theme
- 2300a592 doc: fix errors in ipv4_autoconf sample doc
- d04eaf3b doc: Fix warning associated with GNU ARM embedded rename
- 3ffac998 doc: fix wrong board name in Nordic doc
- 3747b5ba doc: Document new app boilerplate requirement
- 896a6966 doc: Make Sphinx output directory configurable

Drivers (56):

- e482feac drivers: watchdog: Align nrf wdt driver to new nrfx
- 14112768 drivers: watchdog: Fix assert errors in nrf watchdog implementation
- 525b0ce8 drivers: eth: gmac: Restore original frags data after transmitting
- aabaf98c drivers: eth: gmac: Enable gPTP support
- 9099b248 drivers: eth: gmac: Use correct iface for gPTP over VLAN
- 7dc9831d drivers: eth: gmac: Disallow drastic rate changes
- 4e642f62 drivers: eth: gmac: Fix ptp clock rate re-calculation
- 75d23d59 drivers: eth: gmac: Add support for multiple hardware queues
- 3dd1101c drivers: eth: gmac: Minor reformatting
- a43ed0f4 drivers: eth: gmac: rework timestamping
- 982b4e14 drivers/i2c: extends Kconfig to support 8 controllers
- 67b48ab2 drivers/i2c: i2c_dw: extends driver to support 8 controllers
- 39ec52d2 drivers: eth: native_posix: Make sure sent pkt is freed properly
- abd417c0 drivers: eth: gmac: Implement the get_config callback
- 1b6e5f61 drivers: eth: gmac: Enable 802.1Qav support
- 9c0d7813 drivers: sensor: Add support for MMA8451Q (3-axis accelerometer)
- a10d1780 drivers/pinmux: stm32 fix ports_enable array definition
- 55767ade drivers: eth: gmac: Implement Qav status callbacks
- 45b1079b drivers: console: Kconfig: Improve native descriptions
- 23c92100 clock_control: nRF5x: Non-blocking 32KHz crystal oscillator startup
- 26d22b00 clock_control: nRF5x: Fix HFSTAT and LFSTAT check
- 0272a537 drivers: eth: gmac: Don't verify RX buffers count for unit tests
- 995411f4 drivers/i2c: kconfig: Clean up I2C Kconfigs a bit
- d775c2f5 drivers: crypto: Fix input len size for cbc decryption
- 57286afd drivers: uart: Allow to pass arbitrary user data to irq callback
- bdd2e591 drivers: eth: gmac: Fix idle slope setting
- 78b6dc6d drivers: eth: gmac: Do not implicitly enable Qav
- b15c3cb5 drivers: eth: gmac: Prefer routing packets based on TC
- ef96384d drivers: eth: gmac: Finish 802.1Qav support
- 9182d2e5 drivers: modem: add modem receiver (tty) driver
- 042d79e8 drivers: modem: add Wistron WNC-M14A2A LTE-M Modem Driver
- 8b3d4ab6 drivers: modem: add modem shell extension
- b4e36133 drivers: eth: native_posix: Exec program after creating zeth
- 34ff437b drivers: slip: Add LLDP support
- 3913f1ae drivers: eth: Enable LLDP support for native_posix board
- 0ffdd7fb drivers: eth: gmac: Don't use Qav code without priority queues
- 2681199c drivers: serial: uart_sam: Fix typo in param name.
- a2bfd819 drivers: spi: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- 841b8400 drivers: spi: nrfx: Remove "optional" from driver type choices
- 16e8860f drivers: i2c: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- ead39991 drivers: watchdog: nrfx: Remove false dependency on
CLOCK_CONTROL_NRF5
- f9aa9783 drivers: eth: native_posix: Allow user to manipulate zeth status
- ddb7f88f drivers: entropy: nrf5: Fix ENTROPY_BUSYWAIT implementation
- ed4f0ff3 drivers/sensor/fxos8700: Fix race condition during initialization
- 72cad66c drivers/sensor/fxas21002: Fix race condition during initialization
- 1dfd33b7 drivers: timer: nrf: Optimize k_cycle_get_32().
- 24abedbd driver: timer: nrf: Remove redundant RTC_COUNTER reads.
- 06c23f15 i2s: expose i2s APIs to user mode
- 2469097b drivers: nrfx: Allow simultaneous use of SPI_0 and I2C_0 on nRF52810
- 78d24763 subsys: console: Mark as EXPERIMENTAL.
- eb737280 drivers: pinmux: stm32: STM32F2 added ETH support to pinmux
and use it
- eaca7d78 drivers: ethernet: Kconfig: Document availability of eth_stm32_hal
- 39cb4b41 drivers: can: Fix Issue #8226
- 95b64fb7 subsys: console: Refactor code to allow per-UART "tty" wrapper
- ea9d4a79 drivers: usb: add support for USB OTG FS on STM32F2
- 41b7e7aa drivers: led: Add LED driver support for TI LP5562

External (8):

- 4dcfc870 ext: Atmel ASF: Add missing interrupt number definitions
- ba8d8350 ext: hal: atmel: sam: Add README for Atmel SAM E70 HAL
- 263282b2 ext: tinycrypt: Update revision
- d22cd76c CMSIS RTOS V1: Introduce CMSIS RTOS V1 API header file
- 57fda14f ext/hal: stm32cube: STM32F4: Enable legacy CAN API
- 6409f9a9 ext/hal: stm32cube: STM32F7: Enable legacy CAN API
- ee29e603 ext/hal: stm32cube: STM32L4: Enable legacy CAN API
- 8bb0e7a5 hal: stm32f2x: usbotg_fs: fix VBUS sensing deactivation

Kernel (15):

- 300b060e obj_tracing: Declare object trace list for queue
- 1f2eedff kernel: add z_arch_user_string_nlen prototype
- c8188f67 userspace: add functions for copying to/from user
- cef07486 userspace: add syscalls test case
- 4b22ba7e syscall: Move arch specific syscall code into its own header
- e58b6542 kernel: threads: assign index no. to dynamically created threads
- ee9a0615 kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 4a39b9ea kernel: sched: Use ticks as time unit in time slicing.
- 83fda7c6 userspace: add _k_object_recycle()
- 09c22cc4 userspace: add net_context as a kernel object
- 1a40990b syscalls: Define the syscall id's with '#define' instead of enum
- c69fb0d0 userspace: app_shared_mem: Fixed incorrect implementation.
- e670135f kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 2a26576b kernel: sched: Use ticks as time unit in time slicing.
- 3c7f9903 kernel: Do not use sys_clock_ticks_per_sec in _ms_to_ticks()

Libraries (13):

- 3641c25d libc: minimal: fix calloc()
- ccd1c218 lib/cmsis_rtos_v1: Implement support for thread APIs
- 2d7619ec lib/cmsis_rtos_v1: Implement support for osDelay
- 7e5f0b7b lib/cmsis_rtos_v1: Implement support for osKernelSysTick
- 7d3a5390 lib/cmsis_rtos_v1: Implement support for timer APIs
- 055da731 lib/cmsis_rtos_v1: Implement support for mutex APIs
- 45e67150 lib/cmsis_rtos_v1: Implement support for semaphore APIs
- aff8c511 lib/cmsis_rtos_v1: Implement support for mempool APIs
- 76fc443b lib/cmsis_rtos_v1: Implement support for kernel APIs
- 7c67140b lib/cmsis_rtos_v1: Implement support for Mail Queue APIs
- 3bb243c6 lib/cmsis_rtos_v1: Implement support for Message Queue APIs
- b5df23e4 lib/cmsis_rtos_v1: Implement support for Signal Event APIs
- 2fc836d2 lib: cmsis_rtos_v1: Fix timeout calculation in signals

Logging (7):

- 66111d7d logging: use BUILD_ASSERT_MSG instead of _Static_assert
- df8d4e96 logging: fix multi-file module support
- 55327a18 logging: fix runtime filtering initialization
- c859e2a2 logging: Replace ifdefs with if
- 3c63d05d logging: Add metadata to hexdump
- 2cb17a03 log: make name param explicit
- ebc3ce3a Revert "log: make name param explicit"

Maintainers (1):

- 3a257262 codeowners: Assign tests/boards/native_posix to aescolar

Miscellaneous (2):

- 4486478f shell: Add missing header
- 04b7838f misc: dlist: Fixed dlist.h error to pass checkpatch.pl script.

Networking (80):

- 09233e69 net/dhcpv4: Move definitions to header
- 3d5876d4 net/dhcpv4: Rename functions to follow domain related naming rules
- 6d74e262 net/dhcpv4: Reorder variable declaration
- 502912ac net/dhcpv4: Reuse generic IPv4 function relevantly
- bb6b2769 net/dhcpv4: Tiny style fixes
- 11ccf36a net/dhcpv4: Cleanup debug messages
- 2ba28dd7 net/dhcpv4: Unify timeout management in a unique k_delayed_work
- e487fc78 net: eth: mgmt: Minor formatting fix
- a10a1c26 net: eth: Add API callback to get hw configuration
- 3cd1425b net: eth: mgmt: Extend the management interface with a getter
- 9ffab9e6 net: arp: Fix ARP message sending if VLAN is enabled
- 2c1863ff net/ethernet: Add a way to configure MAC address filters into devices
- 21a27e88 net: l2: Move individual L2 to dedicated directories
- 96e794e6 net: openthread: Register OT unicast adresses in Zephyr
- 80e828b9 net: openthread: Don't regsiter mcast addresses in Zephyr
multiple times
- 00e37cbb net: IPv4 link local support
- f568be48 net: eth: mgmt: Add Qav status hooks
- cb3f30a0 net: shell: print info about priority queues
- 528f7f8f net: shell: Print supported features for ethernet interfaces
- 805e2f2c net: eth: mgmt: Merge 802.1Qav related mgmt requests
- c3eea5f6 net: net_app: Correctly notify server on TCP disconnection
- dd88711a net: eth: Vendor specific statistics
- bab35512 net: ipv4_autoconf: Fix requested IPv4 address in ARP packet
- 1f23d268 ip: route: disable LL address check when using dummy L2
- 7c776c8c net: eth: native_posix: Add missing headers
- c0487a06 net: tc: Fix priority to traffic class mappings
- 126602ac net: tc: Add other priority to traffic class mappings
- aed075ef net: ip: Fix net priorities definitions
- b6852e5a net: eth: mgmt: Add remaining 802.1Qav parameter types
- db577f00 net: buf: add linearize, append_bytes and skip APIs to net_buf
- b7e68664 net: sockets: Fix setsockopt coverity issues
- 2ff503b7 net: shell: Check strtol() conversion errors
- 9c26c3fa net: lwm2m: no need to cleanup net_app_ctx in RD client
- 59827626 net: l2: Add support for Link Layer Discovery Protocol (LLDP)
- ccfcdaba net: l2: Add flags to tell if L2 supports multicast
- 66244a0e net: if: No need to always join solicit node mcast group
- 1f855095 net: l2: Add promiscuous mode to L2 flags when applicable
- e75b6071 net: Fix credit-based shaper typos
- b8fdf3c6 net: if: Add net_if_ipv6_select_src_iface() function
- d0205693 net: if: Add net_if_select_src_iface() function
- f39ff76c net: if: Do not inline net_if_ipv6_addr_lookup_by_iface()
- d003d0e6 net: ipv4: Corrupted ARP pkt was sent instead of real IPv4 pkt
- 33e06441 net: ipv4: Minor refactoring
- fbac80bb net: ipv4: Refactor IPv4 header length handling
- bfa75168 net: Do not set appdata on a cloned packet
- c8b58904 net: ipv6: Fix memory leak
- 31f89b03 net: eth: Add start and stop L2 functions
- 06c4a950 net: icmpv6: Simplify the flow at net_icmpv6_get/set_xxx() calls
- 6521b9e4 net: tcp: Fix net_buf leak in case of low available net_buf count
- 7d55b7f1 net: icmpv4: Simplify the flow at net_icmpv4_get/set_xxx() calls
- ac92a01f net: ipv6: Refactor IPv6 header length handling
- 0aa437a1 net: ipv6: Fix regression in IPv6 cleanup
- 8b1f966b net: tcp: Handle RST packet when multiple flags are set
- 85db974e net: tls: Add DTLS protocol types
- b03a388d net: tls: Add socket option to set DTLS role
- 011b4f42 net: tls: Add timer handling for DTLS
- 3ad2bbce net: tls: Add cookie for DTLS
- 4aaffaff net: tls: Add DTLS peer address helpers
- 8719f9a8 net: socket: Extract flag related functions to internal header file
- 4c235dea net: tls: Add DTLS bio functions
- 6c5aaa07 net: tls: Handle HELLO_VERIFY_REQUIRED during DTLS handshake
- d021b8c6 net: tls: Adapt connect for DTLS
- bdc56cfe net: tls: Support DTLS send and handshake
- b1d82711 net: tls: Support DTLS recv and handshake
- 8697cc94 net: tls: Add timeout for mbetTLS read
- ae41ec1f net: tls: Make TLS poll implementation check mbedTLS data
- 800392e1 net: tls: Enable non-blocking DTLS handshake
- 7c487ba0 net: tls: Use EINVAL for NULL pointer error in option setters
- 18cec245 net: introduce system calls for zsock socket APIs
- 028aae1e net: config: Rename Kconfig options to correspond to library name
- 96abe861 net/mqtt: Fix function mqtt_parser
- 4b9d9809 net: if: Lower memory usage for IPv6 address, prefix and router info
- 7c7cfdda net: core: Always have a timeout when allocating a net_buf
- 4078e46e net: l2/lib: Always have a timeout when allocating a net_buf
- 7e3eaaa0 net: Use packed enums when applicable
- 14b4084d net: rpl: Kconfig: Fix 'Network type' choice default
- 355d58b0 net: http: One extra byte was sent in last chunk
- afa0e002 net: ipv6: Fix crash from fragmented packets
- 5d3bc8b3 net: pkt: Added new function net_pkt_append_memset() to
prefill packet
- d66e8077 net/dhcpv4: Use new net_pkt_append_memset() function

Samples (23):

- 9834b551 samples: net: gptp: Add support for Atmel SAM E70 Xplained board
- aa609faa samples: board: 96b_argonkey: remove led blinking
- 00dd90ef samples: ipm: improve sample metadata
- 9f817c8c samples: net: Allow to register more adresses for OpenThread
- c761002e samples: net/mqtt_publisher: Explicitly disable BT_TINYCRYPT_ECC
- fd1fec8a samples: net: IPv4 autoconf sample application
- 70a35e23 samples: sensors: mma8451q: Add accelerometer sample
- 926c341c samples: net: lwm2m: add wnc-m14a2a overlay .conf file
- 3e27187e samples: net: coaps_client: Increase IPv6 mcast table size
- 0b012257 samples: net: lwm2m: cleanup prj.conf
- c162bad3 samples: net: lldp: Sample application that enables LLDP support
- a564e640 samples: subsys: mgmt: mcumgr: smp_svr: documentation update
- d71a1dfe samples/driver/gpio : Updated gpio support
- b7c254fc samples: net: Add DTLS support to socket echo_client/echo_server
- df20ebd6 samples: boards: Fix incorrect min max range validation
- b8b230f2 samples: net: echo-client: Handle net_buf out-of-mem gracefully
- 38323783 samples: net: echo-server: Handle net_buf out-of-mem gracefully
- 26322d65 samples: mesh: nrf52: upgrade state binding
- 6efb173e samples: mesh: nrf52: Time filtering, Coding style & others
- 993c349a samples: mesh: nrf52: Transition Time support, Coding Style
- 0aafcd64 samples: mesh: nrf52 : to solve remaining PTS issues
- f8d53e5d samples: drivers: Add sample application for LP5562
- 36ef1921 samples: led_lp5562: cmake_minimum_required added

Scripts (7):

- 94be858f scripts: west: sync with upstream
- b3d165f3 scripts: kconfig: Handle warnings generated during evaluation
- 8e740350 scripts/dts: extract_dts_includes: makes 'defs' and 'structs' global
- 69a211fe scripts: extract_dts_includes: use deepcopcy when accessing reduced
- 6686efb8 kconfiglib/menuconfig: Add functionality and improve symbol
information
- f24d4bb3 check-compliance: Simplify undefined Kconfig symbol check
- f8a8bdf3 scripts: gen_app_smem.py: Removing a needless file.

Storage (2):

- b9dead0a subsys: fs/nvs: Improved nvs for larger blocksizes
- 7d2e5981 subsys: fs/nvs: Rewrite for improved robustness

Testing (62):

- bb8cb5ac tests: pipe: Add description and RTM links
- f19a0538 tests: watchdog: Add new testcase and improve existing ones
- 55642afe tests: obj_tracing: Add obj_tracing tests for kernel objects
- dbc8789a tests: sched: Enhance tests to improve code coverage
- abd646c3 tests: net: ethernet_mgmt: Test the new get_config callback
- 6101e232 tests: net: TLS credentials subsystem tests
- 44be3943 tests/benchmarks/footprint/min/x86: disable I2C and SPI
- d05bee87 tests: kernel: profiling: Add description and doxygen group
- 87de383c tests: CONFIG_ARC_INIT is n by default
- 07a8c0cf tests: kernel: Add test to verify k_thread_user_mode_enter()
- f16a7ea8 tests: flash_map: Disable write protection before erase
- 08db8c19 tests: flash_map: Enable mpu and allow flash write
- 08470c0f tests: flash_map: Don't enable stdout console
- 45f34a43 tests: flash_map: Add k64-based boards to platform whitelist
- 966ab0e4 tests: net: ethernet_mgmt: Add Qav status tests
- 0b76567a tests: mem_protect: Add description and doxygen groups
- 67d2ddc6 tests: mem_protect: Add RTM links and description
- 334ce69e tests: net: ipv6: Must use Ethernet L2 instead of Dummy L2
- 71523ece tests: native_tasks: Add missing header
- 1ad369df tests: crypto: cbc_mode: Fix input length
- b8ca8cf9 tests: net: lib: coap: Added new functions to improve code coverage
- d380c891 tests: net: Add new TC mappings testcases
- 7930419a tests: net: ethernet_mgmt: Improve and finish Qav testing
- 05d9b046 tests: net: iface: Add test for net_if_ipv6_select_src_iface()
- 297efa51 tests: net: iface: Add test for net_if_select_src_iface() function
- cd3e5b56 tests/kernel: kernel.queue.poll: fails if MAX_THREAD_BYTES > 2
- b16b4e6e tests: kernel: add tests for dynamic threads
- 3a82aef5 tests: lib: mem_alloc: Add tests to validate dynamic allocation
- 45a1c1fb tests: net: ipv6: Wrong API struct was used for ethernet device
- 4ae9dd5a tests: mp: Add description, RTM links and doxygen group
- 477219b2 tests: syscall: Add description and RTM links
- 0975663e tests: x86_mmu_api: Add description and doxygen groups
- b32b39af tests: userspace: Remove extra call to same testcase
- 6910f15f tests: protection: Add description and doxygen group
- 234f48e1 tests: userspace: Add description and doxygen links
- dec8b9e5 tests: msgq: Add description and RTM links
- b3f4d6b0 tests: lifo: Add description and RTM links
- 68bde79e tests: kernel: device: Add RTM link, description and doxygen group
- b073b296 tests/booting/stub: remove CONFIG_ARC_INIT
- e21e6c1b tests: posix: improve pthread_key test
- 8525944c tests: power: refactor power_states test
- db9f6a90 tests: obj_tracing: Enhance object tracing test
- a54a887a tests: kernel: Add doxygen groups
- 648477c6 tests: static_idt: Add description and RTM links
- 4cc28663 tests: FIFO: Add description and RTM links
- 0ab496b5 tests/cmsis_rtos_v1: Introduce tests to make use of Thread APIs
- b2b53196 tests/cmsis_rtos_v1: Introduce tests to verify Thread instances
- a57d994a tests/cmsis_rtos_v1: Introduce tests to make use of Timer APIs
- a76556a2 tests/cmsis_rtos_v1: Introduce tests to make use of Mutex APIs
- c996d058 tests/cmsis_rtos_v1: Introduce tests to make use of Semaphore APIs
- d543e8c8 tests/cmsis_rtos_v1: Introduce tests to make use of mempool APIs
- 1b6eb7d1 tests/cmsis_rtos_v1: Introduce tests to make use of mailq APIs
- f4999f79 tests/cmsis_rtos_v1: Introduce tests to make use of messageQ APIs
- f7779895 tests/cmsis_rtos_v1: Introduce tests to make use of Signal APIs
- 7dc09636 tests: spi_loopback: Increase size of async callback thread stack
- f15bca29 tests: spi_loopback: Add zasserts to fix false passes
- ecd7504d tests: spi_loopback: Increase k_poll timeout
- 5b3a7ed7 tests: kernel: Do not use exact time in timing checks.
- 5f1d6264 tests: CONFIG_ARC_INIT is n by default
- 331659c7 tests/net: ieee802154: fragment: Fix build error
- 74e02e5d tests: cmsis_rtos_v1: add negative tests
- c9ca1994 tests: cmsis_rtos_v1: Add and enhance test suite



Re: Zephyr development news, 20 August 2018

Thea Aldrich
 

Thank you Marti!

On Mon, Aug 20, 2018 at 1:33 PM, Marti Bolivar <marti@...> wrote:
Hello,

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


An HTML version is available here:
https://foundries.io/insights/2018/08/20/zephyr-news-20180820/


As usual, contents are broken down as follows:

- Highlights
  - Important changes
  - New features
  - Bug fixes
- Individual changes: a complete list of patches, sorted chronologically
  and categorized into areas, like:
  - Architectures
  - Kernel
  - Drivers
  - etc.


Highlights
==========

Breakage ahoy: The time since the last newsletter has seen a variety of
               incompatible or breaking changes merged into mainline. As
               usual, we've summarized these in the Important Changes
               section below, along with descriptions of what developers of
               affected applications should do to handle them. (A couple of
               new features were included there as well.)

This newsletter covers commits in the following inclusive range:

- bb8cb5ac ("tests: pipe: Add description and RTM links"),
  merged 26 July 2018
- 36ef1921 ("samples: led_lp5562: cmake_minimum_required added"),
  merged 16 August 2018

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

Various net app settings renamed:

Various Kconfig variables that were formerly in the CONFIG_NET_APP_
namespace were moved into CONFIG_NET_CONFIG_. For example,
CONFIG_NET_APP_SETTINGS is now CONFIG_NET_CONFIG_SETTINGS.

The affected variables are (without the CONFIG_NET_APP_ prefix, for
brevity):

- SETTINGS, AUTO_INIT, INIT_TIMEOUT
- NEED_IPV4, MY_IPV4_ADDR, PEER_IPV4_ADDR
- NEED_IPV6, NEED_IPV6_ROUTER, MY_IPV6_ADDR, PEER_IPV6_ADDR
- IEEE802154_DEV_NAME, IEEE802154_PAN_ID, IEEE802154_CHANNEL,
  IEEE802154_RADIO_TX_POWER, IEEE802154_SECURITY_KEY,
  IEEE802154_SECURITY_KEY_MODE, IEEE802154_SECURITY_LEVEL

Out of tree applications will need to perform the appropriate renames. The
default settings of the Kconfig library will cause fatal errors on attempts
to assign to the old names in .conf fragments, which should help find any
uses.

This completes the work of splitting network configuration from the net-app
library, which is in the process of being replaced and deprecated, into a
new net-config library.

Network interfaces now require flags:

Layer 2 objects must now declare supported features via a new flags
field. Initial flags declare support for multicast and promiscuous mode,
and whether or not to join a solicited node multicast group. Existing
in-tree users have been updated; out of tree implementations will need to
take care of build errors in the changed NET_L2_INIT.

Kconfig now prefers first default:

The Kconfig library used by Zephyr no longer carries a local patch to make
it prefer later default settings in Kconfig option definitions.  The
application boilerplate.cmake file thankfully emits a loud warning about
this, which can be silenced by creating a file named "hide-defaults-note"
in the Zephyr build directory.

This change is likely to bite any out of tree applications which define
their own default settings for Zephyr's Kconfig options and expect them to
override Zephyr's.

Affected applications should change from this pattern in their
application's KCONFIG_ROOT:

    # OLD STYLE, for older Zephyr versions:

    source "$ZEPHYR_BASE/Kconfig.zephyr"

    config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
    default your_value

to this:

    # NEW STYLE, use this from now on:

    config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
    default your_value

    source "$ZEPHYR_BASE/Kconfig.zephyr"

Kconfig: gsource is gone, use source, osource, or orsource:

The Zephyr dialect of the Kconfig language previously featured a gsource
extension, which, like source, worked to include a Kconfig file within
another one, but also supported shell-like glob patterns. However, gsource
did not check if any files matched the pattern. This has been replaced with
a scheme in which source is globbing, and requires at least one file to
match. A new osource (optional source) works the way gsource used to, and
orsource is an optional source included by relative path (rsource, to
include nother source by relative path, already existed).

NVS rewritten:

The NVS storage layer has been completely rewritten, and has what appears
to be a backwards-incompatible format on the storage medium. Any
applications using this layer will likely need to have their storage
partitions set up anew.

In the new version, the storage medium can become "locked" in case of fatal
errors. When this occurs, writes are prevented, but the user can read
existing data which has been stored without error before re-initializing
the flash device.

In the previous version, metadata and user data were placed together on the
storage medium. This has been replaced with a new layout, which separates
data from metadata. The data layout has also been changed in ways which
reduces overhead on some flash devices, and allows for the latest items to
be searched first on reads, improving performance in some workloads.

Bluetooth ID changes:

Bluetooth LE peripherals built with Zephyr can now support multiple
identity addresses.

This new feature seems to have brought incompatible API changes, as various
functions now take u8_t id parameters which index into the array of IDs
returned by bt_id_get(). If broken by this change and in doubt about what
to do, BT_ID_DEFAULT (0) is provided as a recommended value.

The number of supported identities can be controlled with
CONFIG_BT_ID_MAX, and several routines (with documentation!) were
added to manage them:

- int bt_id_create(bt_addr_le_t *addr, u8_t *irk)
- int bt_id_get(bt_addr_le_t *addrs, size_t *count)
- int bt_id_reset(u8_t id, bt_addr_le_t *addr, u8_t *irk)
- int bt_id_delete(u8_t id)

There are new Bluetooth shell commands related to these as well:
id-create, id-delete, id-reset, id-show, and id-select.

The Bluetooth Settings API takes multiple identities into account.

Bluetooth dynamic device name changes:

Dynamic setting of the Bluetooth device name is now disabled unless
CONFIG_BT_DEVICE_NAME_DYNAMIC=y.

Build system use of target_link_libraries changed:

The build system's internals now use the CMake target_link_libraries()
signature which includes PRIVATE/PUBLIC/INTERFACE keywords.

This is incompatible with the "plain" signature, which does not use
these keywords.

This change was made for good reasons, but has the rather unpleasant side
effect of breaking the build in cases where the application CMakeLists.txt
used the "plain" signature, as Zephyr's build system internals tend to get
included into the top level file. Affected application developers are
advised that adding PUBLIC after the target name restores the same
behavior as the "plain" signature.

Arm toolchain renamed:

The Zephyr environment and CMake variables used to select the GNU toolchain
provided by Arm have changed; the old usage is now deprecated. Users of
this toolchain should make the following changes:

- Change the value of ZEPHYR_TOOLCHAIN_VARIANT from gccarmemb to
  gnuarmemb
- The GCCARMEMB_TOOLCHAIN_PATH variable is now GNUARMEMB_TOOLCHAIN_PATH

This follows the replacement of the GCC ARM Embedded toolchain page with
the GNU Arm Embedded version:

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm

PyOCD on Python 3, now with Zephyr thread awareness:

Thankfully, this is not a breaking change, but it is welcome news.

The PyOCD project, used for flashing and debugging several Zephyr boards,
now supports Python 3.  It's now possible to remove any Python 2 PyOCD
install and re-install it with pip3 install --user pyOCD (perhaps after
updating applications and toolchain configurations to handle the changes
discussed above.)

To add a carrot of incentive to upgrade, PyOCD has also now learned
Zephyr thread awareness. To play along at home:

1. Add CONFIG_OPENOCD_SUPPORT=y to samples/synchronization/prj.conf
2. Build the sample for any board which uses PyOCD (like frdm_k64f)
3. ninja debug
4. Type continue at the (gdb) prompt
5. Hit control-C to halt execution
6. Run info threads at the (gdb) prompt.

Example output:

(gdb) info threads
  Id   Target Id         Frame
* 2    Thread 536874280 (Unnamed; Running; Priority 15) k_cpu_idle ()
at /home/mbolivar/src/zephyr/arch/arm/core/cpu_idle.S:135
  3    Thread 536870912 (Unnamed; Ready; Priority 7) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
  4    Thread 536874544 (Unnamed; Pending; Priority 7) __swap (key=0)
at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
  5    Thread 536875032 (Unnamed; Pending; Priority 255) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69

Socket-based DTLS support:

The new sockets layer now has experimental support for the DTLS
protocol. It can be enabled with CONFIG_NET_SOCKETS_ENABLE_DTLS.  Support
for creation of DTLS sockets, DTLS handshaking, send()/sendto(), and
recv()/recvfrom() is included.  Demonstration code illustrating usage
was added to the echo_client and echo_server pair of samples.

This continues the work of remaking Zephyr's secure networking code as
a socket-based implementation, with TLS managed via a set of
nonstandard setsockopt() calls.

Syscall support for sockets:

The following socket-related APIs are now accessible from Zephyr user
space, if that is enabled: socket(), close(), bind(),
connect(), listen(), accept(), send()/sendto(),
recv()/recvfrom(), fcntl(), poll(), inet_pton(), and
getaddrinfo().

CMSIS RTOS v1 support:

Zephyr now supports version 1 of the CMSIS RTOS API. This is a common API
defined by Arm for Cortex microcontrollers, which provides abstractions for
common RTOS interfaces, such as multi-threading, mutual exclusion, CPU
time, memory pools, etc. At time of writing, official documentation on
usage within Zephyr mostly refers users to the KEIL CMSIS-RTOS
v1 reference page:

http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html

Support for this API can be included within a Zephyr application by
enabling CONFIG_CMSIS_RTOS_V1. The main header is <cmsis_os.h>, which is
a shim between the abstractions presented by the CMSIS RTOS API and
Zephyr's own kernel APIs. There is also a new lib/cmsis_rtos_v1
directory, which contains the implementation. A variety of test cases were
added to tests/cmsis_rtos_v1.

Features
--------

Arches:

The effort to support Arm v8-M's secure and non-secure worlds
continues with the building blocks necessary to transfer control flow
between the "secure" and "insecure" worlds. Zephyr has gained support
for building secure world images which export entry points as a
library that non-secure images can be linked against to call into, as
well as invocation of function pointers to non-trusted code from the
secure world. Support for this feature can be enabled with
CONFIG_ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS. A variety of other
related changes allow for controlling secure and non-secure world
exceptions, system reset behavior, and stack management.

The native POSIX pseudo-architecture now supports a mechanism for
executing code at various points in its initialization, power
management sequence, and shutdown.  It can also dynamically manage
command line options with native_add_command_line_opts() and
native_cleanup_cmd_line(). See the NATIVE_TASK() macro defined in
its soc.h header for details. There appears to be some overlap here
with Zephyr's existing <init.h> APIs, but those do not allow for
task execution at sleep or exit times.

The x86, Arm, and ARC architectures grew the architecture-specific
code needed to implement safe copying to and from userspace discussed
in the kernel features below.

Bluetooth:

Various other features were merged in addition to the somewhat
breaking identity management changes discussed above.

Many (but definitely not all) of the changes merged during this period
improve Zephyr's feature set related to secure pairing.

New APIs include:

- An int bt_passkey_set(unsigned int passkey) routine, which can set
  a passkey to be used during pairing, and can be enabled with
  CONFIG_BT_FIXED_PASSKEY.

- The bt_conn_auth_cb struct, which contains application callbacks for
  events of interest during authenticated pairing, now has documentation
  for all of its fields. It also gained new callbacks for learning the
  results of the pairing process, with signatures:

  {{< highlight c >}}
  void (*pairing_complete)(struct bt_conn *conn, bool bonded);
  void (*pairing_failed)(struct bt_conn *conn);{{< /highlight >}}

The Bluetooth shell sports some new commands, mainly to exercise the
above new features:

- hci-cmd: this Swiss Army knife can be used to inject arbitrary HCI
  commands into the system
- fixed-passkey: sets a fixed passkey to be used during pairing
  using bt_passkey_set()
- the auth command now takes confirm as an authentication method,
  which can be used to test passkey support

When Zephyr's Bluetooth stack is being built in a "combined" configuration
(i.e. host and controller on the same chip), the default for
CONFIG_BT_TINYCRYPT_ECC is now y. This implements elliptic curve
cryptography related HCI commands required to support LE Secure Connections
in software, using the TinyCrypt library. (This of course implies a
footprint penalty.)

Finally, access address generation now supports Coded PHY requirements.

Boards:

New board-specific peripheral and shield enablement includes:

- frdm_k64f now supports uart2, and has device tree settings for
  the Wistron WNC-M14A2A LTE-M modem, which can be connected as a shield
- frdm_kl25z now supports the the MMA8451Q accelerometer attached to i2c0
- nrf52840_pca10056 also now supports the WNC-M14A2A
- nucleo_f207zg now supports USB and Ethernet
- up_squared now has I2C support (the Zephyr board configuration also
  now works on all the marketed variants of the board hardware)

Build:

The Kconfig dialect also now features def_int, def_hex, and
def_string keywords, which specify the type of a config option and
set its default value in a single line.

The Zephyr SDK has been packaged for Arch Linux, and is available as
zephyr-sdk in the AUR:

https://aur.archlinux.org/packages/zephyr-sdk

Device Tree:

The RISC-V boards were all converted to use device tree.

Cortex M4 cores on i.MX devices which have a Cortex A core on the same
die now have device tree bindings and support for the Resource Domain
Controller (RDC), which allows safe sharing of other peripherals
between the cores. A variety of i.MX peripheral bindings now contain a
required rdc property, through which the relevant permissions can be
configured.

Documentation:

Zephyr's documentation was re-themed to use the popular Read the Docs
Sphinx theme. Zephyr's documentation continues to be hosted at
docs.zephyrproject.org; just the theme was changed.

Drivers:

About 30% of the total driver commits in this period affected a single
driver, for the Atmel SAM GMAC Ethernet peripheral. This now supports
the gPTP protocol which Zephyr learned about during the v1.13 cycle,
multiple transmit and receive queues, and 802.1Qav support. Whew.

Zephyr received initial support for modem drivers, which can be enabled by
setting CONFIG_MODEM=y. Modem-specific shell commands can be enabled with
CONFIG_MODEM_SHELL. There is a new "modem receiver" API and driver which
can be enabled using CONFIG_MODEM_RECEIVER; its purpose is to allow modem
drivers to communicate via a UART using custom protocols. The initial
device is the Wistron WNC-M14A2A (LTE / LTE-M) modem.

The UART driver core now supports registering user-specified callbacks with
arbitrary callback data via uart_irq_callback_user_data_set.  This is a
backwards-compatible change; existing callbacks registered with
uart_irq_callback_set() will continue to work in the same way.

Support was added for the MMA8451Q accelerometer.

The I2S API is now userspace-aware. All memory buffers are copied.

The I2C driver core now supports up to 8 controllers. The initial user
is the DesignWare I2C driver.

On x86, the Apollo Lake SoCs now have PCI-based UART and I2C device
support.

STM32F2 devices now support Ethernet and USB OTG FS.

There is a new LED driver for the TI LP5562 device.

The SLIP and POSIX ethernet networking drivers now have LLDP support,
following addition of that protocol to Zephyr.

The POSIX ethernet driver can now execute user-defined scripts at
various points in time.

The console driver is starting to be refactored to more closely
resemble a UNIX-like TTY layer. Somewhat ominously, its APIs have been
marked "experimental" in Kconfig.

Nordic devices have an optimized implementation for the clock control
driver which provides k_cycle_get_32(). (This is important for users
of the new Logger subsystem on those devices, as Logger relies on this
routine being fast to retrieve timestamps with minimum overhead. This
propagated into the real time clock driver.)

External:

The Kconfiglib library was updated to revision 6aea8d0, bringing in
the changes discussed above.

TinyCrypt was updated to revision 3ea1a60.

Kernel:

Zephyr's userspace implementation now has all the necessary routines
for copying buffers to and from userspace in the kernel. Curious
readers are referred to the API documentation in
kernel/include/syscall_handler.h for details.

There is a new _k_object_recycle() routine, which can be used to
re-initialize a kernel object with permissions that only allow access
by the caller. This is intended for scenarios in which objects are
allocated and released to a shared pool.

The userspace implementation is now aware of net_context
structures. This was necessary to implement the argument validation
steps of system calls which operate on them.

Logging:

Since its initial merge, the Logger hexdump macros (LOG_HEXDUMP_INF()
and friends) now take an additional parameter. Their revised "signature"
is now:

{{< highlight c >}}
/* Likewise for DBG, WRN, and ERR. */
void LOG_HEXDUMP_INF(void *data, size_t size, const char *metadata);
{{< /highlight >}}

The final "metadata" parameter is new; any out of tree applications
using the API will need changes. The expected value is a string
literal which can be used to describe the data being
printed. Presumably, this makes it easier to distinguish the origin of
multiple different types of hexdump coming from the same module.

Networking:

Additional features not discussed above follow.

Experimental support for auto-configuration of link-local IPv4 addresses
was added, per RFC 3927. It can be enabled with CONFIG_NET_IPV4_AUTO (and
extra debugging can be enabled with NET_DEBUG_IPV4_AUTOCONF). A sample
application is in samples/net/ipv4_autoconf.

Support for the Link Layer Discovery Protocol (LLDP) was added, per
802.1AB. It can be enabled using CONFIG_NET_LLDP.  Only support for
transmission of LLDP frames is included; received LLDP frames are
dropped. Sample code is in samples/net/lldp.

The network management layer for Ethernet gained support for
device-specific enable and disable routines in struct
ethernet_api. Ethernet also gained support for 802.1Qav (priority
routing for audio-video streams) requests; when Ethernet management is
enabled, the iface network shell command now prints Qav status.

The existing traffic class support saw the addition of a new choice
for the mapping between priority and traffic class. See this choice
option for details:

http://docs.zephyrproject.org/reference/kconfig/choice_174.html

The net_pkt structure used to store network packets has had routines
for linearizing data into a contiguous array, as well as appending
bytes. However, the underlying net_buf struct, which actually
implements the buffer management, was lacking in this regard. As part
of the modem support work, the relevant routines were moved into the
net_buf layer, with net_pkt wrappers left behind to avoid API
breakage.

The networking shell iface command now prints the supported hardware
capabilities for Ethernet interfaces.

Ethernet devices saw continued feature additions. They can now report
hardware-specific configuration. The initial user is a getter for the
number of priority queues. Support for MAC-based incoming packet
filters was also added.

If the (new) CONFIG_NET_STATISTICS_ETHERNET_VENDOR Kconfig option is
enabled, the stats command can now include vendor-specific statistics in
its output.

The DHCPv4 implementation got some love, reducing footprint through
increasing code reuse and cleaning up the code.

A variety of other structure sizes were also optimized.

Samples:

New sample support includes samples/sensor/mma8451q for MMA8451Q
accelerometers, WNC-M14A2A LTE-M modem support in lwm2m_client, a
variety of new features in the Bluetooth Mesh samples, and LP5562 LED
support in samples/drivers/led_lp5562.

Scripts:

The West implementation for flashing with nrfjprog can now
configurably mass erase or sector erase the underlying flash device.

The menuconfig script displays symbols in a more compact format, among
other improvements.

Testing:

As has become usual, a great number of tests have increased Doxygen
grouping and requirements traceability matrix annotations.

A variety of other test cases were added to cover several of the new
features discussed above.

Bug Fixes
---------

Arches:

A bug in the ARC MPU driver stack guard implementation was fixed.

The POSIX pseudo-architecture saw fixes related to, and stopped
silencing, the undef and implicit-function-declaration GCC
warnings.

Bluetooth:

A variety of fixes were merged, including a Mesh SeqAuth calculation
fix, increased robustness during pairing, the set PHY command status
response, the existence of keying material before doing encryption,
and storage of the Bluetooth device name in via the settings
subsystem.

Build:

A bug causing corrupt data copying into RAM during RISC-V
initialization was fixed.

The build system generator's Kconfig logic would previously get
confused if kconfig.py failed after creating the .config file. Since
has become more common since the addition of several helpful errors
which are emitted in response to malformed Kconfig fragments, the
confusion has been resolved.

The continued removal of redundant default n introduced into
Zephyr's Kconfig continues.

Various Kconfig patterns for describing the type (int, bool, etc.)
and prompt ("help string for the option") were merged into a single
line: <type> "prompt". This improves concision and avoids potential
confusion about (nonexistent) differences between the other styles.

Documentation:

A variety of errors and misspellings were corrected. The installation
documentation on Linux was cleaned up for readability.

Drivers:

The POSIX Ethernet driver got a fix for an unlikely memory leak.

The nRFx clock control driver saw some fixes related to clock status
checking.

The nRF5 entropy driver got a fix for an infinite loop.

The FXOS8700 and FXAS21002 sensor drivers (these peripherals are
available on some NXP FRDM boards) got fixes for initialization race
conditions.

Various issues in the CAN driver were fixed.

External:

The STM32F2 USB OTG HAL received a local patch to fix VBUS sensing
deactivation.

The STM32 HAL CAN APIs were switched to the legacy versions, restoring
Zephyr CAN functionality.

Kernel:

A kernel bug which allowed dynamically allocated thread objects to
potentially masquerade as other threads has been fixed.

A schedule bug affecting time slice update has been fixed. As part of
this effort, all scheduler time slices are now measured in ticks
rather than milliseconds.

The kernel's support for shared memory between threads was fixed;
users affected by the previous incorrect implementation include
systems using an ARM MPU.

Libraries:

The calloc() implementation in Zephyr's libc was failing to live up
to its contract to return zeroed memory; this has been fixed.

Logging:

A few fixes were merged, affecting modules which span multiple files,
runtime filtering, and compilation on non-GCC toolchains.

Networking:

VLAN tags are now properly set for ARP messages.

TCP servers now have their disconnection callbacks invoked correctly.

A couple of memory leaks were fixed, along with a TCP RST edge case.

The MQTT parser now properly handles UNSUBACK packets.

A couple of OpenThread addressing issues were resolved: duplicate
multicast addresses are no longer registered with their network
interfaces, and unicast addresses are now also registered with their
Zephyr network interfaces. The latter fix resolves an issue preventing
use of mesh-local endpoint identifiers.

Scripts:

The device tree management scripts were fixed to avoid destroying
shared data due to a shallow copy of a data structure.

Zephyr's Kconfig generation script no longer ignores warnings
generated during symbol evaluation.

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

Patches by area (417 patches total):

- Arches: 39
- Bluetooth: 39
- Boards: 11
- Build: 22
- Continuous Integration: 3
- Device Tree: 2
- Documentation: 25
- Drivers: 56
- External: 8
- Kernel: 15
- Libraries: 13
- Logging: 7
- Maintainers: 1
- Miscellaneous: 2
- Networking: 80
- Samples: 23
- Scripts: 7
- Storage: 2
- Testing: 62

Arches (39):

- 88f4b681 arch/x86: apollo_lake: add MMU regions for I2C controllers
- b3e68703 arch/x86: apollo_lake: add PCI related bits for UARTs/I2Cs
- 0b899205 arch/x86: update linker definition for x86 real mode
- 550225b6 native: Generalize native tasks
- f742d0e2 native: Allow cmd line options to be registered dynamically
- 55f6620c native_posix: Refactor cmd line options
- 3369a5ed arch: introduce exc_handle.h
- 9d3cdb35 x86: add z_arch_user_string_nlen
- 3cef6deb arm: add z_arch_user_string_nlen
- b1dec299 arc: add z_arch_user_string_nlen
- 9426a3cb arch: x86: set output format/arch per arch
- 61570342 arch/x86: always make BSS section MMU page align if X86_MMU
- a76fa45e native_posix: minor doc fixes
- c0ea40cd posix arch: Add missing header
- 00b07615 native_posix: Add missing headers and function prototypes
- 4388cde9 arch posix: Allow including XOPEN extensions
- 11aa0b80 posix arch: Do not disable warnings
- eab3f3f2 arm: _FaultShow: fix typo MMFSR -> UFSR
- 37cc2ccc arch: arc: fix a bug in mpu driver
- 9283ee7a arch: i.MX add RDC peripheral permission setting for
applications cores
- b996955e arch: arm: optimize _size_to_mpu_rasr_size function
- 034499af arch: arm: configure non-secure registers from secure firmware
- de784300 arch: arm: internal API to enable/disable SAU
- 97d5f60a arch: arm: configure NS stack pointer limit registers
- 28acaead arch: arm: add macro definition for vector key write permit value
- 179b8d15 arch: arm: API to configure fault target state
- 5bb3d015 arch: arm: API to configure Secure exception boost
- ba02c6d9 arch: arm: api for reading MCU SAU regions
- f8b5046b arch: arm: include GCC -mcmse compile option for secure firmware
- a0508180 arch: arm: API macros for CMSE non-secure function pointers
- d9cfbc28 arch: arm: macro API for defining non-secure entry functions
- 6e93eea3 arch: arm: api to permit/block NS system reset requests
- 3b79b283 arch: arm: API & implementation of SAU region configuration
- db3f6aab arch: arm: add option to define an NSC region
- f2bdee35 arch: arm: export entry veneers
- c4703661 arch: arm: soc: add STM32L433
- bb0b66e1 arch: arm: clean-up "default n" entries in Kconfig option definitions
- 970cfdb8 arch: riscv32: Move MEPC increment in irq_wrapper
- 218d7a0a riscv: Rename the FE310 SoC to Sifive Freedom

Bluetooth (39):

- 9b6ad406 bluetooth: add callback to notify pairing is complete
- e2e02029 Bluetooth: SMP: Fix minor coding style issues
- 8780636f Bluetooth: shell: Add hci-cmd command
- 4d10b04a Bluetooth: SMP: Fix missing NULL-checks for bt_auth
- 4fe8eddd Bluetooth: SMP: Don't return STK if it hasn't been generated yet
- db0e4d52 Bluetooth: Kconfig: Enable TINYCRYPT_ECC for combined builds
- 642db775 bluetooth: kconfig: Fix swapped 'range's on BT_RFCOMM_L2CAP_MTU
- 4752788c Bluetooth: Fix documentation and other issues with auth callbacks
- da8f62de Bluetooth: SMP: Remove redundant check for smp pointer
- ef70fc85 Bluetooth: SMP: Fix SMP context init when sending security request
- c446c826 Bluetooth: Add support for fixed passkeys
- b049ac12 Bluetooth: shell: Add command for setting fixed passkey
- e504aad2 Bluetooth: shell: Add pairing failed/complete callbacks
- 0ab27e68 Bluetooth: shell: Add support for pairing confirm-only callbacks
- 97da52bb Bluetooth: controller: Update AA generation for Coded PHY support
- 76320d21 Bluetooth: controller: Fix HCI LE Set PHY command status response
- 3ebb81ba Bluetooth: controller: Wait for stable k32src for connected roles
- 28d5a65a Bluetooth: SMP: Don't try to encrypt with a non-existing LTK
- 6ee8e419 Bluetooth: Mesh: Clarify confusing log message
- 304f26c3 Bluetooth: Userchan: Add missing headers
- 1329763a Bluetooth: Fix storing name in plain text
- 504584a9 Bluetooth: att: Add option to disable GATT writable name
- e0864a93 Bluetooth: controller: HAL: Separate simulated SOC in own header
- 3712fd34 Bluetooth: controller: remove unnecessary guards in hal headers
- 6b8af4f0 Bluetooth: Minor whitespace fixes
- 5708f1e8 Bluetooth: Add infrastructure to handle multiple identities
- 1d8dab81 Bluetooth: Add initial APIs for identity manipulation
- 3ed01b48 Bluetooth: Remove redundant BT_DEV_ID_STATIC_RANDOM flag
- e70c556d Bluetooth: Add full storage support for multiple identities
- cbb1b84f Bluetooth: Pass identity to connection and pairing clearing functions
- 93360497 Bluetooth: Remove bogus bt_keys_func_t typedef
- 3d3888c0 Bluetooth: Remove return parameter from bt_id_add/del
- 7dba2512 Bluetooth: Introduce bt_id_reset() API
- 7ec40e81 Bluetooth: shell: Add multiple identity support
- 47291330 Bluetooth: Add safe-guards for creating duplicate identities
- 346f815d Bluetooth: Introduce bt_id_delete() API
- 61ec5125 Bluetooth: shell: Add id-delete command
- 734eda39 bluetooth: tester: Increase SDU size to meet PTS requirement
- e4908119 Bluetooth: Mesh: Transport: Fix calculating SeqAuth

Boards (11):

- bcc95235 boards/x86: up_squared: add I2C configurations
- 7b0c7aab boards/x86: up_squared: support new devices and Atom SoC
- ee7f834e boards: frdm_kl25z: Add mma8451q to i2c in dts
- b9bbebca boards: 96b_argonkey, fix lsm6dsl label name
- d917f239 boards: arm: k64f: add settings for UART_2
- 01745c38 boards: arm: frdm_k64f: add settings to use WNC-M14A2A LTE-M modem
- 65af15bc boards: arm: nrf52840_pca10056: add settings for WNC-M14A2A modem
- 5fda25af Revert "mimxrt1050_evk: disable sanitycheck on this board
[REVERT ME]"
- 7433f75e mimxrt1050_evk: Update jlink device name
- 45d5d5db boards: riscv: Convert HiFive1 to DTS
- 107efdf2 boards: nucleo_f207zg: enable usb

Build (22):

- 15516ed0 linker: riscv: Relocate .eh_frame symbol
- 99306334 kconfig: remove whitelisting for ARC_INIT
- c1bf7350 cmake: Improve the error message when the compiler is not executable
- d1684a83 Kconfig: Clean up some symbol definitions
- 5402662d cmake: kconfig: Fix rerunning cmake after Kconfig warnings
- a500e7e0 cmake: kconfig: Fix broken menuconfig due to misspelling
- d46e2c7e ld: Don't use --start-group and --end-group
- 957262e3 build: Replace GCC ARM Embedded with GNU Arm Embedded
- b9e8cd11 cmake: Refactor usage of target_link_libraries on Zephyr libraries
- ec3eff57 Kconfig: Use the first default with a satisfied condition
- 3ed9328d Kconfig: Get rid of some leftover 'option env's
- a8aba2f8 Kconfig: Include Kconfig.zephyr last in sample Kconfig files
- d08a212e Kconfig: Document the new prefer-earlier-defaults behavior
- 9c93e8e8 Kconfig: Have CMake print a note about the changed 'default' behavior
- 83d2a47d cmake: Don't propagate zephyr_library_compile_options
- bf8efdbf genrest: Generate RST links in a less hacky way
- 55ee53ce cmake: Prepend 'cmake_minimum_required()' into 'app' build scripts
- 6682652a cmake: change policy CMP0000 to NEW
- 17f1b0ad Kconfig: Switch to improved globbing statements
- 0af60bc2 Kconfig: Document new def_{int,hex,string} extensions
- 8cf8db3a Kconfig: Use a short, consistent style for prompts
- 1186f5bb cmake: Deprecate the 2 symbols _SYSCALL_{LIMIT,BAD}

Continuous Integration (3):

- 632597eb coverage: kernel: poll: Cleanup redundant code to improve coverage
- a51fb782 coverage: tests: poll: Add missing poll event to improve
code coverage
- f3a6e8aa sanitycheck: Recommend installing "ply" instead of "python3-ply"

Device Tree (2):

- 4016136b dts: bindings: add generic yaml description for uart-devices
- 0b60f383 dts: Fix get_compat when parent compat is a list

Documentation (25):

- 4cac31b2 doc: fix doxygen error for BUILD_ASSERT_MSG
- d47bd0b5 doc: prepare for read_the_docs theme change
- d7d10904 doc: scripts: Updates for pyocd v0.11.1
- f6349c88 doc: simplify CONTRIBUTING, merge non-apache
- f3f266ea doc: more RTD theme tweaks
- 368826e9 doc: getting started: add Arch Linux package
- 7555476b doc: Replace title with logo in front page
- ac7753ee doc: Add getting started to README.rst
- cb243eae doc: Correct arch spellings in README.rst
- cd170531 Doc: installation_linux.rst: Feedback Updates
- 2cf47fed doc: tweak table CSS for caption location
- a0dbc7aa doc: Copy all doc/ contents and not just .rst files
- a33b15d2 doc: Remove workaround file
- d6c56d57 doc: Remove unnecessary copy statements
- 9a3d7a43 doc: fix misspellings in API docs
- 7c89b63b doc: fix kconfig misspellings
- 6750b8d2 doc: fix misspellings in docs
- 17d04524 doc: tweak doc build instructions
- 0c5a88a6 doc: Update OpenSDA document for flashing with jlink
- 5c8398da doc: switch to use RTD theme
- 2300a592 doc: fix errors in ipv4_autoconf sample doc
- d04eaf3b doc: Fix warning associated with GNU ARM embedded rename
- 3ffac998 doc: fix wrong board name in Nordic doc
- 3747b5ba doc: Document new app boilerplate requirement
- 896a6966 doc: Make Sphinx output directory configurable

Drivers (56):

- e482feac drivers: watchdog: Align nrf wdt driver to new nrfx
- 14112768 drivers: watchdog: Fix assert errors in nrf watchdog implementation
- 525b0ce8 drivers: eth: gmac: Restore original frags data after transmitting
- aabaf98c drivers: eth: gmac: Enable gPTP support
- 9099b248 drivers: eth: gmac: Use correct iface for gPTP over VLAN
- 7dc9831d drivers: eth: gmac: Disallow drastic rate changes
- 4e642f62 drivers: eth: gmac: Fix ptp clock rate re-calculation
- 75d23d59 drivers: eth: gmac: Add support for multiple hardware queues
- 3dd1101c drivers: eth: gmac: Minor reformatting
- a43ed0f4 drivers: eth: gmac: rework timestamping
- 982b4e14 drivers/i2c: extends Kconfig to support 8 controllers
- 67b48ab2 drivers/i2c: i2c_dw: extends driver to support 8 controllers
- 39ec52d2 drivers: eth: native_posix: Make sure sent pkt is freed properly
- abd417c0 drivers: eth: gmac: Implement the get_config callback
- 1b6e5f61 drivers: eth: gmac: Enable 802.1Qav support
- 9c0d7813 drivers: sensor: Add support for MMA8451Q (3-axis accelerometer)
- a10d1780 drivers/pinmux: stm32 fix ports_enable array definition
- 55767ade drivers: eth: gmac: Implement Qav status callbacks
- 45b1079b drivers: console: Kconfig: Improve native descriptions
- 23c92100 clock_control: nRF5x: Non-blocking 32KHz crystal oscillator startup
- 26d22b00 clock_control: nRF5x: Fix HFSTAT and LFSTAT check
- 0272a537 drivers: eth: gmac: Don't verify RX buffers count for unit tests
- 995411f4 drivers/i2c: kconfig: Clean up I2C Kconfigs a bit
- d775c2f5 drivers: crypto: Fix input len size for cbc decryption
- 57286afd drivers: uart: Allow to pass arbitrary user data to irq callback
- bdd2e591 drivers: eth: gmac: Fix idle slope setting
- 78b6dc6d drivers: eth: gmac: Do not implicitly enable Qav
- b15c3cb5 drivers: eth: gmac: Prefer routing packets based on TC
- ef96384d drivers: eth: gmac: Finish 802.1Qav support
- 9182d2e5 drivers: modem: add modem receiver (tty) driver
- 042d79e8 drivers: modem: add Wistron WNC-M14A2A LTE-M Modem Driver
- 8b3d4ab6 drivers: modem: add modem shell extension
- b4e36133 drivers: eth: native_posix: Exec program after creating zeth
- 34ff437b drivers: slip: Add LLDP support
- 3913f1ae drivers: eth: Enable LLDP support for native_posix board
- 0ffdd7fb drivers: eth: gmac: Don't use Qav code without priority queues
- 2681199c drivers: serial: uart_sam: Fix typo in param name.
- a2bfd819 drivers: spi: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- 841b8400 drivers: spi: nrfx: Remove "optional" from driver type choices
- 16e8860f drivers: i2c: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- ead39991 drivers: watchdog: nrfx: Remove false dependency on
CLOCK_CONTROL_NRF5
- f9aa9783 drivers: eth: native_posix: Allow user to manipulate zeth status
- ddb7f88f drivers: entropy: nrf5: Fix ENTROPY_BUSYWAIT implementation
- ed4f0ff3 drivers/sensor/fxos8700: Fix race condition during initialization
- 72cad66c drivers/sensor/fxas21002: Fix race condition during initialization
- 1dfd33b7 drivers: timer: nrf: Optimize k_cycle_get_32().
- 24abedbd driver: timer: nrf: Remove redundant RTC_COUNTER reads.
- 06c23f15 i2s: expose i2s APIs to user mode
- 2469097b drivers: nrfx: Allow simultaneous use of SPI_0 and I2C_0 on nRF52810
- 78d24763 subsys: console: Mark as EXPERIMENTAL.
- eb737280 drivers: pinmux: stm32: STM32F2 added ETH support to pinmux
and use it
- eaca7d78 drivers: ethernet: Kconfig: Document availability of eth_stm32_hal
- 39cb4b41 drivers: can: Fix Issue #8226
- 95b64fb7 subsys: console: Refactor code to allow per-UART "tty" wrapper
- ea9d4a79 drivers: usb: add support for USB OTG FS on STM32F2
- 41b7e7aa drivers: led: Add LED driver support for TI LP5562

External (8):

- 4dcfc870 ext: Atmel ASF: Add missing interrupt number definitions
- ba8d8350 ext: hal: atmel: sam: Add README for Atmel SAM E70 HAL
- 263282b2 ext: tinycrypt: Update revision
- d22cd76c CMSIS RTOS V1: Introduce CMSIS RTOS V1 API header file
- 57fda14f ext/hal: stm32cube: STM32F4: Enable legacy CAN API
- 6409f9a9 ext/hal: stm32cube: STM32F7: Enable legacy CAN API
- ee29e603 ext/hal: stm32cube: STM32L4: Enable legacy CAN API
- 8bb0e7a5 hal: stm32f2x: usbotg_fs: fix VBUS sensing deactivation

Kernel (15):

- 300b060e obj_tracing: Declare object trace list for queue
- 1f2eedff kernel: add z_arch_user_string_nlen prototype
- c8188f67 userspace: add functions for copying to/from user
- cef07486 userspace: add syscalls test case
- 4b22ba7e syscall: Move arch specific syscall code into its own header
- e58b6542 kernel: threads: assign index no. to dynamically created threads
- ee9a0615 kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 4a39b9ea kernel: sched: Use ticks as time unit in time slicing.
- 83fda7c6 userspace: add _k_object_recycle()
- 09c22cc4 userspace: add net_context as a kernel object
- 1a40990b syscalls: Define the syscall id's with '#define' instead of enum
- c69fb0d0 userspace: app_shared_mem: Fixed incorrect implementation.
- e670135f kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 2a26576b kernel: sched: Use ticks as time unit in time slicing.
- 3c7f9903 kernel: Do not use sys_clock_ticks_per_sec in _ms_to_ticks()

Libraries (13):

- 3641c25d libc: minimal: fix calloc()
- ccd1c218 lib/cmsis_rtos_v1: Implement support for thread APIs
- 2d7619ec lib/cmsis_rtos_v1: Implement support for osDelay
- 7e5f0b7b lib/cmsis_rtos_v1: Implement support for osKernelSysTick
- 7d3a5390 lib/cmsis_rtos_v1: Implement support for timer APIs
- 055da731 lib/cmsis_rtos_v1: Implement support for mutex APIs
- 45e67150 lib/cmsis_rtos_v1: Implement support for semaphore APIs
- aff8c511 lib/cmsis_rtos_v1: Implement support for mempool APIs
- 76fc443b lib/cmsis_rtos_v1: Implement support for kernel APIs
- 7c67140b lib/cmsis_rtos_v1: Implement support for Mail Queue APIs
- 3bb243c6 lib/cmsis_rtos_v1: Implement support for Message Queue APIs
- b5df23e4 lib/cmsis_rtos_v1: Implement support for Signal Event APIs
- 2fc836d2 lib: cmsis_rtos_v1: Fix timeout calculation in signals

Logging (7):

- 66111d7d logging: use BUILD_ASSERT_MSG instead of _Static_assert
- df8d4e96 logging: fix multi-file module support
- 55327a18 logging: fix runtime filtering initialization
- c859e2a2 logging: Replace ifdefs with if
- 3c63d05d logging: Add metadata to hexdump
- 2cb17a03 log: make name param explicit
- ebc3ce3a Revert "log: make name param explicit"

Maintainers (1):

- 3a257262 codeowners: Assign tests/boards/native_posix to aescolar

Miscellaneous (2):

- 4486478f shell: Add missing header
- 04b7838f misc: dlist: Fixed dlist.h error to pass checkpatch.pl script.

Networking (80):

- 09233e69 net/dhcpv4: Move definitions to header
- 3d5876d4 net/dhcpv4: Rename functions to follow domain related naming rules
- 6d74e262 net/dhcpv4: Reorder variable declaration
- 502912ac net/dhcpv4: Reuse generic IPv4 function relevantly
- bb6b2769 net/dhcpv4: Tiny style fixes
- 11ccf36a net/dhcpv4: Cleanup debug messages
- 2ba28dd7 net/dhcpv4: Unify timeout management in a unique k_delayed_work
- e487fc78 net: eth: mgmt: Minor formatting fix
- a10a1c26 net: eth: Add API callback to get hw configuration
- 3cd1425b net: eth: mgmt: Extend the management interface with a getter
- 9ffab9e6 net: arp: Fix ARP message sending if VLAN is enabled
- 2c1863ff net/ethernet: Add a way to configure MAC address filters into devices
- 21a27e88 net: l2: Move individual L2 to dedicated directories
- 96e794e6 net: openthread: Register OT unicast adresses in Zephyr
- 80e828b9 net: openthread: Don't regsiter mcast addresses in Zephyr
multiple times
- 00e37cbb net: IPv4 link local support
- f568be48 net: eth: mgmt: Add Qav status hooks
- cb3f30a0 net: shell: print info about priority queues
- 528f7f8f net: shell: Print supported features for ethernet interfaces
- 805e2f2c net: eth: mgmt: Merge 802.1Qav related mgmt requests
- c3eea5f6 net: net_app: Correctly notify server on TCP disconnection
- dd88711a net: eth: Vendor specific statistics
- bab35512 net: ipv4_autoconf: Fix requested IPv4 address in ARP packet
- 1f23d268 ip: route: disable LL address check when using dummy L2
- 7c776c8c net: eth: native_posix: Add missing headers
- c0487a06 net: tc: Fix priority to traffic class mappings
- 126602ac net: tc: Add other priority to traffic class mappings
- aed075ef net: ip: Fix net priorities definitions
- b6852e5a net: eth: mgmt: Add remaining 802.1Qav parameter types
- db577f00 net: buf: add linearize, append_bytes and skip APIs to net_buf
- b7e68664 net: sockets: Fix setsockopt coverity issues
- 2ff503b7 net: shell: Check strtol() conversion errors
- 9c26c3fa net: lwm2m: no need to cleanup net_app_ctx in RD client
- 59827626 net: l2: Add support for Link Layer Discovery Protocol (LLDP)
- ccfcdaba net: l2: Add flags to tell if L2 supports multicast
- 66244a0e net: if: No need to always join solicit node mcast group
- 1f855095 net: l2: Add promiscuous mode to L2 flags when applicable
- e75b6071 net: Fix credit-based shaper typos
- b8fdf3c6 net: if: Add net_if_ipv6_select_src_iface() function
- d0205693 net: if: Add net_if_select_src_iface() function
- f39ff76c net: if: Do not inline net_if_ipv6_addr_lookup_by_iface()
- d003d0e6 net: ipv4: Corrupted ARP pkt was sent instead of real IPv4 pkt
- 33e06441 net: ipv4: Minor refactoring
- fbac80bb net: ipv4: Refactor IPv4 header length handling
- bfa75168 net: Do not set appdata on a cloned packet
- c8b58904 net: ipv6: Fix memory leak
- 31f89b03 net: eth: Add start and stop L2 functions
- 06c4a950 net: icmpv6: Simplify the flow at net_icmpv6_get/set_xxx() calls
- 6521b9e4 net: tcp: Fix net_buf leak in case of low available net_buf count
- 7d55b7f1 net: icmpv4: Simplify the flow at net_icmpv4_get/set_xxx() calls
- ac92a01f net: ipv6: Refactor IPv6 header length handling
- 0aa437a1 net: ipv6: Fix regression in IPv6 cleanup
- 8b1f966b net: tcp: Handle RST packet when multiple flags are set
- 85db974e net: tls: Add DTLS protocol types
- b03a388d net: tls: Add socket option to set DTLS role
- 011b4f42 net: tls: Add timer handling for DTLS
- 3ad2bbce net: tls: Add cookie for DTLS
- 4aaffaff net: tls: Add DTLS peer address helpers
- 8719f9a8 net: socket: Extract flag related functions to internal header file
- 4c235dea net: tls: Add DTLS bio functions
- 6c5aaa07 net: tls: Handle HELLO_VERIFY_REQUIRED during DTLS handshake
- d021b8c6 net: tls: Adapt connect for DTLS
- bdc56cfe net: tls: Support DTLS send and handshake
- b1d82711 net: tls: Support DTLS recv and handshake
- 8697cc94 net: tls: Add timeout for mbetTLS read
- ae41ec1f net: tls: Make TLS poll implementation check mbedTLS data
- 800392e1 net: tls: Enable non-blocking DTLS handshake
- 7c487ba0 net: tls: Use EINVAL for NULL pointer error in option setters
- 18cec245 net: introduce system calls for zsock socket APIs
- 028aae1e net: config: Rename Kconfig options to correspond to library name
- 96abe861 net/mqtt: Fix function mqtt_parser
- 4b9d9809 net: if: Lower memory usage for IPv6 address, prefix and router info
- 7c7cfdda net: core: Always have a timeout when allocating a net_buf
- 4078e46e net: l2/lib: Always have a timeout when allocating a net_buf
- 7e3eaaa0 net: Use packed enums when applicable
- 14b4084d net: rpl: Kconfig: Fix 'Network type' choice default
- 355d58b0 net: http: One extra byte was sent in last chunk
- afa0e002 net: ipv6: Fix crash from fragmented packets
- 5d3bc8b3 net: pkt: Added new function net_pkt_append_memset() to
prefill packet
- d66e8077 net/dhcpv4: Use new net_pkt_append_memset() function

Samples (23):

- 9834b551 samples: net: gptp: Add support for Atmel SAM E70 Xplained board
- aa609faa samples: board: 96b_argonkey: remove led blinking
- 00dd90ef samples: ipm: improve sample metadata
- 9f817c8c samples: net: Allow to register more adresses for OpenThread
- c761002e samples: net/mqtt_publisher: Explicitly disable BT_TINYCRYPT_ECC
- fd1fec8a samples: net: IPv4 autoconf sample application
- 70a35e23 samples: sensors: mma8451q: Add accelerometer sample
- 926c341c samples: net: lwm2m: add wnc-m14a2a overlay .conf file
- 3e27187e samples: net: coaps_client: Increase IPv6 mcast table size
- 0b012257 samples: net: lwm2m: cleanup prj.conf
- c162bad3 samples: net: lldp: Sample application that enables LLDP support
- a564e640 samples: subsys: mgmt: mcumgr: smp_svr: documentation update
- d71a1dfe samples/driver/gpio : Updated gpio support
- b7c254fc samples: net: Add DTLS support to socket echo_client/echo_server
- df20ebd6 samples: boards: Fix incorrect min max range validation
- b8b230f2 samples: net: echo-client: Handle net_buf out-of-mem gracefully
- 38323783 samples: net: echo-server: Handle net_buf out-of-mem gracefully
- 26322d65 samples: mesh: nrf52: upgrade state binding
- 6efb173e samples: mesh: nrf52: Time filtering, Coding style & others
- 993c349a samples: mesh: nrf52: Transition Time support, Coding Style
- 0aafcd64 samples: mesh: nrf52 : to solve remaining PTS issues
- f8d53e5d samples: drivers: Add sample application for LP5562
- 36ef1921 samples: led_lp5562: cmake_minimum_required added

Scripts (7):

- 94be858f scripts: west: sync with upstream
- b3d165f3 scripts: kconfig: Handle warnings generated during evaluation
- 8e740350 scripts/dts: extract_dts_includes: makes 'defs' and 'structs' global
- 69a211fe scripts: extract_dts_includes: use deepcopcy when accessing reduced
- 6686efb8 kconfiglib/menuconfig: Add functionality and improve symbol
information
- f24d4bb3 check-compliance: Simplify undefined Kconfig symbol check
- f8a8bdf3 scripts: gen_app_smem.py: Removing a needless file.

Storage (2):

- b9dead0a subsys: fs/nvs: Improved nvs for larger blocksizes
- 7d2e5981 subsys: fs/nvs: Rewrite for improved robustness

Testing (62):

- bb8cb5ac tests: pipe: Add description and RTM links
- f19a0538 tests: watchdog: Add new testcase and improve existing ones
- 55642afe tests: obj_tracing: Add obj_tracing tests for kernel objects
- dbc8789a tests: sched: Enhance tests to improve code coverage
- abd646c3 tests: net: ethernet_mgmt: Test the new get_config callback
- 6101e232 tests: net: TLS credentials subsystem tests
- 44be3943 tests/benchmarks/footprint/min/x86: disable I2C and SPI
- d05bee87 tests: kernel: profiling: Add description and doxygen group
- 87de383c tests: CONFIG_ARC_INIT is n by default
- 07a8c0cf tests: kernel: Add test to verify k_thread_user_mode_enter()
- f16a7ea8 tests: flash_map: Disable write protection before erase
- 08db8c19 tests: flash_map: Enable mpu and allow flash write
- 08470c0f tests: flash_map: Don't enable stdout console
- 45f34a43 tests: flash_map: Add k64-based boards to platform whitelist
- 966ab0e4 tests: net: ethernet_mgmt: Add Qav status tests
- 0b76567a tests: mem_protect: Add description and doxygen groups
- 67d2ddc6 tests: mem_protect: Add RTM links and description
- 334ce69e tests: net: ipv6: Must use Ethernet L2 instead of Dummy L2
- 71523ece tests: native_tasks: Add missing header
- 1ad369df tests: crypto: cbc_mode: Fix input length
- b8ca8cf9 tests: net: lib: coap: Added new functions to improve code coverage
- d380c891 tests: net: Add new TC mappings testcases
- 7930419a tests: net: ethernet_mgmt: Improve and finish Qav testing
- 05d9b046 tests: net: iface: Add test for net_if_ipv6_select_src_iface()
- 297efa51 tests: net: iface: Add test for net_if_select_src_iface() function
- cd3e5b56 tests/kernel: kernel.queue.poll: fails if MAX_THREAD_BYTES > 2
- b16b4e6e tests: kernel: add tests for dynamic threads
- 3a82aef5 tests: lib: mem_alloc: Add tests to validate dynamic allocation
- 45a1c1fb tests: net: ipv6: Wrong API struct was used for ethernet device
- 4ae9dd5a tests: mp: Add description, RTM links and doxygen group
- 477219b2 tests: syscall: Add description and RTM links
- 0975663e tests: x86_mmu_api: Add description and doxygen groups
- b32b39af tests: userspace: Remove extra call to same testcase
- 6910f15f tests: protection: Add description and doxygen group
- 234f48e1 tests: userspace: Add description and doxygen links
- dec8b9e5 tests: msgq: Add description and RTM links
- b3f4d6b0 tests: lifo: Add description and RTM links
- 68bde79e tests: kernel: device: Add RTM link, description and doxygen group
- b073b296 tests/booting/stub: remove CONFIG_ARC_INIT
- e21e6c1b tests: posix: improve pthread_key test
- 8525944c tests: power: refactor power_states test
- db9f6a90 tests: obj_tracing: Enhance object tracing test
- a54a887a tests: kernel: Add doxygen groups
- 648477c6 tests: static_idt: Add description and RTM links
- 4cc28663 tests: FIFO: Add description and RTM links
- 0ab496b5 tests/cmsis_rtos_v1: Introduce tests to make use of Thread APIs
- b2b53196 tests/cmsis_rtos_v1: Introduce tests to verify Thread instances
- a57d994a tests/cmsis_rtos_v1: Introduce tests to make use of Timer APIs
- a76556a2 tests/cmsis_rtos_v1: Introduce tests to make use of Mutex APIs
- c996d058 tests/cmsis_rtos_v1: Introduce tests to make use of Semaphore APIs
- d543e8c8 tests/cmsis_rtos_v1: Introduce tests to make use of mempool APIs
- 1b6eb7d1 tests/cmsis_rtos_v1: Introduce tests to make use of mailq APIs
- f4999f79 tests/cmsis_rtos_v1: Introduce tests to make use of messageQ APIs
- f7779895 tests/cmsis_rtos_v1: Introduce tests to make use of Signal APIs
- 7dc09636 tests: spi_loopback: Increase size of async callback thread stack
- f15bca29 tests: spi_loopback: Add zasserts to fix false passes
- ecd7504d tests: spi_loopback: Increase k_poll timeout
- 5b3a7ed7 tests: kernel: Do not use exact time in timing checks.
- 5f1d6264 tests: CONFIG_ARC_INIT is n by default
- 331659c7 tests/net: ieee802154: fragment: Fix build error
- 74e02e5d tests: cmsis_rtos_v1: add negative tests
- c9ca1994 tests: cmsis_rtos_v1: Add and enhance test suite





Zephyr development news, 20 August 2018

Marti Bolivar <marti@...>
 

Hello,

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


An HTML version is available here:
https://foundries.io/insights/2018/08/20/zephyr-news-20180820/


As usual, contents are broken down as follows:

- Highlights
- Important changes
- New features
- Bug fixes
- Individual changes: a complete list of patches, sorted chronologically
and categorized into areas, like:
- Architectures
- Kernel
- Drivers
- etc.


Highlights
==========

Breakage ahoy: The time since the last newsletter has seen a variety of
incompatible or breaking changes merged into mainline. As
usual, we've summarized these in the Important Changes
section below, along with descriptions of what developers of
affected applications should do to handle them. (A couple of
new features were included there as well.)

This newsletter covers commits in the following inclusive range:

- bb8cb5ac ("tests: pipe: Add description and RTM links"),
merged 26 July 2018
- 36ef1921 ("samples: led_lp5562: cmake_minimum_required added"),
merged 16 August 2018

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

Various net app settings renamed:

Various Kconfig variables that were formerly in the CONFIG_NET_APP_
namespace were moved into CONFIG_NET_CONFIG_. For example,
CONFIG_NET_APP_SETTINGS is now CONFIG_NET_CONFIG_SETTINGS.

The affected variables are (without the CONFIG_NET_APP_ prefix, for
brevity):

- SETTINGS, AUTO_INIT, INIT_TIMEOUT
- NEED_IPV4, MY_IPV4_ADDR, PEER_IPV4_ADDR
- NEED_IPV6, NEED_IPV6_ROUTER, MY_IPV6_ADDR, PEER_IPV6_ADDR
- IEEE802154_DEV_NAME, IEEE802154_PAN_ID, IEEE802154_CHANNEL,
IEEE802154_RADIO_TX_POWER, IEEE802154_SECURITY_KEY,
IEEE802154_SECURITY_KEY_MODE, IEEE802154_SECURITY_LEVEL

Out of tree applications will need to perform the appropriate renames. The
default settings of the Kconfig library will cause fatal errors on attempts
to assign to the old names in .conf fragments, which should help find any
uses.

This completes the work of splitting network configuration from the net-app
library, which is in the process of being replaced and deprecated, into a
new net-config library.

Network interfaces now require flags:

Layer 2 objects must now declare supported features via a new flags
field. Initial flags declare support for multicast and promiscuous mode,
and whether or not to join a solicited node multicast group. Existing
in-tree users have been updated; out of tree implementations will need to
take care of build errors in the changed NET_L2_INIT.

Kconfig now prefers first default:

The Kconfig library used by Zephyr no longer carries a local patch to make
it prefer later default settings in Kconfig option definitions. The
application boilerplate.cmake file thankfully emits a loud warning about
this, which can be silenced by creating a file named "hide-defaults-note"
in the Zephyr build directory.

This change is likely to bite any out of tree applications which define
their own default settings for Zephyr's Kconfig options and expect them to
override Zephyr's.

Affected applications should change from this pattern in their
application's KCONFIG_ROOT:

# OLD STYLE, for older Zephyr versions:

source "$ZEPHYR_BASE/Kconfig.zephyr"

config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
default your_value

to this:

# NEW STYLE, use this from now on:

config SOME_OPTION_IN_KCONFIG_DOT_ZEPHYR
default your_value

source "$ZEPHYR_BASE/Kconfig.zephyr"

Kconfig: gsource is gone, use source, osource, or orsource:

The Zephyr dialect of the Kconfig language previously featured a gsource
extension, which, like source, worked to include a Kconfig file within
another one, but also supported shell-like glob patterns. However, gsource
did not check if any files matched the pattern. This has been replaced with
a scheme in which source is globbing, and requires at least one file to
match. A new osource (optional source) works the way gsource used to, and
orsource is an optional source included by relative path (rsource, to
include nother source by relative path, already existed).

NVS rewritten:

The NVS storage layer has been completely rewritten, and has what appears
to be a backwards-incompatible format on the storage medium. Any
applications using this layer will likely need to have their storage
partitions set up anew.

In the new version, the storage medium can become "locked" in case of fatal
errors. When this occurs, writes are prevented, but the user can read
existing data which has been stored without error before re-initializing
the flash device.

In the previous version, metadata and user data were placed together on the
storage medium. This has been replaced with a new layout, which separates
data from metadata. The data layout has also been changed in ways which
reduces overhead on some flash devices, and allows for the latest items to
be searched first on reads, improving performance in some workloads.

Bluetooth ID changes:

Bluetooth LE peripherals built with Zephyr can now support multiple
identity addresses.

This new feature seems to have brought incompatible API changes, as various
functions now take u8_t id parameters which index into the array of IDs
returned by bt_id_get(). If broken by this change and in doubt about what
to do, BT_ID_DEFAULT (0) is provided as a recommended value.

The number of supported identities can be controlled with
CONFIG_BT_ID_MAX, and several routines (with documentation!) were
added to manage them:

- int bt_id_create(bt_addr_le_t *addr, u8_t *irk)
- int bt_id_get(bt_addr_le_t *addrs, size_t *count)
- int bt_id_reset(u8_t id, bt_addr_le_t *addr, u8_t *irk)
- int bt_id_delete(u8_t id)

There are new Bluetooth shell commands related to these as well:
id-create, id-delete, id-reset, id-show, and id-select.

The Bluetooth Settings API takes multiple identities into account.

Bluetooth dynamic device name changes:

Dynamic setting of the Bluetooth device name is now disabled unless
CONFIG_BT_DEVICE_NAME_DYNAMIC=y.

Build system use of target_link_libraries changed:

The build system's internals now use the CMake target_link_libraries()
signature which includes PRIVATE/PUBLIC/INTERFACE keywords.

This is incompatible with the "plain" signature, which does not use
these keywords.

This change was made for good reasons, but has the rather unpleasant side
effect of breaking the build in cases where the application CMakeLists.txt
used the "plain" signature, as Zephyr's build system internals tend to get
included into the top level file. Affected application developers are
advised that adding PUBLIC after the target name restores the same
behavior as the "plain" signature.

Arm toolchain renamed:

The Zephyr environment and CMake variables used to select the GNU toolchain
provided by Arm have changed; the old usage is now deprecated. Users of
this toolchain should make the following changes:

- Change the value of ZEPHYR_TOOLCHAIN_VARIANT from gccarmemb to
gnuarmemb
- The GCCARMEMB_TOOLCHAIN_PATH variable is now GNUARMEMB_TOOLCHAIN_PATH

This follows the replacement of the GCC ARM Embedded toolchain page with
the GNU Arm Embedded version:

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm

PyOCD on Python 3, now with Zephyr thread awareness:

Thankfully, this is not a breaking change, but it is welcome news.

The PyOCD project, used for flashing and debugging several Zephyr boards,
now supports Python 3. It's now possible to remove any Python 2 PyOCD
install and re-install it with pip3 install --user pyOCD (perhaps after
updating applications and toolchain configurations to handle the changes
discussed above.)

To add a carrot of incentive to upgrade, PyOCD has also now learned
Zephyr thread awareness. To play along at home:

1. Add CONFIG_OPENOCD_SUPPORT=y to samples/synchronization/prj.conf
2. Build the sample for any board which uses PyOCD (like frdm_k64f)
3. ninja debug
4. Type continue at the (gdb) prompt
5. Hit control-C to halt execution
6. Run info threads at the (gdb) prompt.

Example output:

(gdb) info threads
Id Target Id Frame
* 2 Thread 536874280 (Unnamed; Running; Priority 15) k_cpu_idle ()
at /home/mbolivar/src/zephyr/arch/arm/core/cpu_idle.S:135
3 Thread 536870912 (Unnamed; Ready; Priority 7) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
4 Thread 536874544 (Unnamed; Pending; Priority 7) __swap (key=0)
at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
5 Thread 536875032 (Unnamed; Pending; Priority 255) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69

Socket-based DTLS support:

The new sockets layer now has experimental support for the DTLS
protocol. It can be enabled with CONFIG_NET_SOCKETS_ENABLE_DTLS. Support
for creation of DTLS sockets, DTLS handshaking, send()/sendto(), and
recv()/recvfrom() is included. Demonstration code illustrating usage
was added to the echo_client and echo_server pair of samples.

This continues the work of remaking Zephyr's secure networking code as
a socket-based implementation, with TLS managed via a set of
nonstandard setsockopt() calls.

Syscall support for sockets:

The following socket-related APIs are now accessible from Zephyr user
space, if that is enabled: socket(), close(), bind(),
connect(), listen(), accept(), send()/sendto(),
recv()/recvfrom(), fcntl(), poll(), inet_pton(), and
getaddrinfo().

CMSIS RTOS v1 support:

Zephyr now supports version 1 of the CMSIS RTOS API. This is a common API
defined by Arm for Cortex microcontrollers, which provides abstractions for
common RTOS interfaces, such as multi-threading, mutual exclusion, CPU
time, memory pools, etc. At time of writing, official documentation on
usage within Zephyr mostly refers users to the KEIL CMSIS-RTOS
v1 reference page:

http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html

Support for this API can be included within a Zephyr application by
enabling CONFIG_CMSIS_RTOS_V1. The main header is <cmsis_os.h>, which is
a shim between the abstractions presented by the CMSIS RTOS API and
Zephyr's own kernel APIs. There is also a new lib/cmsis_rtos_v1
directory, which contains the implementation. A variety of test cases were
added to tests/cmsis_rtos_v1.

Features
--------

Arches:

The effort to support Arm v8-M's secure and non-secure worlds
continues with the building blocks necessary to transfer control flow
between the "secure" and "insecure" worlds. Zephyr has gained support
for building secure world images which export entry points as a
library that non-secure images can be linked against to call into, as
well as invocation of function pointers to non-trusted code from the
secure world. Support for this feature can be enabled with
CONFIG_ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS. A variety of other
related changes allow for controlling secure and non-secure world
exceptions, system reset behavior, and stack management.

The native POSIX pseudo-architecture now supports a mechanism for
executing code at various points in its initialization, power
management sequence, and shutdown. It can also dynamically manage
command line options with native_add_command_line_opts() and
native_cleanup_cmd_line(). See the NATIVE_TASK() macro defined in
its soc.h header for details. There appears to be some overlap here
with Zephyr's existing <init.h> APIs, but those do not allow for
task execution at sleep or exit times.

The x86, Arm, and ARC architectures grew the architecture-specific
code needed to implement safe copying to and from userspace discussed
in the kernel features below.

Bluetooth:

Various other features were merged in addition to the somewhat
breaking identity management changes discussed above.

Many (but definitely not all) of the changes merged during this period
improve Zephyr's feature set related to secure pairing.

New APIs include:

- An int bt_passkey_set(unsigned int passkey) routine, which can set
a passkey to be used during pairing, and can be enabled with
CONFIG_BT_FIXED_PASSKEY.

- The bt_conn_auth_cb struct, which contains application callbacks for
events of interest during authenticated pairing, now has documentation
for all of its fields. It also gained new callbacks for learning the
results of the pairing process, with signatures:

{{< highlight c >}}
void (*pairing_complete)(struct bt_conn *conn, bool bonded);
void (*pairing_failed)(struct bt_conn *conn);{{< /highlight >}}

The Bluetooth shell sports some new commands, mainly to exercise the
above new features:

- hci-cmd: this Swiss Army knife can be used to inject arbitrary HCI
commands into the system
- fixed-passkey: sets a fixed passkey to be used during pairing
using bt_passkey_set()
- the auth command now takes confirm as an authentication method,
which can be used to test passkey support

When Zephyr's Bluetooth stack is being built in a "combined" configuration
(i.e. host and controller on the same chip), the default for
CONFIG_BT_TINYCRYPT_ECC is now y. This implements elliptic curve
cryptography related HCI commands required to support LE Secure Connections
in software, using the TinyCrypt library. (This of course implies a
footprint penalty.)

Finally, access address generation now supports Coded PHY requirements.

Boards:

New board-specific peripheral and shield enablement includes:

- frdm_k64f now supports uart2, and has device tree settings for
the Wistron WNC-M14A2A LTE-M modem, which can be connected as a shield
- frdm_kl25z now supports the the MMA8451Q accelerometer attached to i2c0
- nrf52840_pca10056 also now supports the WNC-M14A2A
- nucleo_f207zg now supports USB and Ethernet
- up_squared now has I2C support (the Zephyr board configuration also
now works on all the marketed variants of the board hardware)

Build:

The Kconfig dialect also now features def_int, def_hex, and
def_string keywords, which specify the type of a config option and
set its default value in a single line.

The Zephyr SDK has been packaged for Arch Linux, and is available as
zephyr-sdk in the AUR:

https://aur.archlinux.org/packages/zephyr-sdk

Device Tree:

The RISC-V boards were all converted to use device tree.

Cortex M4 cores on i.MX devices which have a Cortex A core on the same
die now have device tree bindings and support for the Resource Domain
Controller (RDC), which allows safe sharing of other peripherals
between the cores. A variety of i.MX peripheral bindings now contain a
required rdc property, through which the relevant permissions can be
configured.

Documentation:

Zephyr's documentation was re-themed to use the popular Read the Docs
Sphinx theme. Zephyr's documentation continues to be hosted at
docs.zephyrproject.org; just the theme was changed.

Drivers:

About 30% of the total driver commits in this period affected a single
driver, for the Atmel SAM GMAC Ethernet peripheral. This now supports
the gPTP protocol which Zephyr learned about during the v1.13 cycle,
multiple transmit and receive queues, and 802.1Qav support. Whew.

Zephyr received initial support for modem drivers, which can be enabled by
setting CONFIG_MODEM=y. Modem-specific shell commands can be enabled with
CONFIG_MODEM_SHELL. There is a new "modem receiver" API and driver which
can be enabled using CONFIG_MODEM_RECEIVER; its purpose is to allow modem
drivers to communicate via a UART using custom protocols. The initial
device is the Wistron WNC-M14A2A (LTE / LTE-M) modem.

The UART driver core now supports registering user-specified callbacks with
arbitrary callback data via uart_irq_callback_user_data_set. This is a
backwards-compatible change; existing callbacks registered with
uart_irq_callback_set() will continue to work in the same way.

Support was added for the MMA8451Q accelerometer.

The I2S API is now userspace-aware. All memory buffers are copied.

The I2C driver core now supports up to 8 controllers. The initial user
is the DesignWare I2C driver.

On x86, the Apollo Lake SoCs now have PCI-based UART and I2C device
support.

STM32F2 devices now support Ethernet and USB OTG FS.

There is a new LED driver for the TI LP5562 device.

The SLIP and POSIX ethernet networking drivers now have LLDP support,
following addition of that protocol to Zephyr.

The POSIX ethernet driver can now execute user-defined scripts at
various points in time.

The console driver is starting to be refactored to more closely
resemble a UNIX-like TTY layer. Somewhat ominously, its APIs have been
marked "experimental" in Kconfig.

Nordic devices have an optimized implementation for the clock control
driver which provides k_cycle_get_32(). (This is important for users
of the new Logger subsystem on those devices, as Logger relies on this
routine being fast to retrieve timestamps with minimum overhead. This
propagated into the real time clock driver.)

External:

The Kconfiglib library was updated to revision 6aea8d0, bringing in
the changes discussed above.

TinyCrypt was updated to revision 3ea1a60.

Kernel:

Zephyr's userspace implementation now has all the necessary routines
for copying buffers to and from userspace in the kernel. Curious
readers are referred to the API documentation in
kernel/include/syscall_handler.h for details.

There is a new _k_object_recycle() routine, which can be used to
re-initialize a kernel object with permissions that only allow access
by the caller. This is intended for scenarios in which objects are
allocated and released to a shared pool.

The userspace implementation is now aware of net_context
structures. This was necessary to implement the argument validation
steps of system calls which operate on them.

Logging:

Since its initial merge, the Logger hexdump macros (LOG_HEXDUMP_INF()
and friends) now take an additional parameter. Their revised "signature"
is now:

{{< highlight c >}}
/* Likewise for DBG, WRN, and ERR. */
void LOG_HEXDUMP_INF(void *data, size_t size, const char *metadata);
{{< /highlight >}}

The final "metadata" parameter is new; any out of tree applications
using the API will need changes. The expected value is a string
literal which can be used to describe the data being
printed. Presumably, this makes it easier to distinguish the origin of
multiple different types of hexdump coming from the same module.

Networking:

Additional features not discussed above follow.

Experimental support for auto-configuration of link-local IPv4 addresses
was added, per RFC 3927. It can be enabled with CONFIG_NET_IPV4_AUTO (and
extra debugging can be enabled with NET_DEBUG_IPV4_AUTOCONF). A sample
application is in samples/net/ipv4_autoconf.

Support for the Link Layer Discovery Protocol (LLDP) was added, per
802.1AB. It can be enabled using CONFIG_NET_LLDP. Only support for
transmission of LLDP frames is included; received LLDP frames are
dropped. Sample code is in samples/net/lldp.

The network management layer for Ethernet gained support for
device-specific enable and disable routines in struct
ethernet_api. Ethernet also gained support for 802.1Qav (priority
routing for audio-video streams) requests; when Ethernet management is
enabled, the iface network shell command now prints Qav status.

The existing traffic class support saw the addition of a new choice
for the mapping between priority and traffic class. See this choice
option for details:

http://docs.zephyrproject.org/reference/kconfig/choice_174.html

The net_pkt structure used to store network packets has had routines
for linearizing data into a contiguous array, as well as appending
bytes. However, the underlying net_buf struct, which actually
implements the buffer management, was lacking in this regard. As part
of the modem support work, the relevant routines were moved into the
net_buf layer, with net_pkt wrappers left behind to avoid API
breakage.

The networking shell iface command now prints the supported hardware
capabilities for Ethernet interfaces.

Ethernet devices saw continued feature additions. They can now report
hardware-specific configuration. The initial user is a getter for the
number of priority queues. Support for MAC-based incoming packet
filters was also added.

If the (new) CONFIG_NET_STATISTICS_ETHERNET_VENDOR Kconfig option is
enabled, the stats command can now include vendor-specific statistics in
its output.

The DHCPv4 implementation got some love, reducing footprint through
increasing code reuse and cleaning up the code.

A variety of other structure sizes were also optimized.

Samples:

New sample support includes samples/sensor/mma8451q for MMA8451Q
accelerometers, WNC-M14A2A LTE-M modem support in lwm2m_client, a
variety of new features in the Bluetooth Mesh samples, and LP5562 LED
support in samples/drivers/led_lp5562.

Scripts:

The West implementation for flashing with nrfjprog can now
configurably mass erase or sector erase the underlying flash device.

The menuconfig script displays symbols in a more compact format, among
other improvements.

Testing:

As has become usual, a great number of tests have increased Doxygen
grouping and requirements traceability matrix annotations.

A variety of other test cases were added to cover several of the new
features discussed above.

Bug Fixes
---------

Arches:

A bug in the ARC MPU driver stack guard implementation was fixed.

The POSIX pseudo-architecture saw fixes related to, and stopped
silencing, the undef and implicit-function-declaration GCC
warnings.

Bluetooth:

A variety of fixes were merged, including a Mesh SeqAuth calculation
fix, increased robustness during pairing, the set PHY command status
response, the existence of keying material before doing encryption,
and storage of the Bluetooth device name in via the settings
subsystem.

Build:

A bug causing corrupt data copying into RAM during RISC-V
initialization was fixed.

The build system generator's Kconfig logic would previously get
confused if kconfig.py failed after creating the .config file. Since
has become more common since the addition of several helpful errors
which are emitted in response to malformed Kconfig fragments, the
confusion has been resolved.

The continued removal of redundant default n introduced into
Zephyr's Kconfig continues.

Various Kconfig patterns for describing the type (int, bool, etc.)
and prompt ("help string for the option") were merged into a single
line: <type> "prompt". This improves concision and avoids potential
confusion about (nonexistent) differences between the other styles.

Documentation:

A variety of errors and misspellings were corrected. The installation
documentation on Linux was cleaned up for readability.

Drivers:

The POSIX Ethernet driver got a fix for an unlikely memory leak.

The nRFx clock control driver saw some fixes related to clock status
checking.

The nRF5 entropy driver got a fix for an infinite loop.

The FXOS8700 and FXAS21002 sensor drivers (these peripherals are
available on some NXP FRDM boards) got fixes for initialization race
conditions.

Various issues in the CAN driver were fixed.

External:

The STM32F2 USB OTG HAL received a local patch to fix VBUS sensing
deactivation.

The STM32 HAL CAN APIs were switched to the legacy versions, restoring
Zephyr CAN functionality.

Kernel:

A kernel bug which allowed dynamically allocated thread objects to
potentially masquerade as other threads has been fixed.

A schedule bug affecting time slice update has been fixed. As part of
this effort, all scheduler time slices are now measured in ticks
rather than milliseconds.

The kernel's support for shared memory between threads was fixed;
users affected by the previous incorrect implementation include
systems using an ARM MPU.

Libraries:

The calloc() implementation in Zephyr's libc was failing to live up
to its contract to return zeroed memory; this has been fixed.

Logging:

A few fixes were merged, affecting modules which span multiple files,
runtime filtering, and compilation on non-GCC toolchains.

Networking:

VLAN tags are now properly set for ARP messages.

TCP servers now have their disconnection callbacks invoked correctly.

A couple of memory leaks were fixed, along with a TCP RST edge case.

The MQTT parser now properly handles UNSUBACK packets.

A couple of OpenThread addressing issues were resolved: duplicate
multicast addresses are no longer registered with their network
interfaces, and unicast addresses are now also registered with their
Zephyr network interfaces. The latter fix resolves an issue preventing
use of mesh-local endpoint identifiers.

Scripts:

The device tree management scripts were fixed to avoid destroying
shared data due to a shallow copy of a data structure.

Zephyr's Kconfig generation script no longer ignores warnings
generated during symbol evaluation.

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

Patches by area (417 patches total):

- Arches: 39
- Bluetooth: 39
- Boards: 11
- Build: 22
- Continuous Integration: 3
- Device Tree: 2
- Documentation: 25
- Drivers: 56
- External: 8
- Kernel: 15
- Libraries: 13
- Logging: 7
- Maintainers: 1
- Miscellaneous: 2
- Networking: 80
- Samples: 23
- Scripts: 7
- Storage: 2
- Testing: 62

Arches (39):

- 88f4b681 arch/x86: apollo_lake: add MMU regions for I2C controllers
- b3e68703 arch/x86: apollo_lake: add PCI related bits for UARTs/I2Cs
- 0b899205 arch/x86: update linker definition for x86 real mode
- 550225b6 native: Generalize native tasks
- f742d0e2 native: Allow cmd line options to be registered dynamically
- 55f6620c native_posix: Refactor cmd line options
- 3369a5ed arch: introduce exc_handle.h
- 9d3cdb35 x86: add z_arch_user_string_nlen
- 3cef6deb arm: add z_arch_user_string_nlen
- b1dec299 arc: add z_arch_user_string_nlen
- 9426a3cb arch: x86: set output format/arch per arch
- 61570342 arch/x86: always make BSS section MMU page align if X86_MMU
- a76fa45e native_posix: minor doc fixes
- c0ea40cd posix arch: Add missing header
- 00b07615 native_posix: Add missing headers and function prototypes
- 4388cde9 arch posix: Allow including XOPEN extensions
- 11aa0b80 posix arch: Do not disable warnings
- eab3f3f2 arm: _FaultShow: fix typo MMFSR -> UFSR
- 37cc2ccc arch: arc: fix a bug in mpu driver
- 9283ee7a arch: i.MX add RDC peripheral permission setting for
applications cores
- b996955e arch: arm: optimize _size_to_mpu_rasr_size function
- 034499af arch: arm: configure non-secure registers from secure firmware
- de784300 arch: arm: internal API to enable/disable SAU
- 97d5f60a arch: arm: configure NS stack pointer limit registers
- 28acaead arch: arm: add macro definition for vector key write permit value
- 179b8d15 arch: arm: API to configure fault target state
- 5bb3d015 arch: arm: API to configure Secure exception boost
- ba02c6d9 arch: arm: api for reading MCU SAU regions
- f8b5046b arch: arm: include GCC -mcmse compile option for secure firmware
- a0508180 arch: arm: API macros for CMSE non-secure function pointers
- d9cfbc28 arch: arm: macro API for defining non-secure entry functions
- 6e93eea3 arch: arm: api to permit/block NS system reset requests
- 3b79b283 arch: arm: API & implementation of SAU region configuration
- db3f6aab arch: arm: add option to define an NSC region
- f2bdee35 arch: arm: export entry veneers
- c4703661 arch: arm: soc: add STM32L433
- bb0b66e1 arch: arm: clean-up "default n" entries in Kconfig option definitions
- 970cfdb8 arch: riscv32: Move MEPC increment in irq_wrapper
- 218d7a0a riscv: Rename the FE310 SoC to Sifive Freedom

Bluetooth (39):

- 9b6ad406 bluetooth: add callback to notify pairing is complete
- e2e02029 Bluetooth: SMP: Fix minor coding style issues
- 8780636f Bluetooth: shell: Add hci-cmd command
- 4d10b04a Bluetooth: SMP: Fix missing NULL-checks for bt_auth
- 4fe8eddd Bluetooth: SMP: Don't return STK if it hasn't been generated yet
- db0e4d52 Bluetooth: Kconfig: Enable TINYCRYPT_ECC for combined builds
- 642db775 bluetooth: kconfig: Fix swapped 'range's on BT_RFCOMM_L2CAP_MTU
- 4752788c Bluetooth: Fix documentation and other issues with auth callbacks
- da8f62de Bluetooth: SMP: Remove redundant check for smp pointer
- ef70fc85 Bluetooth: SMP: Fix SMP context init when sending security request
- c446c826 Bluetooth: Add support for fixed passkeys
- b049ac12 Bluetooth: shell: Add command for setting fixed passkey
- e504aad2 Bluetooth: shell: Add pairing failed/complete callbacks
- 0ab27e68 Bluetooth: shell: Add support for pairing confirm-only callbacks
- 97da52bb Bluetooth: controller: Update AA generation for Coded PHY support
- 76320d21 Bluetooth: controller: Fix HCI LE Set PHY command status response
- 3ebb81ba Bluetooth: controller: Wait for stable k32src for connected roles
- 28d5a65a Bluetooth: SMP: Don't try to encrypt with a non-existing LTK
- 6ee8e419 Bluetooth: Mesh: Clarify confusing log message
- 304f26c3 Bluetooth: Userchan: Add missing headers
- 1329763a Bluetooth: Fix storing name in plain text
- 504584a9 Bluetooth: att: Add option to disable GATT writable name
- e0864a93 Bluetooth: controller: HAL: Separate simulated SOC in own header
- 3712fd34 Bluetooth: controller: remove unnecessary guards in hal headers
- 6b8af4f0 Bluetooth: Minor whitespace fixes
- 5708f1e8 Bluetooth: Add infrastructure to handle multiple identities
- 1d8dab81 Bluetooth: Add initial APIs for identity manipulation
- 3ed01b48 Bluetooth: Remove redundant BT_DEV_ID_STATIC_RANDOM flag
- e70c556d Bluetooth: Add full storage support for multiple identities
- cbb1b84f Bluetooth: Pass identity to connection and pairing clearing functions
- 93360497 Bluetooth: Remove bogus bt_keys_func_t typedef
- 3d3888c0 Bluetooth: Remove return parameter from bt_id_add/del
- 7dba2512 Bluetooth: Introduce bt_id_reset() API
- 7ec40e81 Bluetooth: shell: Add multiple identity support
- 47291330 Bluetooth: Add safe-guards for creating duplicate identities
- 346f815d Bluetooth: Introduce bt_id_delete() API
- 61ec5125 Bluetooth: shell: Add id-delete command
- 734eda39 bluetooth: tester: Increase SDU size to meet PTS requirement
- e4908119 Bluetooth: Mesh: Transport: Fix calculating SeqAuth

Boards (11):

- bcc95235 boards/x86: up_squared: add I2C configurations
- 7b0c7aab boards/x86: up_squared: support new devices and Atom SoC
- ee7f834e boards: frdm_kl25z: Add mma8451q to i2c in dts
- b9bbebca boards: 96b_argonkey, fix lsm6dsl label name
- d917f239 boards: arm: k64f: add settings for UART_2
- 01745c38 boards: arm: frdm_k64f: add settings to use WNC-M14A2A LTE-M modem
- 65af15bc boards: arm: nrf52840_pca10056: add settings for WNC-M14A2A modem
- 5fda25af Revert "mimxrt1050_evk: disable sanitycheck on this board
[REVERT ME]"
- 7433f75e mimxrt1050_evk: Update jlink device name
- 45d5d5db boards: riscv: Convert HiFive1 to DTS
- 107efdf2 boards: nucleo_f207zg: enable usb

Build (22):

- 15516ed0 linker: riscv: Relocate .eh_frame symbol
- 99306334 kconfig: remove whitelisting for ARC_INIT
- c1bf7350 cmake: Improve the error message when the compiler is not executable
- d1684a83 Kconfig: Clean up some symbol definitions
- 5402662d cmake: kconfig: Fix rerunning cmake after Kconfig warnings
- a500e7e0 cmake: kconfig: Fix broken menuconfig due to misspelling
- d46e2c7e ld: Don't use --start-group and --end-group
- 957262e3 build: Replace GCC ARM Embedded with GNU Arm Embedded
- b9e8cd11 cmake: Refactor usage of target_link_libraries on Zephyr libraries
- ec3eff57 Kconfig: Use the first default with a satisfied condition
- 3ed9328d Kconfig: Get rid of some leftover 'option env's
- a8aba2f8 Kconfig: Include Kconfig.zephyr last in sample Kconfig files
- d08a212e Kconfig: Document the new prefer-earlier-defaults behavior
- 9c93e8e8 Kconfig: Have CMake print a note about the changed 'default' behavior
- 83d2a47d cmake: Don't propagate zephyr_library_compile_options
- bf8efdbf genrest: Generate RST links in a less hacky way
- 55ee53ce cmake: Prepend 'cmake_minimum_required()' into 'app' build scripts
- 6682652a cmake: change policy CMP0000 to NEW
- 17f1b0ad Kconfig: Switch to improved globbing statements
- 0af60bc2 Kconfig: Document new def_{int,hex,string} extensions
- 8cf8db3a Kconfig: Use a short, consistent style for prompts
- 1186f5bb cmake: Deprecate the 2 symbols _SYSCALL_{LIMIT,BAD}

Continuous Integration (3):

- 632597eb coverage: kernel: poll: Cleanup redundant code to improve coverage
- a51fb782 coverage: tests: poll: Add missing poll event to improve
code coverage
- f3a6e8aa sanitycheck: Recommend installing "ply" instead of "python3-ply"

Device Tree (2):

- 4016136b dts: bindings: add generic yaml description for uart-devices
- 0b60f383 dts: Fix get_compat when parent compat is a list

Documentation (25):

- 4cac31b2 doc: fix doxygen error for BUILD_ASSERT_MSG
- d47bd0b5 doc: prepare for read_the_docs theme change
- d7d10904 doc: scripts: Updates for pyocd v0.11.1
- f6349c88 doc: simplify CONTRIBUTING, merge non-apache
- f3f266ea doc: more RTD theme tweaks
- 368826e9 doc: getting started: add Arch Linux package
- 7555476b doc: Replace title with logo in front page
- ac7753ee doc: Add getting started to README.rst
- cb243eae doc: Correct arch spellings in README.rst
- cd170531 Doc: installation_linux.rst: Feedback Updates
- 2cf47fed doc: tweak table CSS for caption location
- a0dbc7aa doc: Copy all doc/ contents and not just .rst files
- a33b15d2 doc: Remove workaround file
- d6c56d57 doc: Remove unnecessary copy statements
- 9a3d7a43 doc: fix misspellings in API docs
- 7c89b63b doc: fix kconfig misspellings
- 6750b8d2 doc: fix misspellings in docs
- 17d04524 doc: tweak doc build instructions
- 0c5a88a6 doc: Update OpenSDA document for flashing with jlink
- 5c8398da doc: switch to use RTD theme
- 2300a592 doc: fix errors in ipv4_autoconf sample doc
- d04eaf3b doc: Fix warning associated with GNU ARM embedded rename
- 3ffac998 doc: fix wrong board name in Nordic doc
- 3747b5ba doc: Document new app boilerplate requirement
- 896a6966 doc: Make Sphinx output directory configurable

Drivers (56):

- e482feac drivers: watchdog: Align nrf wdt driver to new nrfx
- 14112768 drivers: watchdog: Fix assert errors in nrf watchdog implementation
- 525b0ce8 drivers: eth: gmac: Restore original frags data after transmitting
- aabaf98c drivers: eth: gmac: Enable gPTP support
- 9099b248 drivers: eth: gmac: Use correct iface for gPTP over VLAN
- 7dc9831d drivers: eth: gmac: Disallow drastic rate changes
- 4e642f62 drivers: eth: gmac: Fix ptp clock rate re-calculation
- 75d23d59 drivers: eth: gmac: Add support for multiple hardware queues
- 3dd1101c drivers: eth: gmac: Minor reformatting
- a43ed0f4 drivers: eth: gmac: rework timestamping
- 982b4e14 drivers/i2c: extends Kconfig to support 8 controllers
- 67b48ab2 drivers/i2c: i2c_dw: extends driver to support 8 controllers
- 39ec52d2 drivers: eth: native_posix: Make sure sent pkt is freed properly
- abd417c0 drivers: eth: gmac: Implement the get_config callback
- 1b6e5f61 drivers: eth: gmac: Enable 802.1Qav support
- 9c0d7813 drivers: sensor: Add support for MMA8451Q (3-axis accelerometer)
- a10d1780 drivers/pinmux: stm32 fix ports_enable array definition
- 55767ade drivers: eth: gmac: Implement Qav status callbacks
- 45b1079b drivers: console: Kconfig: Improve native descriptions
- 23c92100 clock_control: nRF5x: Non-blocking 32KHz crystal oscillator startup
- 26d22b00 clock_control: nRF5x: Fix HFSTAT and LFSTAT check
- 0272a537 drivers: eth: gmac: Don't verify RX buffers count for unit tests
- 995411f4 drivers/i2c: kconfig: Clean up I2C Kconfigs a bit
- d775c2f5 drivers: crypto: Fix input len size for cbc decryption
- 57286afd drivers: uart: Allow to pass arbitrary user data to irq callback
- bdd2e591 drivers: eth: gmac: Fix idle slope setting
- 78b6dc6d drivers: eth: gmac: Do not implicitly enable Qav
- b15c3cb5 drivers: eth: gmac: Prefer routing packets based on TC
- ef96384d drivers: eth: gmac: Finish 802.1Qav support
- 9182d2e5 drivers: modem: add modem receiver (tty) driver
- 042d79e8 drivers: modem: add Wistron WNC-M14A2A LTE-M Modem Driver
- 8b3d4ab6 drivers: modem: add modem shell extension
- b4e36133 drivers: eth: native_posix: Exec program after creating zeth
- 34ff437b drivers: slip: Add LLDP support
- 3913f1ae drivers: eth: Enable LLDP support for native_posix board
- 0ffdd7fb drivers: eth: gmac: Don't use Qav code without priority queues
- 2681199c drivers: serial: uart_sam: Fix typo in param name.
- a2bfd819 drivers: spi: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- 841b8400 drivers: spi: nrfx: Remove "optional" from driver type choices
- 16e8860f drivers: i2c: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- ead39991 drivers: watchdog: nrfx: Remove false dependency on
CLOCK_CONTROL_NRF5
- f9aa9783 drivers: eth: native_posix: Allow user to manipulate zeth status
- ddb7f88f drivers: entropy: nrf5: Fix ENTROPY_BUSYWAIT implementation
- ed4f0ff3 drivers/sensor/fxos8700: Fix race condition during initialization
- 72cad66c drivers/sensor/fxas21002: Fix race condition during initialization
- 1dfd33b7 drivers: timer: nrf: Optimize k_cycle_get_32().
- 24abedbd driver: timer: nrf: Remove redundant RTC_COUNTER reads.
- 06c23f15 i2s: expose i2s APIs to user mode
- 2469097b drivers: nrfx: Allow simultaneous use of SPI_0 and I2C_0 on nRF52810
- 78d24763 subsys: console: Mark as EXPERIMENTAL.
- eb737280 drivers: pinmux: stm32: STM32F2 added ETH support to pinmux
and use it
- eaca7d78 drivers: ethernet: Kconfig: Document availability of eth_stm32_hal
- 39cb4b41 drivers: can: Fix Issue #8226
- 95b64fb7 subsys: console: Refactor code to allow per-UART "tty" wrapper
- ea9d4a79 drivers: usb: add support for USB OTG FS on STM32F2
- 41b7e7aa drivers: led: Add LED driver support for TI LP5562

External (8):

- 4dcfc870 ext: Atmel ASF: Add missing interrupt number definitions
- ba8d8350 ext: hal: atmel: sam: Add README for Atmel SAM E70 HAL
- 263282b2 ext: tinycrypt: Update revision
- d22cd76c CMSIS RTOS V1: Introduce CMSIS RTOS V1 API header file
- 57fda14f ext/hal: stm32cube: STM32F4: Enable legacy CAN API
- 6409f9a9 ext/hal: stm32cube: STM32F7: Enable legacy CAN API
- ee29e603 ext/hal: stm32cube: STM32L4: Enable legacy CAN API
- 8bb0e7a5 hal: stm32f2x: usbotg_fs: fix VBUS sensing deactivation

Kernel (15):

- 300b060e obj_tracing: Declare object trace list for queue
- 1f2eedff kernel: add z_arch_user_string_nlen prototype
- c8188f67 userspace: add functions for copying to/from user
- cef07486 userspace: add syscalls test case
- 4b22ba7e syscall: Move arch specific syscall code into its own header
- e58b6542 kernel: threads: assign index no. to dynamically created threads
- ee9a0615 kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 4a39b9ea kernel: sched: Use ticks as time unit in time slicing.
- 83fda7c6 userspace: add _k_object_recycle()
- 09c22cc4 userspace: add net_context as a kernel object
- 1a40990b syscalls: Define the syscall id's with '#define' instead of enum
- c69fb0d0 userspace: app_shared_mem: Fixed incorrect implementation.
- e670135f kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 2a26576b kernel: sched: Use ticks as time unit in time slicing.
- 3c7f9903 kernel: Do not use sys_clock_ticks_per_sec in _ms_to_ticks()

Libraries (13):

- 3641c25d libc: minimal: fix calloc()
- ccd1c218 lib/cmsis_rtos_v1: Implement support for thread APIs
- 2d7619ec lib/cmsis_rtos_v1: Implement support for osDelay
- 7e5f0b7b lib/cmsis_rtos_v1: Implement support for osKernelSysTick
- 7d3a5390 lib/cmsis_rtos_v1: Implement support for timer APIs
- 055da731 lib/cmsis_rtos_v1: Implement support for mutex APIs
- 45e67150 lib/cmsis_rtos_v1: Implement support for semaphore APIs
- aff8c511 lib/cmsis_rtos_v1: Implement support for mempool APIs
- 76fc443b lib/cmsis_rtos_v1: Implement support for kernel APIs
- 7c67140b lib/cmsis_rtos_v1: Implement support for Mail Queue APIs
- 3bb243c6 lib/cmsis_rtos_v1: Implement support for Message Queue APIs
- b5df23e4 lib/cmsis_rtos_v1: Implement support for Signal Event APIs
- 2fc836d2 lib: cmsis_rtos_v1: Fix timeout calculation in signals

Logging (7):

- 66111d7d logging: use BUILD_ASSERT_MSG instead of _Static_assert
- df8d4e96 logging: fix multi-file module support
- 55327a18 logging: fix runtime filtering initialization
- c859e2a2 logging: Replace ifdefs with if
- 3c63d05d logging: Add metadata to hexdump
- 2cb17a03 log: make name param explicit
- ebc3ce3a Revert "log: make name param explicit"

Maintainers (1):

- 3a257262 codeowners: Assign tests/boards/native_posix to aescolar

Miscellaneous (2):

- 4486478f shell: Add missing header
- 04b7838f misc: dlist: Fixed dlist.h error to pass checkpatch.pl script.

Networking (80):

- 09233e69 net/dhcpv4: Move definitions to header
- 3d5876d4 net/dhcpv4: Rename functions to follow domain related naming rules
- 6d74e262 net/dhcpv4: Reorder variable declaration
- 502912ac net/dhcpv4: Reuse generic IPv4 function relevantly
- bb6b2769 net/dhcpv4: Tiny style fixes
- 11ccf36a net/dhcpv4: Cleanup debug messages
- 2ba28dd7 net/dhcpv4: Unify timeout management in a unique k_delayed_work
- e487fc78 net: eth: mgmt: Minor formatting fix
- a10a1c26 net: eth: Add API callback to get hw configuration
- 3cd1425b net: eth: mgmt: Extend the management interface with a getter
- 9ffab9e6 net: arp: Fix ARP message sending if VLAN is enabled
- 2c1863ff net/ethernet: Add a way to configure MAC address filters into devices
- 21a27e88 net: l2: Move individual L2 to dedicated directories
- 96e794e6 net: openthread: Register OT unicast adresses in Zephyr
- 80e828b9 net: openthread: Don't regsiter mcast addresses in Zephyr
multiple times
- 00e37cbb net: IPv4 link local support
- f568be48 net: eth: mgmt: Add Qav status hooks
- cb3f30a0 net: shell: print info about priority queues
- 528f7f8f net: shell: Print supported features for ethernet interfaces
- 805e2f2c net: eth: mgmt: Merge 802.1Qav related mgmt requests
- c3eea5f6 net: net_app: Correctly notify server on TCP disconnection
- dd88711a net: eth: Vendor specific statistics
- bab35512 net: ipv4_autoconf: Fix requested IPv4 address in ARP packet
- 1f23d268 ip: route: disable LL address check when using dummy L2
- 7c776c8c net: eth: native_posix: Add missing headers
- c0487a06 net: tc: Fix priority to traffic class mappings
- 126602ac net: tc: Add other priority to traffic class mappings
- aed075ef net: ip: Fix net priorities definitions
- b6852e5a net: eth: mgmt: Add remaining 802.1Qav parameter types
- db577f00 net: buf: add linearize, append_bytes and skip APIs to net_buf
- b7e68664 net: sockets: Fix setsockopt coverity issues
- 2ff503b7 net: shell: Check strtol() conversion errors
- 9c26c3fa net: lwm2m: no need to cleanup net_app_ctx in RD client
- 59827626 net: l2: Add support for Link Layer Discovery Protocol (LLDP)
- ccfcdaba net: l2: Add flags to tell if L2 supports multicast
- 66244a0e net: if: No need to always join solicit node mcast group
- 1f855095 net: l2: Add promiscuous mode to L2 flags when applicable
- e75b6071 net: Fix credit-based shaper typos
- b8fdf3c6 net: if: Add net_if_ipv6_select_src_iface() function
- d0205693 net: if: Add net_if_select_src_iface() function
- f39ff76c net: if: Do not inline net_if_ipv6_addr_lookup_by_iface()
- d003d0e6 net: ipv4: Corrupted ARP pkt was sent instead of real IPv4 pkt
- 33e06441 net: ipv4: Minor refactoring
- fbac80bb net: ipv4: Refactor IPv4 header length handling
- bfa75168 net: Do not set appdata on a cloned packet
- c8b58904 net: ipv6: Fix memory leak
- 31f89b03 net: eth: Add start and stop L2 functions
- 06c4a950 net: icmpv6: Simplify the flow at net_icmpv6_get/set_xxx() calls
- 6521b9e4 net: tcp: Fix net_buf leak in case of low available net_buf count
- 7d55b7f1 net: icmpv4: Simplify the flow at net_icmpv4_get/set_xxx() calls
- ac92a01f net: ipv6: Refactor IPv6 header length handling
- 0aa437a1 net: ipv6: Fix regression in IPv6 cleanup
- 8b1f966b net: tcp: Handle RST packet when multiple flags are set
- 85db974e net: tls: Add DTLS protocol types
- b03a388d net: tls: Add socket option to set DTLS role
- 011b4f42 net: tls: Add timer handling for DTLS
- 3ad2bbce net: tls: Add cookie for DTLS
- 4aaffaff net: tls: Add DTLS peer address helpers
- 8719f9a8 net: socket: Extract flag related functions to internal header file
- 4c235dea net: tls: Add DTLS bio functions
- 6c5aaa07 net: tls: Handle HELLO_VERIFY_REQUIRED during DTLS handshake
- d021b8c6 net: tls: Adapt connect for DTLS
- bdc56cfe net: tls: Support DTLS send and handshake
- b1d82711 net: tls: Support DTLS recv and handshake
- 8697cc94 net: tls: Add timeout for mbetTLS read
- ae41ec1f net: tls: Make TLS poll implementation check mbedTLS data
- 800392e1 net: tls: Enable non-blocking DTLS handshake
- 7c487ba0 net: tls: Use EINVAL for NULL pointer error in option setters
- 18cec245 net: introduce system calls for zsock socket APIs
- 028aae1e net: config: Rename Kconfig options to correspond to library name
- 96abe861 net/mqtt: Fix function mqtt_parser
- 4b9d9809 net: if: Lower memory usage for IPv6 address, prefix and router info
- 7c7cfdda net: core: Always have a timeout when allocating a net_buf
- 4078e46e net: l2/lib: Always have a timeout when allocating a net_buf
- 7e3eaaa0 net: Use packed enums when applicable
- 14b4084d net: rpl: Kconfig: Fix 'Network type' choice default
- 355d58b0 net: http: One extra byte was sent in last chunk
- afa0e002 net: ipv6: Fix crash from fragmented packets
- 5d3bc8b3 net: pkt: Added new function net_pkt_append_memset() to
prefill packet
- d66e8077 net/dhcpv4: Use new net_pkt_append_memset() function

Samples (23):

- 9834b551 samples: net: gptp: Add support for Atmel SAM E70 Xplained board
- aa609faa samples: board: 96b_argonkey: remove led blinking
- 00dd90ef samples: ipm: improve sample metadata
- 9f817c8c samples: net: Allow to register more adresses for OpenThread
- c761002e samples: net/mqtt_publisher: Explicitly disable BT_TINYCRYPT_ECC
- fd1fec8a samples: net: IPv4 autoconf sample application
- 70a35e23 samples: sensors: mma8451q: Add accelerometer sample
- 926c341c samples: net: lwm2m: add wnc-m14a2a overlay .conf file
- 3e27187e samples: net: coaps_client: Increase IPv6 mcast table size
- 0b012257 samples: net: lwm2m: cleanup prj.conf
- c162bad3 samples: net: lldp: Sample application that enables LLDP support
- a564e640 samples: subsys: mgmt: mcumgr: smp_svr: documentation update
- d71a1dfe samples/driver/gpio : Updated gpio support
- b7c254fc samples: net: Add DTLS support to socket echo_client/echo_server
- df20ebd6 samples: boards: Fix incorrect min max range validation
- b8b230f2 samples: net: echo-client: Handle net_buf out-of-mem gracefully
- 38323783 samples: net: echo-server: Handle net_buf out-of-mem gracefully
- 26322d65 samples: mesh: nrf52: upgrade state binding
- 6efb173e samples: mesh: nrf52: Time filtering, Coding style & others
- 993c349a samples: mesh: nrf52: Transition Time support, Coding Style
- 0aafcd64 samples: mesh: nrf52 : to solve remaining PTS issues
- f8d53e5d samples: drivers: Add sample application for LP5562
- 36ef1921 samples: led_lp5562: cmake_minimum_required added

Scripts (7):

- 94be858f scripts: west: sync with upstream
- b3d165f3 scripts: kconfig: Handle warnings generated during evaluation
- 8e740350 scripts/dts: extract_dts_includes: makes 'defs' and 'structs' global
- 69a211fe scripts: extract_dts_includes: use deepcopcy when accessing reduced
- 6686efb8 kconfiglib/menuconfig: Add functionality and improve symbol
information
- f24d4bb3 check-compliance: Simplify undefined Kconfig symbol check
- f8a8bdf3 scripts: gen_app_smem.py: Removing a needless file.

Storage (2):

- b9dead0a subsys: fs/nvs: Improved nvs for larger blocksizes
- 7d2e5981 subsys: fs/nvs: Rewrite for improved robustness

Testing (62):

- bb8cb5ac tests: pipe: Add description and RTM links
- f19a0538 tests: watchdog: Add new testcase and improve existing ones
- 55642afe tests: obj_tracing: Add obj_tracing tests for kernel objects
- dbc8789a tests: sched: Enhance tests to improve code coverage
- abd646c3 tests: net: ethernet_mgmt: Test the new get_config callback
- 6101e232 tests: net: TLS credentials subsystem tests
- 44be3943 tests/benchmarks/footprint/min/x86: disable I2C and SPI
- d05bee87 tests: kernel: profiling: Add description and doxygen group
- 87de383c tests: CONFIG_ARC_INIT is n by default
- 07a8c0cf tests: kernel: Add test to verify k_thread_user_mode_enter()
- f16a7ea8 tests: flash_map: Disable write protection before erase
- 08db8c19 tests: flash_map: Enable mpu and allow flash write
- 08470c0f tests: flash_map: Don't enable stdout console
- 45f34a43 tests: flash_map: Add k64-based boards to platform whitelist
- 966ab0e4 tests: net: ethernet_mgmt: Add Qav status tests
- 0b76567a tests: mem_protect: Add description and doxygen groups
- 67d2ddc6 tests: mem_protect: Add RTM links and description
- 334ce69e tests: net: ipv6: Must use Ethernet L2 instead of Dummy L2
- 71523ece tests: native_tasks: Add missing header
- 1ad369df tests: crypto: cbc_mode: Fix input length
- b8ca8cf9 tests: net: lib: coap: Added new functions to improve code coverage
- d380c891 tests: net: Add new TC mappings testcases
- 7930419a tests: net: ethernet_mgmt: Improve and finish Qav testing
- 05d9b046 tests: net: iface: Add test for net_if_ipv6_select_src_iface()
- 297efa51 tests: net: iface: Add test for net_if_select_src_iface() function
- cd3e5b56 tests/kernel: kernel.queue.poll: fails if MAX_THREAD_BYTES > 2
- b16b4e6e tests: kernel: add tests for dynamic threads
- 3a82aef5 tests: lib: mem_alloc: Add tests to validate dynamic allocation
- 45a1c1fb tests: net: ipv6: Wrong API struct was used for ethernet device
- 4ae9dd5a tests: mp: Add description, RTM links and doxygen group
- 477219b2 tests: syscall: Add description and RTM links
- 0975663e tests: x86_mmu_api: Add description and doxygen groups
- b32b39af tests: userspace: Remove extra call to same testcase
- 6910f15f tests: protection: Add description and doxygen group
- 234f48e1 tests: userspace: Add description and doxygen links
- dec8b9e5 tests: msgq: Add description and RTM links
- b3f4d6b0 tests: lifo: Add description and RTM links
- 68bde79e tests: kernel: device: Add RTM link, description and doxygen group
- b073b296 tests/booting/stub: remove CONFIG_ARC_INIT
- e21e6c1b tests: posix: improve pthread_key test
- 8525944c tests: power: refactor power_states test
- db9f6a90 tests: obj_tracing: Enhance object tracing test
- a54a887a tests: kernel: Add doxygen groups
- 648477c6 tests: static_idt: Add description and RTM links
- 4cc28663 tests: FIFO: Add description and RTM links
- 0ab496b5 tests/cmsis_rtos_v1: Introduce tests to make use of Thread APIs
- b2b53196 tests/cmsis_rtos_v1: Introduce tests to verify Thread instances
- a57d994a tests/cmsis_rtos_v1: Introduce tests to make use of Timer APIs
- a76556a2 tests/cmsis_rtos_v1: Introduce tests to make use of Mutex APIs
- c996d058 tests/cmsis_rtos_v1: Introduce tests to make use of Semaphore APIs
- d543e8c8 tests/cmsis_rtos_v1: Introduce tests to make use of mempool APIs
- 1b6eb7d1 tests/cmsis_rtos_v1: Introduce tests to make use of mailq APIs
- f4999f79 tests/cmsis_rtos_v1: Introduce tests to make use of messageQ APIs
- f7779895 tests/cmsis_rtos_v1: Introduce tests to make use of Signal APIs
- 7dc09636 tests: spi_loopback: Increase size of async callback thread stack
- f15bca29 tests: spi_loopback: Add zasserts to fix false passes
- ecd7504d tests: spi_loopback: Increase k_poll timeout
- 5b3a7ed7 tests: kernel: Do not use exact time in timing checks.
- 5f1d6264 tests: CONFIG_ARC_INIT is n by default
- 331659c7 tests/net: ieee802154: fragment: Fix build error
- 74e02e5d tests: cmsis_rtos_v1: add negative tests
- c9ca1994 tests: cmsis_rtos_v1: Add and enhance test suite