Commit graph

3619 commits

Author SHA1 Message Date
Nicholas Lowell
cc8ab95760 tracing: Add user-definable tracing interface
Create a new tracing option TRACING_USER that allows
the user to define certain user_sys_trace_... functions
to perform whatever work desired for tracing when
tasks are swiched in/out, during isr enter/exit, and when
cpu is idle.

This infrastructure can be useful for plugging into
locally defined tracing tools or any user-specific
debugging environment.

Signed-off-by: Nicholas Lowell <nlowell@lexmark.com>
2021-09-02 06:54:35 -04:00
Torsten Rasmussen
36bb00d1f5 armclang: ARM Compiler C library support
Support for ARM Compiler C library.

This commit add support for the ARM Compiler C libary in:
- Kconfig
- libc/armstdc

A new Kconfig symbol is added to allow a toolchain to specify if they
support linking with the minimal C library.
Also the CMake variable `TOOLCHAIN_HAS_NEWLIB` is exported to Kconfig
so that CONFIG_NEWLIB_LIBS can only be enabled if the toolchain has
newlib.

The armclang toolchain selects the CMake scatter file generator and
disables support for the LD linker template which is not supported by
armlink.

For the ARM Compiler C library, a corresponding lib/libc/armstc/ folder
with a minimal implementation to work with the ARM Compiler C library
is added.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-30 08:54:23 -04:00
Flavio Ceolin
d9d5c41294 pm: device: Remove transitional states
PM_DEVICE_STATE_RESUMING and PM_DEVICE_STATE_SUSPENDING
are transitional states and are only used in device runtime. Remove it
and use device flag to keep track of a transition.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-27 17:47:10 -04:00
Arvin Farahmand
419b103dd6 drivers: Add mdio API
This commit adds support for MDIO bus. The bus is used by Ethernet
MACs to communicate with PHYs.

Signed-off-by: Arvin Farahmand <arvinf@ip-logix.com>
2021-08-27 11:43:48 -04:00
Danny Oerndrup
e3ab68ff1a toolchain: doc: Custom toolchain doc updated for other.h requirement
Added missing toolchain name to path for generic.cmake and target.cmake.

Added section explaining the need for, and the use of, the
toolchain/other.h header file.

Signed-off-by: Danny Oerndrup <daor@demant.com>
2021-08-26 09:28:19 -04:00
Torsten Rasmussen
892310863d doc: modules guide updated with Zephyr CMake lists description
This commit extends the `Build system integration` section in the Zephyr
modules guide with a description on how a module may append additional
values to Zephyr CMake lists.

This is useful for modules that might need to append values to the
`SYSCALL_INCLUDE_DIRS` list.

This commit is followup to the discussion found in:
https://github.com/zephyrproject-rtos/zephyr/pull/33756

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Signed-off-by: Marti Bolivar <marti.bolivar@nordicsemi.no>
2021-08-25 22:07:34 -04:00
Flavio Ceolin
c42cde5b69 kernel: work_q: Fix k_work_queue_start documentation
Inform that the queue has to be initialized in zeroed memory or with
the k_work_queue_init before use.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-25 22:07:04 -04:00
Martí Bolívar
e0b41a8f51 doc: document devicetree/pinctrl.h macros
Add a new section in the API reference for the newly added
devicetree/pinctrl.h macros.

