Commit Graph

44998 Commits

Author SHA1 Message Date
Martí Bolívar
25c07e2ad7 doc: document devicetree.h dependency ordinal APIs
Hide these away in the reference documentation for now. It seems
rather unlikely that they'll be used by anything other than internal
infrastructure to get started with.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-14 13:18:44 -05:00
Martí Bolívar
305379e944 devicetree: add first round of dependency ordinal info
Add the first API functions that directly deal with node dependency
ordinals as determined by edtlib:

- DT_DEP_ORD(node_id): node_id's ordinal
- DT_REQUIRES_DEP_ORDS(node_id): list of dep ordinals for node_id's
  direct dependencies
- DT_SUPPORTS_DEP_ORDS(node_id): list of dep ordinals for nodes
  depending directly on node_id
- DT_INST_ equivalents

This is not meant to be an exhaustive set of macros related to
dependency ordinals; rather, it's a starting out point meant to enable
initial struct device dependency tracking work. We can add more if
needed.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-14 13:18:44 -05:00
Joakim Andersson
1c21808808 Bluetooth: GATT: Fix alignment of bt_gatt_resubscribe parameters
Fix alignment of bt_gatt_resubscribe parameters.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-14 18:43:00 +02:00
Joakim Andersson
5c5cc87d74 Bluetooth: GATT: Move struct documentation inline
Move struct documentation of member variables to inline documentation,
which is consistent with the rest of the struct definitions.

Removes documentation of a struct variable that does not exist for
bt_gatt_ccc_cfg.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-14 18:43:00 +02:00
Joakim Andersson
e000c0a74a Bluetooth: GATT: Remove struct member variables alignment.
Remove struct member alignment that has become broken by the search
and replace of the uintX_t vs uX_t types.
Remove the alignment since maintaining this causes annoying whitespace
changes when a new variable is added with a longer type name.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-14 18:43:00 +02:00
Erwan Gouriou
417b4c925d west.yml: hal_stm32: Get latest F1 -pinctrl.dtsi files
Required to get all F1 i2c pinctrls

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-14 11:14:15 -05:00
Erwan Gouriou
cb22d8ece7 boards: stm32: Convert boards I2C pins to devicetree
Get STM32 boards configuring I2C using device tree and
remove configuration from pinmux.c

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-14 11:14:15 -05:00
Joakim Andersson
34cf1c74c2 Bluetooth: GATT: Fix regression in lazy loading of CCCs
Fix regression in lazy loading handling of GATT CCCs.
Bug introduced by: 00d370b09a
The commit failed to account for ccc_set_direct calling ccc_set.

Fixes: #29150

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-14 17:35:22 +02:00
Joakim Andersson
c13588a508 Bluetooth: GATT: Improve service changed static RAM usage when disabled
Improve GATT service changed static RAM usage when the feature has
been disabled.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-14 17:18:35 +02:00
Armando Visconti
d5c5a59e6e samples/shields: x_nucleo_iks01a2: Add shub mode sample
The x_nucleo_iks01a2 shield supports both standard (Mode 1) and
sensorhub (Mode 2) modes through proper dip switch selection.
For more information please refer to:
 https://www.st.com/en/ecosystems/x-nucleo-iks01a2.html

This commit moves the original (Mode 1) support under 'standard'
directory and adds the Mode 2 support into 'sensorhub' directory.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2020-10-14 08:41:41 -05:00
Armando Visconti
28390d71f6 board/shields: x-nucleo-iks01a2: Add support to shub mode
Add the overlay file for sensorhub mode and update the
shield documentation.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2020-10-14 08:41:41 -05:00
Thorvald Natvig
e212e4c65a boards: arm: efm32gg_*: Enable OpenOCD
This enables OpenOCD for the EFM32GG11 development kits, but keeps
the default as jlink.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 08:35:20 -05:00
Thorvald Natvig
c3e2a0205a boards: arm: efm32gg_*: Enable SWO logging
This enables SWO logging for the EFM32GG11 development kits.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 08:35:20 -05:00
Thorvald Natvig
b0884498e4 boards: arm: efm32gg_*: Use 72Mhz HFRCO to drive CPU
This makes the 72Mhz HFRCO drive the MCU HF clock, and only uses
the HFXO to drive the ethernet clock.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 08:35:20 -05:00
Thorvald Natvig
8db1e20639 boards: arm: efm32gg_*: Enable TRNG
This defines the TRNG for EFM32GG11 and enables it for trng0
in the dts for the matching development kits.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 08:35:20 -05:00
Thorvald Natvig
f629d4edae boards: arm: efm32gg_*: Enable watchdog
This defines wdog0 and wdog1 for the EFM32GG11 MCU and enables wdog0
in the dts for the matching development kits.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 08:35:20 -05:00
Martí Bolívar
f752c5eeec west build: fix --pristine on early build system failure
The west build command has historically tried not to rm -rf
directories that don't look like zephyr build directories. The way it
does this is by checking for the presence of a CMake cache
with a Zephyr-specific variable (ZEPHYR_TOOLCHAIN_VARIANT) in it.

