Commit graph

38088 commits

Author SHA1 Message Date
Joakim Andersson
58908aa5d0 Bluetooth: host: Fix missing connection id checks
Fix issue where a new connection with the same peer would use the CCC
from from first connection, despite different local identity.
Since there is no CCC for the new connection yet this caused the
application to think that CCC was enabled but the remote device had not
yet subscribed.

Fix this issue by making the id as an input to the peer address check
function. This will force us to make the check every time. This commit
might also fix similar issues not yes discovered as the ID check was
missing in a few other places as well.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-02-21 21:28:30 +02:00
Joakim Andersson
4e829eb544 Bluetooth: host: Rename acl context id to index
Rename the acl buf context id to index since to avoid confusing it with
the conn object ID parameter. Especially the bt_conn_lookup_id function
was creating confusion.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-02-21 21:28:30 +02:00
Martí Bolívar
8f740f9edf doc: dts/howtos.rst tweaks
A couple of tweaks and a TODO. I think this page could still use some
more love.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-21 12:42:40 -06:00
Martí Bolívar
9fbe872172 doc: dts/macros.rst improvements
Syntax highlight all the DTS fragments, add more internal
cross-referencing to making jumping around the HTML easier, and tweak
the language, filling in a missing piece here and there.

Fix a couple of DTS syntax errors caught by adding highlighting.

Add an ABNF grammar for the macros generated by DT, along with
some comments about why the current grammar is not ideal from a
generality point of view.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-21 12:42:40 -06:00
Martí Bolívar
0bcf84b155 doc: dts/intro.rst improvements
Syntax highlight all the DTS fragments and add some more explanatory
text.

Split the content about important properties into its own section, and
add a similar section about unit addresses.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-21 12:42:40 -06:00
Martí Bolívar
98c1828254 doc: dts/bindings.rst improvements
Add more cross-references, improve section titles, syntax highlight
DTS fragments, and improve some descriptions.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-21 12:42:40 -06:00
Andrew Boie
896e32b414 kernel: remove problematic pend() assertion
This assertion, if built in, allows users threads to crash
the kernel in a critical section by passing a negative timeout
value, creating a DoS attack vector.

Remove this assertion, immediately below it there's a check
which just resets it to 0 anyway.

Fixes: #22999

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-02-21 08:57:07 -08:00
Carles Cufi
2be22c0473 Bluetooth: tester: Update GAP cmds/evts to the latest BTP spec
Fill in all the missing commands and events in the latest BTP
specification.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-21 18:17:59 +02:00
Rubin Gerritsen
fa241f0249 bluetooth: Add decoding for BLE 5.2 version string
The BLE 5.2 specification has been assigned the version number 0x0b.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2020-02-21 16:53:16 +02:00
Ravi kumar Veeramally
01867fa28c tests: net: Simple test for net_pkt clone
Added simple test case for net_pkt_clone() to verify
cursor position after cloning.

Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2020-02-21 16:49:14 +02:00
Ravi kumar Veeramally
3ce7f89a8a net: pkt: Restore pkt cursor after cloning
net_pkt_clone() initializes the original packet cursor
and clone the packet. But it doesn't restore the cursor
back to original position.

Issue noticed when mDNS resolving fails when mdns responder
is also enabled.

net_conn_input(), in case of multicast packet, connection
handler clone the packet and deliver to matching handler.

Example case: dns_resolver and mdns_responder both register
handlers for 5353 port. After first clone original packet
cursor moved back to starting position. But first cloned
packet cursor is set properly. Second time cloning makes
cursor position to set to zero. Which makes second packet
handler header unpacking goes wrong.