Amend macros.bnf in the guide to reflect the new generated macros for
getting at pinctrl information by name.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-25 18:09:00 -04:00
Stephanos Ioannidis
8676ff01ec doc: getting_started: Fix incorrect literal block usage
The newly added CMake installation instruction incorrectly specified
*double* colon (literal block) instead of *single* colon after its list
item.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-25 18:07:17 -04:00
Johann Fischer
9ad610d1a7 bluetooth: remove Kconfig options CONFIG_BT_*_ON_DEV_NAME
Follow up on commit bfd45e5b8c
("drivers: remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME")
Remove Kconfig options
CONFIG_BT_UART_ON_DEV_NAME and CONFIG_BT_MONITOR_ON_DEV_NAME
since all UART drivers are converted to devicetree and we can just use
DEVICE_DT_GET(DT_CHOSEN(zephyr_bt_uart)) and
DEVICE_DT_GET(DT_CHOSEN(zephyr_bt_mon_uart)).

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-25 18:05:17 -04:00
Stephanos Ioannidis
a61517b58e doc: release-notes: Mention CMSIS version update
Mention that the CMSIS version has been updated to 5.8.0 in the Zephyr
2.7 release.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-25 18:02:54 -04:00
Flavio Ceolin
93e674e373 docs: pm: Fix system pm diagram
The device pm actions (low_power or suspend) were switched. Also,
added SOFT_OFF to the suspend action.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-24 22:29:34 -04:00
Johann Fischer
741ae93ce2 shell: remove Kconfig option CONFIG_UART_SHELL_ON_DEV_NAME
Follow up on commit bfd45e5b8c
("drivers: remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME")
Now we can also remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME
since all UART drivers are converted to devicetree and we can just use
DEVICE_DT_GET(DT_CHOSEN(zephyr_shell_uart)).

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-24 17:15:58 -04:00
Martí Bolívar
cd0abb34ca doc: twister: add units to min_ram, min_rom
The units for these testcase YAML fields are missing, making it
unclear how to use them. Fix it.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-24 15:40:06 -04:00
Maksim Masalski
fa97ed2771 docs: getting started guide 3rd party toolchains fixes
Using 3rd Party Toolchains page find out that warning message
can be moved to the top of the page.
Add Windows example in OneAPI.
Style fixing.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2021-08-24 15:38:47 -04:00
Anas Nashif
eef51a8958 doc: kernel: move meta-irq doc to threads
Move this to where priorities are being discussed to keep things in
context and to have all priority types documented in 1 place.

Fixes #21648

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-08-24 06:59:13 -04:00
Michał Barnaś
5a1fcb609c doc: replace courge with corge
Grault and corge are both syntactical variables used globally.
Courge is misspelling of corge.

Signed-off-by: Michał Barnaś <mb@semihalf.com>
2021-08-23 18:54:27 -04:00
Michał Barnaś
1b06477832 doc: change functions arguments in drivers documentation
Fix functions arguments in documentation to match
order of their real declarations

Signed-off-by: Michał Barnaś <mb@semihalf.com>
2021-08-23 18:54:27 -04:00
Johann Fischer
bfd45e5b8c drivers: remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME
Remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Johann Fischer
c179d83e72 drivers: uart_mcumgr: remove CONFIG_UART_MCUMGR_ON_DEV_NAME
Remove CONFIG_UART_MCUMGR_ON_DEV_NAME and use
DEVICE_DT_GET(DT_CHOSEN(zephyr_uart_mcumgr)).
Add usb.overlay, which contains chosen node and cdc-acm-uart node,
to smp_svr sample.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Johann Fischer
f460848002 net: ot: rework NCP interface configuration
Rework NCP interface configuration and NCP sample. Remove
CONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_DEV_NAME and
CONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_ACM Kconfig
options in favor of chosen node zephyr,ot-uart usage.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Manuel Argüelles
025140d05e doc: gsg: re-add missing dtc-msys2
It was lost in d5533765ff

Signed-off-by: Manuel Argüelles <manuel.arguelles@coredumplabs.com>
2021-08-23 08:18:52 -04:00
Martí Bolívar
73205d1ffb doc: dts: bindings: document what a "yaml file" is
Make it clear what files the build system considers possible bindings.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-20 18:57:30 -04:00
Martí Bolívar
f442266d09 doc: west release 0.11.1 follow-ups
Use 0.11.1 to build the docs. The docstrings are the same as 0.11.1a1,
so it doesn't make a difference in the output, but let's keep things
clean now that the final release is up.

Fix typos in the release notes.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-20 06:23:49 -04:00
Torsten Rasmussen
1cccc8a8fe cmake: increase minimal required version to 3.20.0
Move to CMake 3.20.0.