The problem with this approach is that if the build system fails
before this cache variable is set, the directory doesn't look like a
zephyr build directory, and therefore west build won't make it
pristine even with --pristine=always, even though build directories
resulting from failed runs like that are almost certainly
irrecoverably broken and need to be made pristine before anything will
work.

This leads to users having to rm -rf their directories manually, which
is not so nice.

To avoid this from happening, just check for ZEPHYR_BASE, which is
set early on in ZephyrConfig.cmake in 'modern' zephyr build systems.
Keep the ZEPHYR_TOOLCHAIN_VARIANT check in place for compatibility.

We could consider being less selective and just using shutil.rmtree()
whenever we have --pristine=always, but that would be a bigger
behavioral change than I'm comfortable doing without a good reason.

Fixes: #28876
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-14 07:22:32 -05:00
Armand Ciejak
430c229568 eth: mcux: Use different RX and TX buffers for each instance
Before the same buffers were used by both instances leading to
data corruption.

Signed-off-by: Armand Ciejak <armand@riedonetworks.com>
2020-10-14 07:19:09 -05:00
Martin Jäger
cd908d9085 boards: arm: stm32: use DT for ADC pinmux
Use the new DT facilities to configure ADC pinmux on all boards with
STM32 MCUs currently supporting the ADC.

Signed-off-by: Martin Jäger <martin@libre.solar>
2020-10-14 07:15:12 -05:00
Martin Jäger
72947484f1 dts: arm: stm32h7: Fix adc1/2 nodes
While the STM32H7 features a special dual mode operation for ADC1 and
ADC2, the register specified for adc1_2 node was actually the one for
ADC1 in normal single mode operation.

This commit fixes register for dual mode and adds adc1 and adc1 nodes.

Signed-off-by: Martin Jäger <martin@libre.solar>
2020-10-14 07:15:12 -05:00
Martin Jäger
72d395a897 drivers: adc: stm32: add support for pinmux
Add support for DT based pinmux configurations.

