Commit graph

41120 commits

Author SHA1 Message Date
Ulf Magnusson
0ce04d66c4 doc: dts: Linkify Kconfig syms and explain a Kconfig reference gotcha
Turn the CONFIG_* identifiers in the /chosen table into links to the
Kconfig reference.

Also explain why devicetree information doesn't show up in the Kconfig
reference.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-01-09 15:20:58 +01:00
Ulf Magnusson
5b497cf7ce doc: dts: Explain better how devicetree and Kconfig fit together
It's cryptic that some identifiers for devicetree-related stuff start
with DT_*, while others start with CONFIG_*. Explain what's going on,
and link to the Kconfig preprocessor documentation.

Also remove an early mention of bindings that might be confusing.
Bindings are much more about checking devicetree conformance than about
controlling output, though they do some of that too.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-01-09 15:20:58 +01:00
Ulf Magnusson
ca0c6a79d6 doc: dts: Add missing documentation for some /chosen properties
Not all /chosen properties were documented. Add the missing ones along
with the macros generated for them.

Found with some grepping for '\<zephyr,.*='.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-01-09 15:20:58 +01:00
Ulf Magnusson
51e7c55967 doc: dts: Fix outdated list of generated macro names
The *_ON_DEV_NAME macros generated from /chosen properties changed
prefix from DT_* to CONFIG_* in commit 8ce0cf0126 ("kconfig: Convert
device tree chosen properties to new kconfigfunctions"), but the
devicetree documentation still lists the old names. Update the
documentation with the correct anmes.

Also remove an outdated reference to
DT_SRAM_SIZE/DT_SRAM_BASE_REFERENCE, and give a complete list of
generated macros.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-01-09 15:20:58 +01:00
Christian Taedcke
5e94ac9aa9 net: ppp: Enable connection setup for windows
Before establishing the ppp connection, windows sends the string CLIENT
and expects the reply CLIENTSERVER from the modem.
This functionality is implemented in the new function
ppp_handle_client().
This feature must be enabled via Kconfig.

Signed-off-by: Christian Taedcke <christian.taedcke@lemonbeat.com>
2020-01-09 15:16:05 +02:00
Peter A. Bigot
f05cbb421d drivers: sensor: mcp9808: fix various problems and improve test
Correct handling of device encoded temperature values, which combine a
12-bit 2s complement signed value with a separate sign bit.  Rework
conversion between device and sensor temperature representations to
support negative temperatures in both domains.

Use a much simpler trigger configuration where the alert is driven by
comparator output, rather than as an interrupt that requires a pair of
I2C transactions to read and clear the flag.

Refactor the trigger infrastructure to use the setup/handle/process
idiom, which reduces duplicated code and to correctly detect alerts
present when the triggers are set.

Completely replace the sample with something that demonstrates
updating upper and lower threshold values to track moving
temperatures.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-01-08 20:33:51 -05:00
Ioannis Glaropoulos
c393f3f87a doc: interrupts: add documentation section for zero-latency IRQs
Add a simple documentation section for the Zero-Latency
IRQs feature supported by the kernel.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 19:57:56 -05:00
Daniel Leung
017a8eea4f xtensa: fix atomic_cas reporting value swapped even when not
The atomic_cas function was using incorrect register when determining
whether value was swapped. The swapping instruction s32c1i in
atomic_cas stores the value at memory location in register a4
regardless of whether swapping is done. In this case, the register a4
should be used to determine whether a swap is done. However, register
a3 (containing the oldValue as function argument) is used instead.
Since register a5 contains the old value at address loaded before
the swapping instruction, a3 and a5 contain the same value.
Since a3 == a5 is always true in this case, the function will always
return 1 even though values are not swapped. So fix it by using
the correct register.

Also, in case the value is not swapped, it jumps to where it returns
zero instead of loading from memory and comparing again.
The function was simply looping until swapping was done, which did not
align with the API where it would return 0 when swapping is not done
(regardless whether the memory location contains the old value or not).

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2020-01-08 19:57:05 -05:00
Johann Fischer
0c9109523e reel_board: enable SPI and display controller driver by default
Enable SPI and display controller driver by default.

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2020-01-08 17:55:19 -06:00
Frank Li
f6f9e6b00e boards: mm_swiftio: add board support for SwiftIO
Add new board to support SwiftIO

Signed-off-by: Frank Li <lgl88911@163.com>
2020-01-08 17:44:02 -06:00
Henrik Brix Andersen
835c118636 drivers: adc: mcux_adc12: fix DT_INST_2_* usage
Fix the usage of DT_INST_2_* defines in the NXP MCUX ADC12 ADC driver.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2020-01-08 17:32:13 -06:00
Gerson Fernando Budke
1d5983b2fe CODEOWNERS: Add @nandojve for /drivers/ieee802154/rf2xx
Add myself as code owner for Atmel AT86RF2xx driver.

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2020-01-08 16:42:55 -05:00
Alberto Escolar Piedras
0a21d3c455 tests: bsim_bt: Add EDTT based BT stack tests
Add some scripts to automatically run a set of BT conformance tests.
Each script has an associated file which selects which subset of tests
are run by that script.
The LL scripts are divided in 2 subsets so as to allow parallelizing
a bit the run (the LL tests take the longest).
Except these, all other sets are just divided by category.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2020-01-08 20:35:17 +01:00
Alberto Escolar Piedras
8be3f983ea tests: bsim_bt: Also compile edtt_ble_test_app in CI
To run the BLE EDTT tests in CI, compile also the BLE
HCI and GATT edtt_ble_test_app variants

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2020-01-08 20:35:17 +01:00
Alberto Escolar Piedras
c256d06aee Bluetooth: tests: Add edtt_ble_test_app
Added application for testing the bluetooth stack
from the EDTTool

Signed-off-by: Henrik Eriksen <heri@oticon.com>
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2020-01-08 20:35:17 +01:00
Alberto Escolar Piedras
f57df16011 manifest: Add EDTT to manifest
Add the EDTTool to the manifest.
This tool is used for conformance testing of the BLE stack

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2020-01-08 20:35:17 +01:00
Ioannis Glaropoulos
80992d041a tests: arch: arm: add test-suite for dynamic direct IRQs
We add a test-suite for the newly introduced feature of
ARM Dynamic Direct Interrupts.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 10:15:09 -08:00
Ioannis Glaropoulos
a24082d1be tests: arch: arm: move ZLI test to arm_irq_advanced_features suite
Move the zero-latency IRQ test into the new
arm_irq_advanced_features' test suite. Skip
running the test for non Mainline Cortex-M.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 10:15:09 -08:00
Ioannis Glaropoulos
0eb93c201b doc: list dynamic direct interrupts as ARM supported API
Document that the Dynamic Direct interrupts feature is
implemented and supported as an ARM-only API.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 10:15:09 -08:00
Ioannis Glaropoulos
a07cb30d18 arch: arm: cortex-m: implement support for dynamic direct interrupts
This commits implements the support for dynamic direct
interrupts for the ARM Cortex-M architecture, and exposes
the support to the user as an ARM-only API.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 10:15:09 -08:00
Ioannis Glaropoulos
33048680b0 arch: arm: introduce support for dynamic direct interrupts
With this commit we add support for Dynamic Direct interrupts
for the ARM Cortex-M architecture. For that we introduce a new,
user-enabled, Kconfig symbol, DYNAMIC_DIRECT_INTERRUPTS.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-01-08 10:15:09 -08:00
Krzysztof Chruscinski
95b4d37230 drivers: sensor: shell: Improved shell support for sensors
Added autocompletion to 'sensor get' command. After this change
device and channels are autocompleted. It is possible to provide
multiple channels for reading.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-01-08 12:59:46 -05:00
Krzysztof Chruscinski
efeb7fa771 drivers: sensor: hts221: Return error on not supported channel
When asserts were disabled then sensor accepted any channel in
hts221_channel_get(). Changed to return -ENOTSUP when invalid
channel is provided.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-01-08 12:59:46 -05:00
Joakim Andersson
900b4b0679 Bluetooth: GATT: Document notify callback return parameters
Document the possible return values of the notify callback and the
action it takes.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-01-08 18:25:11 +01:00
Joakim Andersson
0d0957841e Bluetooth: host: Document behaviour of the whitelist initiator.
Add documentation for the whitelist initiator behaviour, describing the
one-shot behaviour.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-01-08 18:25:11 +01:00
Peter Bigot
19a0f354ae drivers: sensor: ak8975: remove legacy reference to MPU6050
MPU6050 no longer using Kconfig to specify I2C addresses.  Reference
to the removed symbol causes QA diagnostics.  Remove the reference;
when AK8975 is converted to devicetree it may be possible to restore
the link between the sensors.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:40:04 +01:00
Peter Bigot
649500aeca samples: sensor: mpu6050: convert to devicetree
Add a sample for the MPU6050 that demonstrates on-demand and triggered
display of all sensor data.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:40:04 +01:00
Peter Bigot
fe018f51a2 drivers: sensor: mpu6050: convert to devicetree
Add a binding for the sensor and replace all Kconfig selection of
hardware parameters with devicetree property values.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:40:04 +01:00
Peter Bigot
ff5cadc52c samples: sensor: adt7420: rework for trigger testing
When a trigger was enabled the original implementation would do
nothing more than print "Waiting for a threshold event", without
describing what such an event would look like.

Rework to maintain a window of +/- 0.5 Cel around the most recent
in-window temperature, and reset that window whenever a trigger occurs
or a non-trigger reading is outside the window.  Time-out and display
the temperature if no event occurs in a reasonable time.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:38:43 +01:00
Peter Bigot
6ecc0c53c0 samples: sensor: adt7420: add nrf52_pca10040 devicetree overlay
Expand the set of hardware this can be tested with.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:38:43 +01:00
Peter Bigot
be904bc289 samples: sensor: adt7420: fix frdm_k64f devicetree overlay
The device address can only be 0x48 through 0x1B.  C6 is connected to
the FXOS870 and is not exposed on a header: switch to Arduino D0.

Move this to a boards subdirectory so we can add other overlays
without cluttering the root.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-01-08 16:38:43 +01:00
Stephanos Ioannidis
916a8eb3a5 arch: arm: Fix Cortex-R power management interrupt handling
The system power management handling code in the '_isr_wrapper' enables
interrupts by executing the 'cpsie i' instruction, which causes a
system crash on the Cortex-R devices because the Cortex-R arch port
does not support nested interrupts at this time.

This commit restricts the interrupt state manipulations in the system
power management code to the Cortex-M arch, in order to prevent
interrupt nesting on other AArch32 family archs (only Cortex-R for
now).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-01-08 15:20:40 +01:00
Ulf Magnusson
23a5b4963b dts: edtlib: Add 'type: path' for path references
Add binding support for a 'path' property type, for properties that are
assigned node paths. Usually, paths are assigned with path references
like 'foo = &label' (common in /chosen), but plain strings are accepted
as well as long as they're valid paths.

The 'path' type is mostly for completeness at this point, but might be
useful for https://github.com/zephyrproject-rtos/zephyr/issues/21623.
The support is there already in dtlib.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-01-08 08:02:00 -06:00
Maureen Helm
960779a622 west.yaml: Update hal_nxp to MCUXpresso SDK 2.7.0
Updates hal_nxp to pick up MCUXpresso SDK 2.7.0 for all available SoCs.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-01-08 07:59:00 -06:00
Stephanos Ioannidis
04e874485b x86: intel64: Split 'locore' and 'main' kernel images for QEMU
This commit splits the 'locore' and 'main' memory regions into
separate executable images and specifies the 'locore' as the boot
kernel, in order to prevent the QEMU direct multiboot kernel loader
from overwriting the BIOS and option ROM areas located in between
the two memory regions.

The Zephyr x86-64 kernel image consists of two discontiguous load
memory regions: 'locore' at 0x8000 and 'main' at 0x100000, but the
QEMU treats these as single contiguous memory region starting at
0x8000 and ending at (0x100000 + MAIN_IMAGE_SIZE - 1).

This results in the direct multiboot kernel loader overwriting the
BIOS and option ROM areas as part of the kernel loading process, and
causes any writable system regions to be corrupted (e.g. KVMVAPIC ROM).

By splitting the two discontiguous memory regions into separate images
and specifying only the boot image (i.e. 'locore') as the '-kernel',
it is possible to work around the QEMU direct kernel loading design
limitation.

This workaround is required to support the QEMU v4.2.0 and above.

For more details, refer to the issue zephyrproject-rtos/sdk-ng#168.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-01-08 07:49:24 -06:00
Oleg Zhurakivskyy
5e54a8f1c4 drivers: eth: e1000: Include sys/types.h for ssize_t
echo_server app doesn't compile (it uses minimal libc which lacks
unistd.h), let's switch to a more fine-grained include here.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 15:42:16 +02:00
Andy Ross
8bdabcc46b kernel/sched: Move thread suspend and abort under the scheduler lock
Historically, these routines were placed in thread.c and would use the
scheduler via exported, synchronized functions (e.g. "remove from
ready queue").  But those steps were very fine grained, and there were
races where the thread could be seen by other contexts (in particular
under SMP) in an intermediate state.  It's not completely clear to me
that any of these were fatal bugs, but it's very hard to prove they
weren't.

At best, this is fragile.  Move the z_thread_single_suspend/abort()
functions into the scheduler and do the scheduler logic in a single
critical section.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-01-08 14:21:10 +01:00
Andrew Boie
06df06b71e irq: add note about irq_lock/unlock access
On ARM irq_lock() simply fails silently instead of generating
an exception.

Fixes: #21735

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-01-08 08:20:48 -05:00
Oleg Zhurakivskyy
63ae98f29c net: tcp2: Drop snprintf() and use snprintk()
Drop snprintf() and use snprintk() as snprintk()
is more suitable for the networking code.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
043b4368b8 net: tcp2: Use CONFIG_NET_TCP_INIT_RETRANSMISSION_TIMEOUT
Use CONFIG_NET_TCP_INIT_RETRANSMISSION_TIMEOUT for the
retransmission timeout value.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
cbfc50ef37 net: tcp2: Use CONFIG_NET_BUF_DATA_SIZE for network buffer size
Use CONFIG_NET_BUF_DATA_SIZE for the maximum network buffer size
in TCP windows.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
2928b52988 net: tcp2: Delete unused tcp_pkt_linearize()
Delete unused tcp_pkt_linearize().

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
78c39d511b net: tcp2: Support arbitrary payloads in tcp_csum().
Support arbitrary payloads in tcp_csum().

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
0d67e3cb32 net: tcp2: Support tracking of net_buf_clone()
Support tracking of net_buf_clone().

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
78dd50bae4 net: tcp2: Support arbitrary payloads in TCP windows
Support arbitrary payloads in TCP windows.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
b3eb69ecf9 net: tcp2: Add a support for net_buf reservation
This simplifies the error handling in buffer allocation.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
fe1b0d067f net: tcp2: Fix the snprintf() format specification
Zephyr's snprintf() doesn't support %zd.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
c329e22f13 net: tcp2: Fix the clang compilation warnigs for native_posix
Fix the clang compilation warnigs for the native_posix target:

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
8a77b53053 net: core: Drop NET_ASSERT_INFO() macro
A single assert macro can serve a purpose here.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00
Oleg Zhurakivskyy
fe7d6e2eae net: buf: Add an assert in net_buf_alloc_len()
Add an assert in net_buf_alloc_len() for undersized alloc.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2020-01-08 14:10:21 +02:00