At the Toolchain WG it was decided to move to CMake 3.20.0.

The main reason for increasing CMake version is better toolchain
support.

Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-20 09:47:34 +02:00
Torsten Rasmussen
8dd1d7a524 docs: Update docs for CMake 3.20.0 minimal version
Update docs to reference CMake 3.20.0 as minimum required version.

Added Kitware APT repository to the getting started page.

Updated installation Linux download descriptions from CMake 3.15.3 to
CMake 3.21.1 as that is the version currently being installed when
using the Kitware APT repository.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-20 09:47:34 +02:00
Jordan Yates
e444a9a07e doc: add LoRa behaviour change to release notes
Document the change in behaviour for `lora_send` and how to get back
the original behaviour.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2021-08-18 05:16:46 -04:00
Martí Bolívar
1f3ca82126 doc: release-notes: mention DT compatible changes
Document devicetree compatibles which have changed recently and that
have drivers, along with how to handle them.

Recent changes to things like / and CPU nodes aren't worth mentioning
since there are no drivers for such things. I'm similarly not going to
document the vexriscv change since it seems likely that users are
getting this compatible via the DTSI file.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-17 17:51:57 -04:00
Emil Obalski
6f4f1dc230 logging: Add configurable logging thread delay
This patch adds confiugurable delay when starting log processing
thread.

Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
2021-08-13 11:19:27 -04:00
Fabio Baltieri
f6d7c38adb doc: iterable_sections: add an API example
Expand the iterable sections documentation by adding a usage example.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2021-08-12 17:47:04 -04:00
Krzysztof Kopyściński
00bfac00ae Bluetooth: gatt: Add option to read multiple without variable length
Currently, with EATT enabled, when bt_gatt_read is called with multiple
handles first it'll try to use gatt_read_mult_vl, and if it fails
gatt_read_mult will be used to try again. Add option to skip
the gatt_read_mult_vl and use gatt_read_mult right away. This is needed
by tests that expect BT_ATT_OP_READ_MULT_REQ but support variable
lenght, thus don't return BT_ATT_ERR_NOT_SUPPORTED.

Removed fallback from read multiple vl to read multiple on
BT_ATT_ERR_NOT_SUPPORTED error.

This was affecting:
GATT/CL/GAR/BV-05-C, GATT/CL/GAR/BI-18-C, GATT/CL/GAR/BI-19-C,
GATT/CL/GAR/BI-20-C, GATT/CL/GAR/BI-21-C, GATT/CL/GAR/BI-22-C

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
2021-08-12 11:07:08 -04:00
Martí Bolívar
185545e9f4 doc: dts: explain how to view preprocessor output
This is the debugging tool of last resort for figuring out where a
devicetree macro went wrong, but it's very effective. Document how to
do it on GCC based toolchains.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-12 11:04:16 -04:00
Kevin Townsend
1740aaeb9b doc: guides: Add a TF-M guide
This commit adds a high-level overview of Trusted Firmware-M,
describing the basic architecture and integration work with Zephyr.

Co-authored-by: Marti Bolivar <marti.bolivar@nordicsemi.no>
Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
2021-08-12 10:03:57 -05:00
Flavio Ceolin
1c6507afa8 doc: pm: Add wakeup information
Add documentation for wakeup sources.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-11 19:39:13 -04:00
Flavio Ceolin
8eceeee798 pm: device: Add wakeup source API
Introduce a new API to allow devices capable of wake up the system
register themselves was wake up sources. This permits applications to
select the most appropriate way to wake up the system when it is
suspended.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-11 19:39:13 -04:00
Lingao Meng
23a9594944 Bluetooth: Add connect event structure to zsector
Add an optional version for connection events
to save some memory.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-08-11 13:42:28 +02:00
Martí Bolívar
8807d0c2bb doc: west v0.11.1 notes
This is a stopgap release meant to backport bug fixes and new features
while v0.12.0 is blocked.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-09 13:29:57 -04:00
Martí Bolívar
8eeac3e259 doc: link-roles: clean up setup() method
The setup() method is trying to find the zephyr repository by name,
but it's not passing allow_paths=False to the west method it uses to
search.