Signed-off-by: Martin Jäger <martin@libre.solar>
2020-10-14 07:15:12 -05:00
Jakub Rzeszutko
6ed13678b8 adc_shell: rework commands
ADC shell commands can be only executed on the property label
existing in the device tree. It is realized by the dynamic subcommand
returning existing ADC Label.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2020-10-14 14:12:54 +02:00
Jakub Rzeszutko
333e5e0166 adc_shell: extend channel command
The channel command has been extended with subcommands: id, positive,
and negetive. Some boards require positive input configuration before
measurement can be started.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2020-10-14 14:12:54 +02:00
Jakub Rzeszutko
fb653608b4 adc_shell: use shell to validate arguments count
Use dedicated shell macros so argument count can be validated before
the command handler is executed. This change simplifies the command
handlers implementation inside the adc_shell file.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2020-10-14 14:12:54 +02:00
Jakub Rzeszutko
ceb3c4c576 adc_shell: introduce dictionary commands
Changed gain and reference commands to dictionary commands.
This change removes an obsolete look-up table (string <-> value)
for gain and reference commands.
Now, each modification of gain or reference value will require only
a dictionary command update.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2020-10-14 14:12:54 +02:00
Erwan Gouriou
91e9fde778 drivers/serial: stm32f1: REMAP_FULL is not a possible remap value
'remap' value can never be REMAP_FULL for usart.
Fix this value depending on the usart instance.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-14 07:11:46 -05:00
Krzysztof Chruscinski
2d247ccf70 tests: drivers: clock_control: Change errno in the test
Aligned error code to API change.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:56 +02:00
Krzysztof Chruscinski
b5919479c4 drivers: clock_control: nrf: Change errno for clock_control_async_on
Aligned returned errno with API.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:56 +02:00
Krzysztof Chruscinski
61f710b47c doc: release-notes: Add note about clock control API change
Added note about change in clock_control_async_on

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:56 +02:00
Krzysztof Chruscinski
a348cec400 drivers: clock_control: Change clock_control_async_on parameters
Stable API change: modify parameters of clock_control_async_on which
previously took a structure which contains list node, callback and user
context. Removing list node and replacing structure with two parameters:
callback and user context. List node is removed because it has no use
in current API.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:56 +02:00
Krzysztof Chruscinski
a1a0ffd0d1 board: arm: nrf: Set uart0 compatible to nordic,nrf-uarte
Update nordic boards to use UARTE driver for UART0 by default.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:25 +02:00
Krzysztof Chruscinski
db6bfde8b3 drivers: serial: nrfx_uarte: Refactoring poll_out
Refactoring poll_out to be ready for handling preemption. uart_tx and
uart_fifo_fill modified so they are resilient to being preempted by
uart_poll_out.

Refactored uart_poll_out implementation to be common for interrupt
driven API and asynchronous API. In both APIs active state is detected
by evaluating state of ENDTX and TXSTOPPED events. If anyone is set it
means that new transfer can be started.

Patch is fixing existing issues:
- potential bytes dropping with flow control enabled
- busywaiting for ENDTX (asynchronous API) - poor performance
- potential bytes dropping during preemption
- potential uart_tx returning -EBUSY when interrupted poll_out

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:25 +02:00
Krzysztof Chruscinski
00edf738c5 tests: drivers: uart: Add test suite for preemption resilience
Added test which is calling uart_poll_out from various contexts and
asynchronous/interrupt driven API. Test is validating that calls
can be preempted at any moment and no data is lost.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:25 +02:00
Maureen Helm
f8924af3ce dts: arm: Fix k6x ethernet base address
Commit ac31c4e458 updated the mcux
ethernet driver to get the ethernet peripheral base address from device
tree instead of an nxp hal preprocessor macro. This exposed an error in
the k6x device tree and caused a runtime assertion in networking
applications on the frdm_k64f board:

ASSERTION FAIL [instance < (sizeof(s_enetBases) / sizeof((s_enetBases)[0]))] @ WEST_TOPDIR/modules/hal/nxp/mcux/drivers/kinetis/fsl_enet.c:323

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-10-14 07:05:21 -05:00
Armand Ciejak
6a110f93c0 net: ip: dhcpv4: Add randomization to message interval
Add +1/-1 second randomization to the timeout as per RFC 2131
chapter 4.1.

Signed-off-by: Armand Ciejak <armand@riedonetworks.com>
2020-10-14 14:59:39 +03:00
Armand Ciejak
b98d3b125c net: ip: dhcpv4: Limit message interval to a maximum of 64 seconds
Clip the timeout to 64 seconds, this avoids the timeout value to
increase to high values (e.g. several years).

Signed-off-by: Armand Ciejak <armand@riedonetworks.com>
2020-10-14 14:59:39 +03:00
Armand Ciejak
ab5fd19c2b net: ip: dhcpv4: Add dhcpv4_update_message_timeout()
This avoids code duplication. The same logic was present
in dhcpv4_send_request() and dhcpv4_send_discover().

Signed-off-by: Armand Ciejak <armand@riedonetworks.com>
2020-10-14 14:59:39 +03:00
Ningx Zhao
fe2787a665 Tests: ringbuffer: Improve the description cases
The existing testcase's doxygen describes are the general
implementation idea of a function.On this basis, adding
more descriptive statements to describe which conditions
need to be preset when running the testcase, which test
techniques are applied, and describe the testcase Design
steps in detail. Make it more readable.