Fixes #21970.

Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2020-02-21 16:49:14 +02:00
Stephanos Ioannidis
573db5af60 doc: release: Add ARM Cortex-R release notes
Add ARM Cortex-R architecture release notes

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-02-21 13:58:56 +02:00
Stephanos Ioannidis
451040aabf doc: release: Add ARM GIC release notes
Add ARM Generic Interrupt Controller (GIC) release notes

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-02-21 13:58:56 +02:00
Ioannis Glaropoulos
a9eaa28f4c doc: release: move CC2650 removal to Boards' section
We move the removal of the CC2650 board to the
section about ARM Boards (add, remove).

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-02-21 13:58:56 +02:00
Ioannis Glaropoulos
1209989358 doc: release: v2.2.0 release notes for ARM architecture
Release notes for ARM for v2.2.0 Zephyr release.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-02-21 13:58:56 +02:00
Ioannis Glaropoulos
12497f1eb5 doc: release notes: change kernel to RTOS
Change Zephyr kernel to Zephyr RTOS in Release Notes'
title for v2.2 release, stressing that we deliver an
RTOS instead of a kernel only. Consistent with Zephyr
2.0 release notes.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-02-21 13:58:56 +02:00
Andrzej Puzdrowski
5e4d06cfd1 manifest: mcuboot 1.5.0 revision
Introduce exact 1.5.0 mcuboot release version
Difference to previous reference:
- imgtool: fix passing --erased-val with 0xff value
- mcuboot internal sim patches (not affected zephyr)
- release note ect.
- introduced default recovery trigger pin configuration for nRF5340

** No mcuboot embedded C code changes at all. **

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2020-02-21 13:58:37 +02:00
Carles Cufi
cee1954ac3 Bluetooth: tester: Add abundant logging in GAP
Log all error conditions in GAP for easier debugging.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-21 13:42:07 +02:00
Carles Cufi
7f5ae21a6d Bluetooth: tester: Add logging in core handlers
Add warnings when something goes unhandled.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-21 13:42:07 +02:00
Vinayak Kariappa Chettimada
cc468e89d0 Bluetooth: controller: Fix ticker resolve collision implementation
Fix ticker resolve collision implementation for incorrect
ticks accumulation and the calculation of next period.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-02-21 11:38:37 +01:00
Vinayak Kariappa Chettimada
ae9bf5e440 Bluetooth: controller: split: Fix radio in use during flash op
Fix a race condition in radio abort requested by flash
driver. It is possible that during abort function execution,
PPI setup to start radio fires. Hence, check explicitly in
cleanup function for radio being in use and disable it.

Fixes #22945.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-02-21 11:38:37 +01:00
Vinayak Kariappa Chettimada
459ff3f83e Bluetooth: controller: Fix BT_TICKER_EXT dependency
BT_TICKER_EXT depends on BT_TICKER_COMPATIBILITY_MODE not
being selected.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-02-21 10:55:51 +01:00
Vinayak Kariappa Chettimada
a749e28d98 Bluetooth: controller: split: nRF: Use ticker compat mode as default
Use the old ticker compatibility mode implementation as
default for nRF5x Series SoCs.

Fixes #22926.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-02-21 11:38:20 +02:00
Andrew Boie
8dec1beffe samples: pi: fix sample.yaml
Whitelists are bad; configuration filters scale much better.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-02-21 07:45:04 +02:00
Anas Nashif
82e0066601 ci: support license check with topic branch with v3
When determining added files, support branches other than master.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-02-20 18:22:58 -06:00
Carles Cufi
b01cd4c7bb Bluetooth: tests: tester: Add an init log message
Add a log message to let people running the test know that the tester
booted up correctly.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-20 21:37:33 +02:00
Carles Cufi
5af621282e tests: bluetooth: tester: Add a config for the 52840 DK
Add a configuration file for the nRF52840 DK so that it uses RTT for
debugging and enables more protection measures.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-20 21:37:33 +02:00
Carles Cufi
6de5c4b7b3 tests: bluetooth: tester: Clean up configuration
- Use the built-in mechanism for configuration overlays
  (having a boards/ folder with <board>.conf fragments)