That may lead to unpredictable results depending on what the current
working directory is in the calling environment.

For robustness, disallow paths and make sure we are only searching for
the zephyr project by name.

Add some more comments to explain what is going on and clean up the
empty string handling while we're here.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-09 13:29:57 -04:00
Martí Bolívar
fd73eb8b60 doc: dts: macros.bnf: add docs for new for-each macros
Document the new DT_FOREACH_OKAY_INST_<compat> and
DT_FOREACH_OKAY_INST_VARGS_<compat> macros that are generated by
gen_defines.py and explain how they are used in devicetree.h.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-06 12:24:57 -05:00
Martí Bolívar
9bd8534040 doc: dts: macros.bnf: fix a comment
This is referring to the wrong macro.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-06 12:24:57 -05:00
Flavio Ceolin
14899616a3 doc: coding_guideline: Add a MISRA-C mandatory rule to Zephyr
This guideline seems to be missed during the Zephyr's code guideline
creation. That is a good guideline that aims to address some problems
like double free or freeing not allocated memory.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-05 11:46:59 +02:00
Flavio Ceolin
70cd67579d doc: coding_guidelines: Add a MISRA-C mandatory rule to Zephyr
This guideline address three undefined behaviors listed in the C99
standard. Although Zephyr does not support/implement these functions,
they are part of the C library and could be implemented in the future.

Also this is mandatory rule in MISRA-C and if one day Zephyr decides to
claim compliance with MISRA-C this guideline has to be followed.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-08-05 11:46:59 +02:00
Jordan Yates
6745c9a5d0 doc: release-notes-2.7: xoroshiro128+ deprecation
Add release notes for xoroshiro128+ deprecation in random library.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2021-08-05 11:24:44 +02:00
Jordan Yates
fdeaa9103e random: deprecate XOROSHIRO_RANDOM_GENERATOR
Deprecate the xoroshiro128+ PRNG algorithm in favour of xoshiro128++.
xoshiro128++ is a drop-in replacement which is invisible from the user
perspective.

xoroshiro128+ is unsuitable because it is explicitly a floating-point
PRNG, not a general-purpose PRNG. This means that the lower 4 bits of
the output are actually linear, not random (from the designers,
https://prng.di.unimi.it/). This means 1/8th of the generated data is
not random.

Additionally, xoroshiro128+ is not a 32bit algorithm, it operates on
64bit numbers. For the vast majority of Zephyr devices, this makes the
PRNG slower than it needs to be. The replacement (xoshiro128++) is
32bit, with no loss in state space (still 128 bit).

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2021-08-05 11:24:44 +02:00
Gerard Marull-Paretas
d41dadc569 pm: rename PM_DEVICE_STATE_SUSPEND to PM_DEVICE_STATE_SUSPENDED
The verb tense for the suspended state was not consistent with other
states. The likely reason: state was being used as a command/action.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-08-04 08:23:01 -04:00
Gerard Marull-Paretas
59f0e73522 doc: pm: update documentation
Update documentation so that latest changes are reflected.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-08-04 08:23:01 -04:00
Kumar Gala
8bac519604 docs: Update for SDK 0.13.0
Update docs to reference SDK 0.13.0.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-08-03 22:57:57 -04:00
Fabio Baltieri
94711f1ced doc: reference: add a page for iterable sections
Group together the iterable section functions and add a corresponding
documentation page.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2021-08-03 19:02:43 -04:00
Fabio Baltieri
4dfe7d24fe doc: doxygen: predefine _LINKER
Linker APIs are defined in a "#ifdef _LINKER" block. Adding _LINKER to
the Doxygen PREDEFINED list so that they get picked up when generating
the documentation.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2021-08-03 19:02:43 -04:00
Johann Fischer
eb8fc7a727 doc: release-notes-2.7: add note about the removal of USB option
Add release note about removal of Kconfig USB option.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-03 19:00:12 -04:00