Signed-off-by: Ningx Zhao <ningx.zhao@intel.com>
2020-10-14 07:43:39 -04:00
Thorvald Natvig
4d0750920b drivers: ethernet: eth_gecko: Fetch MAC address from device info
If neither a random address nor a specific local address is in the
device tree, then use the MAC address from the device information page.

Signed-off-by: Thorvald Natvig <thorvald@natvig.com>
2020-10-14 12:31:49 +03:00
Ryan Erickson
72d54055a3 drivers: modem: hl7800: UDP socket not closed
Ensure UDP socket is always closed when offload_put is called.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2020-10-14 12:30:45 +03:00
Jukka Rissanen
d3283231a5 net: tcp2: Socket was accepted too early
The TCP2 was calling accept callback before actually finalizing
the connection attempt.

Fixes #29164

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2020-10-14 12:17:54 +03:00
Andrew Boie
c1ccd6b14e tests: sys_mutex: remove stack size override
This was causing stack usage to be right on the margin
for some platforms, without a clear reason why it
needs to be here (it was copied from another test case
which no longer exists).

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-10-13 17:16:47 -07:00
Andy Ross
55a85771b0 arch/x86: Make EFI copies bytewise
Originally the EFI boot code was written to assume that all sections
in the ELF file were 8-byte aligned and sized (because I thought this
was part of some platform spec somewhere).  This turned out to be
wrong in practice (at least for section sizes), so the requirement was
reduced to 4 bytes.  But now we have a section being generated
somewhere that turns out to violate even that.

There's no particular value in doing those copies in big chunks.
There's at best a mild performance benefit, but if we really cared
we'd be using a more complicated memcpy() implementation anyway.
Replace the loop in the C code with a bytewise copy, change the size
field in the generated header to store bytes, and remove the
assertions (which were the failuers actually being seen in practice)
in the script that were there to detect this misalignment.

Fixes #29095

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-10-13 14:07:24 -07:00
Flavio Ceolin
dc68e35ad2 tests: cmsis_rtos_v2: Fix stack overflow
Increase the stack to avoid overflow problems.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2020-10-13 20:04:31 +02:00
Flavio Ceolin
0173063e50 tests: cmsis_rtos_v2: Fix a race condition
Both threads, 4 and the ztest_thread (test_thread_join) where
joining thread5. If thread 4 is scheduled before the
main thread it will be dead before the main thread
had chance to join it. Just changed thread 4 priority to ensure that
this problem does not happen.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2020-10-13 20:04:31 +02:00
Peter Bigot
4a0a196f57 tests: uart_async_api: fix fault accessing cached device pointer
The cached device pointer must be placed in memory that allows user
mode invocation of the test functions to access it.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-10-13 20:01:08 +02:00
Joakim Andersson
374cbdd124 Bluetooth: GATT: Refactor use of 16-bit UUID core types
Refactor use of 16-bit common GATT UUID types where a complete UUID
object is declared on the stack only to use the 16-bit value.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-13 19:51:49 +03:00
Daniel Leung
41967f999f esp32: workaround esptool linker sections limit
When converting ELF to a flashable image, the esptool can only
process up to 16 ELF sections. Zephyr has been happily grouping
similar objects into linker sections which can easily go over
esptool's limit. This patch consolidates the kernel, net, log,
and shell objects into their own sections.

Also remove the app_noinit section as no one is emitting
anything into that section, and it's not being used by other
arch/SoC/boards in Zephyr.

Fixes #20980

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2020-10-13 08:53:39 -07:00
Maximilian Bachmann
fd059fe1f2 include/posix: fix extern "C" placement
both parts of extern "C" should be placed inside

Signed-off-by: Maximilian Bachmann <m.bachmann@acontis.com>
2020-10-13 10:05:30 -05:00
Armando Visconti
de5135b05e modules/hal_st: Align sensor drivers to stmemsc HAL i/f v1.03
Align all sensor drivers that are using stmemsc (STdC) HAL i/f
to new APIs of stmemsc v1.03.

Requires https://github.com/zephyrproject-rtos/hal_st/pull/5
(merged as b52fdbf4b62439be9fab9bb4bae9690a42d2fb14)

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2020-10-13 09:46:08 -05:00