- Clean up variables that were giving warnings

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-02-20 21:37:33 +02:00
Joakim Andersson
9ab17a3eb4 Bluetooth: test: Delay SMP pairing distribution phase when testing
Avoid the HCI-USB race condition where HCI data and HCI events can be
re-ordered, and pairing information appears to be sent unencrypted.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-02-20 21:32:59 +02:00
Vinayak Kariappa Chettimada
62c1e1a52b Bluetooth: controller: split: Fix assert on invalid packet sequence
Fix to remove assertion failure check on detecting invalid
packet sequence used by peer central and that no non-empty
packet was transmitted.

Fixes #22967.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-02-20 19:34:17 +02:00
Oane Kingma
8f4c80f930 boards/arm/efm32gg_stk3701a: correct NVS example storage partition size
Set the size of the storage partition in flash used by the NVS example
to 3 times the erase-block-size for this SoC family. In this case a
total of 12KB (as 3 erase-block-sizes is the minimum).

Signed-off-by: Oane Kingma <o.kingma@interay.com>
2020-02-20 11:17:53 -06:00
Oane Kingma
8043d989a0 dts/arm/silabs: EFM32GG11B: correct flash erase block size
Corrected the erase-block-size to the actual value of 4096 bytes for
this SoC family.

Signed-off-by: Oane Kingma <o.kingma@interay.com>
2020-02-20 11:17:53 -06:00
Peter Bigot
d8146d6c6d kernel: work_q: fix return value in non-error case
A recent patch allowed an error code to be returned even though the
execution path treated it as a non-error condition.  Clear the code
before returning.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-02-20 17:50:05 +02:00
Abhishek Shah
f64cd1a5db soc: arm64: qemu-cortex-a53: Add MMU support
Add qemu-cortex-a53 memory regions with proper attributes
to translation tables. Minimal regions to execute "hello_world"
are added as of now, More granular memory regions should be
added later as per the requirement.

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>
2020-02-20 17:24:59 +02:00
Abhishek Shah
f587c5f019 arch: arm64: mmu: Add zephyr execution regions
Add zephyr execution regions(text, rodata, data, noinit, bss, etc.)
with proper attributes to translation tables.
Linker script has been modified a little to align these sections to
minimum translation granule(4 kB).

With this in place, code cannot be overwritten accidently as it is
marked read only. Similarly, execution is prohibited from data/RW
section as it is marked execute-never.

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>
2020-02-20 17:24:59 +02:00
Abhishek Shah
10a05a162f arch: arm64: Add MMU support
Add MMU support for ARMv8A. We support 4kB translation granule.
Regions to be mapped with specific attributes are required to be
at least 4kB aligned and can be provided through platform file(soc.c).

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>
2020-02-20 17:24:59 +02:00
Abhishek Shah
6429dd81bf arch: arm: aarch64: linker.ld: move vector table to text segment
Following changes are done:
- The vector table should be placed in text segment.
- Removed Vector relay table related entries as it is
  only applicable to aarch32.
- irq_vector_table contains ISR pointers - should be placed
  in rodata segment.
- put openocd_dbg in rodata and skip adding <linker_relocate.ld>
  as CONFIG_CODE_DATA_RELOCATION is not defined for aarch64
  currently (add later if needed).

Fixes: #22673
Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>
2020-02-20 17:24:59 +02:00
Abhishek Shah
1d59d3afed arch: arm: aarch64: linker: Discard plt and got sections
plt and got sections are used for dynamic linking which
is not supported in Zephyr.

Reference: #11953
commit 3ba7097e73 ("linker: add orphan sections to linker script")

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>
2020-02-20 17:24:59 +02:00
Martí Bolívar
93237fcdde doc: dts: pacify checkpatch in macros.rst
This is old text, but checkpatch is complaining since it was
introduced into itso wn file.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 12:15:27 +02:00
Martí Bolívar
3a2417443f doc: dts: add design goals defining the scope of DT
Add a page describing the high-level design goals for how Zephyr
should use DT, with examples and counter-examples from current
practice.

Add a TBD section for code generation. It's not clear (to me at least)
where the discussion on that has landed.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 12:15:27 +02:00
Martí Bolívar
a20241540b doc: dts: clean up introduction
Combine various bits of information that were formerly scattered about
into a logical order, and fix a few mistakes.

Make some policy changes, e.g. discouraging the use of fixup macros.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 12:15:27 +02:00
Martí Bolívar
51b885019e doc: split devicetree docs into multiple pages
The one page on devicetree is too long. Split it into multiple pages
to make it easier to digest and more squintable. This is basically
just moving content around; minimal changes have been made apart from
redoing some transitions and adding a couple of introductory paragraphs.

Rename the 'device-tree' Sphinx :ref: target while we are here.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 12:15:27 +02:00
Martí Bolívar
6dab163cad scripts: fix west sign when ZEPHYR_BASE is unset
Due to cleanups in west targeted at getting rid of zephyr-specific
code, extension commands can no longer rely on ZEPHYR_BASE being set
in the calling environment at import time (it's still set at run()
time for now, though, to keep west build working).

Add a new helper to make dealing with this easier from west sign.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 09:06:09 +02:00
Martí Bolívar
eb95bed552 scripts: west_commands: fix argument handling with runners.yaml
Refactor the code to support the new runners.yaml file created by the
build system.

Compared to fishing around in the CMake cache, this makes it trivial
to put all the command line arguments to a runner-based command on
equal footing, regardless of if they're defined in the runners package
proper or defined in run_common.py.

This allows board.cmake files to do things like this:

   board_set_runner_args(foo
     --bin-file=${PROJECT_BINARY_DIR}/my-signed.bin)

While at it, make some other cleanups:

- Stop using the obsolete and deprecated west.cmake module while we're
  here in favor of the zcmake.py module which was added to Zephyr a long
  time ago. Yikes. I had forgotten this was still here.

- Stop using west.util's wrap function in favor of raw use of
  textwrap. The west function splits on hyphens, which is breaking
  runner names like "em-starterkit".

- Clean up the --context output a bit

Fixes: #22563
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 09:06:09 +02:00
Martí Bolívar
5ba47f0728 cmake/flash: fix obsolete help text for missing west
This is only valid advice for west 0.5.x, which is obsolete.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 09:06:09 +02:00
Martí Bolívar
b85954787e cmake/flash: persist python runners state in YAML
The YAML contents mirror the values in the ZEPHYR_RUNNER_CONFIG
variables, but they are phrased in terms of command line arguments.

This makes it possible for Python to intermix them with
runner-specific arguments, which is a step towards being able to set
arguments like --bin-file via board_set_runner_args(). The next step
is to handle them in Python too.

Move the RUNNERS_VERBOSE setting closer to its use while at it, to
preserve readability.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-02-20 09:06:09 +02:00
Andrew Boie
271621fb99 revert: "change IO APIC to logical destination..."
This reverts commit e91e7fc3d5.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-02-19 14:40:19 -08:00
Andrew Boie
9062a5ee91 revert: "program local APIC LDR register for..."
This reverts commit 87b65c5ac2.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-02-19 14:40:19 -08:00
Ioannis Glaropoulos
83b278ec01 tests: arch: arm: add test-suite to verify syscall internals
This commit contributes a simple test-suite which verifies the
internal (ARCH) implementation for user mode syscalls, as well
as the stack limit checking mechanism for ARMv8-M MCUS.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2020-02-19 12:19:43 -08:00
Andrew Boie
bd8a3bba54 tests: syscalls: add torture test
Hammer all CPUs with multiple threads all making system calls
that do memory allocations and buffer validation, in the hopes
that it will help smoke out concurrency issues.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-02-19 12:19:43 -08:00