Added note about fixed/changed behavior when too many arguments are
provided.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Fixes: #23825
Today, BOARD, SOC, ARCH, DTS, KCONFIG, and TOOLCHAIN_ROOT can be
specified by users or through other CMake files.
It is not clear if relative paths are permitted and/or from where a
relative path is constructed.
Inside CMake, it is very easy to specify `${ZEPHYR_BASE}`,
`${CMAKE_CURRENT_SOURCE_DIR}`, or similar, thus there is no reason to
use relative path inside CMake, as it easy can lead to discussion on
relative to what.
For users manually invoking CMake using, `cmake ... <app-dir>` it is
nice to have to possibility to specify a relative path.
For this purpose, relative path are considered relative to the
`APPLICATION_SOURCE_DIR`.
This commit updates:
- BOARD_ROOT
- SOC_ROOT
- ARCH_ROOT
- DTS_ROOT
- KCONFIG_ROOT
- TOOLCHAIN_ROOT
to allow paths relative to `APPLICATION_SOURCE_DIR` when specified with
`-D<type>_ROOT=<relative-path>`
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Document that some initialization orders that used to work (and
shouldn't have) will no longer work.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Initial draft of release notes for AARCH64 (Cortex-A)
for the Zephyr v2.4.0 release.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Initial draft for Release notes for ARM (Cortex-M)
for the Zephyr v2.4.0 release.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
This code had one purpose only, feed timing information into a test and
was not used by anything else. The custom trace points unfortunatly were
not accurate and this test was delivering informatin that conflicted
with other tests we have due to placement of such trace points in the
architecture and kernel code.
For such measurements we are planning to use the tracing functionality
in a special mode that would be used for metrics without polluting the
architecture and kernel code with additional tracing and timing code.
Furthermore, much of the assembly code used had issues.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Make it actually give the original pointer to the attribute and its
resolved handle so static attributes don't need an extra lookup.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fixes: #27934
This commit introduces additional naming support of config files.
It is now possible to create a config file of the form
`prj_<build>.conf` and automatically have a corresponding
`boards/<BOARD>_<build>.conf` config file merged.
As example, one can create a structure as:
|-- prj.conf
|-- prj_debug.conf
|-- boards
|-- nrf52840dk_nrf52840.conf
|-- nrf52840dk_nrf52840_debug.conf
when building: (existing behavior)
cmake -DBOARD=nrf52840dk_nrf52840 ...
prj.conf is merged with nrf52840dk_nrf52840.conf
when building: (new behavior)
cmake -DBOARD=nrf52840dk_nrf52840 -DCONF_FILE=prj_debug.conf ...
prj_debug.conf is merged with nrf52840dk_nrf52840_debug.conf
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Identify the special case of /zephyr,user as a node for which property
values are generated without having to define a binding.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This commit extends USB hid API callbacks by adding
'const struct device *dev' parameter. If the application
configured more than one HID device then it must specify
separate hid_ops for each device as its unable to determine
for which device the callback was called.
This patch makes it possible to have only one hid_ops within
the application and the application is aware for which device
the callback was called because of explicit device pointer.
Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
Those APIs are used for deleting appkey, unbinding an application
from SIG model, unbinding an application from vendor model on the
target node, with matching shell command.
Signed-off-by: YanBiao Hao <haoyanbiao@126.com>
The Health models' shell documentation was mistakenly labeled Heartbeat
Client and Heartbeat Server, and the Heartbeat configuration commands
were mistakenly categorized under these sections.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
The documentation claims that Zephyr supports external file system
implementations, and there's no reason not to do so. Rework the API
to allow this.
Note that the file system type cannot legally be an enum anymore,
since we need to support file system types that don't have an
identifier assigned in that enum. Rely on the implicit conversion of
enum values to int to preserve backwards compatibility.
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
In some cases it is useful to use the C preprocessor to control the
content of a devicetree file. A specific use case is in testing,
where different combinations of node properties must be checked.
Provide a mechanism to allow arbitrary preprocessor flags to be passed
through CMake to affect the devicetree content.
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Now that device_api attribute is unmodified at runtime, as well as all
the other attributes, it is possible to switch all device driver
instance to be constant.
A coccinelle rule is used for this:
@r_const_dev_1
disable optional_qualifier
@
@@
-struct device *
+const struct device *
@r_const_dev_2
disable optional_qualifier
@
@@
-struct device * const
+const struct device *
Fixes#27399
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Adds a Config Client API for deleting netkeys on the target node, with
matching shell command.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Some macros were using :c:func: and :cpp:func: which forbids Breathe
from resolving those symbols. Update to :c:macro: for proper resolution.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Following the change to use the C domain for parsing, update all
existing :cpp:enumerator: references to :c:enumerator:.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
`NULL` is not defined in the Zephyr sources, but rather a C definition
which is not resolved when building the documentation and generates a
warning. Fall back to using just emphasis.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Fix some C macros that are currently just emphasized in the
documentation with proper symbol resulition using :c:macro:
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Sphinx>=3.0 includes the `struct` role in the C domain, which provides a
specific way to link to structs, while the old :c:type: role should be
primary used to typedefs. Update existing references, using :c:type:,
:cpp:type: or emphasized symbols that point to structs to use the new
role.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Following the change to use the C domain for parsing, update all
existing :cpp:func: references to :c:func:. Remove the parentheses as
well, if used, because they are not needed, this is already known to be
a function, and how it is displayed in the documentation later is a
semantic decision done by the output builder.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Add __subsystem to list of attributes for the parser, and make the c
parser accept the same attributes than the cpp parser, after the change
to use the c parser for ".c" files.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Older Breathe versions didn't work correctly with the C domain, so there
was a mismatch when refering to functions and #defines, using :cpp: or
:c: depending on the origin of the refered symbol. With Breathe >=4.19
the C domain works correctly so all symbols can be refered to with the
:c: role.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Update methods used to include JS/CSS files, avoiding deprecated
versions the don't work on Sphinx>=3.x. The new methods work on both
Sphinx==3.x and Sphinx>=2.4.x.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
This commit describes add a section which describes how Zephyr modules
are integrated into Zephyr build system and what Zephyr module variables
that are available during CMake and Kconfig processing.
Those variables may be used for refering other Zephyr modules or
including of additional code.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The spi_flash_w25qxxdv driver has been superseded by the generic
spi_nor driver for over a year. The only non-refactoring change to
the W25Q driver in the last 18 months was done to support a backport
to 1.14.
All devices supported by spi_flash_w25qxxdv driver are expected to be
supported by the spi_nor driver, using the standard `jedec,spi-nor`
devicetree compatible. No in-tree devicetree files make use of this
driver.
Remove the confusion about which driver to select by removing the
unmaintained redundant driver.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Depending on how people set up their Python, west might not be on
PATH.
I'd like to have a special-purpose step by step guide for how to
handle this in the documentation to save support time when this
happens. I think it's worth special casing since west is the first
runnable program that pip installs onto a new user's system when
they're following the GSG.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Add a new listing for the Zephyr BLE Controller. This applies to
the Nordic nRF52 series and Zephyr version 2.2.x.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
In 'struct coap_resource' path description:
- the plus symbol represents a single-level wild card in the path;
- the hash symbol represents the multi-level wild card in the path.
This change keeps compatibility with RFC 7252 but allows handling
multiple requests in single function.
Signed-off-by: Eug Krashtan <eug.krashtan@gmail.com>
The EEPROM API, which was introduced in Zephyr v2.1.0 and has not seen
any changes since, has multiple implementations supporting a wide
variety of EEPROM backends (SPI, I2C, on-chip, simulator).
Bump the EEPROM API from "experimental" to "unstable" according to the
Zephyr API lifecycle process.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Various API involves functions and data that are conditionally
enabled. Zephyr practice is to exclude data (always) and function
(sometimes) declarations at build time using the enabling preprocessor
macro. This meets functional needs, but blocks generation of the API
documentation as Doxygen will not see the declarations.
Document the need to extend Doxygen's PREDEFINED setting to generate
the documentation.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Provide a location for recommended practices that are not related to
coding style. Initialize it with information about the expected
design for callbacks.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Gaps in Kconfig flexibility make it necessary to provide
instance-specific driver configuration through devicetree properties
in certain cases. Because these are not hardware characteristics or
configuration they should be marked as zephyr-specific.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
The Kconfig options that formerly controlled this capability have been
removed so rework the "exception" (there is no "precedence" anymore).
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Zephyr release 2.1 changed the default settings back end from FCB to
NVS in all Bluetooth samples for performance and reliability reasons.
Update the settings documentation to provide a clue to developers
trying to decide which to use.
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
This adds a very primitive coredump mechanism under subsys/debug
where during fatal error, register and memory content can be
dumped to coredump backend. One such backend utilizing log
module for output is included. Once the coredump log is converted
to a binary file, it can be used with the ELF output file as
inputs to an overly simplified implementation of a GDB server.
This GDB server can be attached via the target remote command of
GDB and will be serving register and memory content. This allows
using GDB to examine stack and memory where the fatal error
occurred.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Fix the directory layout examples to use "<board>" when referring to a
board name, and "boards" when referring to the boards directory.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
Fixes: #27375
This is a cleanup of the Zephyr CMake package export.
The code has been simplified so that the export now happens through a
CMake script. This avoids several generated CMake build files compared
to previous export mode, and thus removes the need for a CMake pristine
script.
A benefit of this cleanup is that it also fixes#27375.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Using ZEPHYR_BOARD_FLASH_RUNNER relies on a cache variable that
happens to work but is not a supported feature. The appropriate
variable to set is simply BOARD_FLASH_RUNNER.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This is covered in the porting guide, and we have complete docstrings
for these macros, but having discussion here helps new users understand
how to use these and why they exist.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Some flash drivers are capable of issuing a JESD216 READ_SFDP command
to read serial flash discoverable parameters. Allow applications and
utilities access to that capability where it's supported.
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
The on-off manager infrastructure is designed to robust asynchronous
transition between binary states where multiple clients may be
initiating a transition from any context. The actual transition is
performed using a manager that tracks the current state and pending
operations. Requests are initiated by passing a reference to an
onoff_client object that holds client state including the notification
mechanism.
This API may be used in subsystems where the transitions for a
particular driver are always synchronous and isr-ok, e.g. setting a
SoC-controlled GPIO. In this situation the full on-off manager
infrastructure is wasteful. All we need is a record of the service
state: off, active count, or error.
Add a data structure and an API that can be used to replace the onoff
manager functionality in a situation where all transitions are isr-ok
and synchronous while retaining compatible behavior from the client
perspective.
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
There is nothing wrong with instance numbers and they are
recommended for use whenever possible, but this is an API
design problem because it's not always possible to get nodes
by instance number; in some cases, drivers need to get node
identifiers from node labels, for example.
Change these APIs (which are not yet in any Zephyr release)
to take node IDs instead of instance IDs.
Fixes: #26984
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
In Github issue #27548 I found out that documentation has
incorectness. I made fix and described how correctly provide multiple
overlay files for west and cmake. For both of them necessary to use
quotations. After that, necessary to make one more change if you have
multiple files in quotations. For west necessary to separate multiple
files using spaces and for cmake to separate multiple files necessary
to use semicolons.
Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
Add a entry to 2.4 release notes about a need to explicitly
call usb_enable() for applications that configures specific
features.
Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
This device isn't an actual hardware driver: it's a virtual EEPROM
that stores data in an instance-specific RAM buffer, with the data
exposed on an I2C bus as a I2C follower (slave) device that can be
controlled by another device acting as a leader (master) on that same
bus.
As such it's a reasonable example of how to write an I2C follower
driver, but it's not clear that it has a real use in applications. A
Zephyr application that needs to emulate an EEPROM in a real-world
system would be unlikely to provide its data from a RAM buffer.
The sole in-tree reference is in the i2c_slave_api test, so move the
driver implementation into that test.
The Kconfig and hierarchy are being left in place until it is more
clear how this functionality should be selectable within Zephyr. The
I2C_SLAVE symbol has been converted from menuconfig to config to
eliminate a Kconfig style diagnostic.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This commit updates the release notes with the changes introduced
in #26715.
It also informs readers that existing use of `$(SOC_DIR)` in Kconfig
must be updated, for example to use `rsource` instead of
`source $(SOC_DIR)` in order to adopt to latest changes.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit updates the description of SOC_ROOT according to the new
multiple SOC_ROOT enhancement.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The change to use devicetree instead of the config option will break
anybody who has a devicetree that doesn't include the proper active
level for cs-gpios (which is not zero).
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Add a document how to get and interpret information about
network TX / RX packet processing statistics.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Document change in how L2CAP RX MTU is set through Kconfig options.
Document recommended new value for applications that have set
CONFIG_BT_RX_BUF_LEN.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This commit adds description of the build setting support in the
module.yml file.
It is described how additional board_root, soc_root, dts_root, and
arch_root can be appended to the build system.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit restructures the Zephyr module description.
It places the description of the module yaml file in a dedicated section
as this file is common to module inclusion both when using `west` and
without `west`.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit introduces support for multiple SOC_ROOT.
This means that additional SOC_ROOTs specified using -DSOC_ROOT as
argument to CMake will be forming a list together with ${ZEPHYR_BASE}.
This allows for greater flexibility, as developers can now specify
multiple out-of-tree SoCs and not worry about the SoC used for the
board they compile for.
Also it avoid code, such as:
if(BOARD STREQUAL my_board_using_out_of_tree_soc)
set(SOC_ROOT some/out/of/tree/soc/path)
endif()
in application CMakeLists.txt.
Finally, allowing multiple SOC_ROOTs prepares for specifying SOC_ROOTs
in Zephyr modules.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This set of functions seem to be there just because of historical
reasons, stemming from Kbuild. They are non-obvious and prone to errors,
so remove them in favor of the `_ifdef()` ones with an explicit
`CONFIG_` condition.
Script used:
git grep -l _if_kconfig | xargs sed -E -i
"s/_if_kconfig\(\s*(\w*)/_ifdef(CONFIG_\U\1\E \1/g"
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Update release notes API change section with information on change to
fs_open parameter list.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Make sure that only those threads that have been granted access
to net_if objects, can call the functions that modify net_if data.
The CONFIG_NET_IF_USERSPACE_ACCESS config option is also removed
as it is no longer needed after this change.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add details of the LVGL7 update (e.g. warn about higher ROM usage,
changed Kconfig defaults, ...)
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
Updates the contribution guidelines to document the current board policy
of rejecting non-OSI-approved licenses.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
This PR fixes the links to the example files in the Gitlab repository.
Fixes Dir 4.8 and Rule 2.1, 5.1, 5.8, 5.9, 8.5, 8.6, 13.1, and 13.5.
Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>
The mempool implementation doesn't require specific sizes and can
support arbitrary sizes up to the limit of available memory. The
Kconfig documentation on this configuration was confusing user.
Fixes#20418
Signed-off-by: David Leach <david.leach@nxp.com>
The CI style checking solution can produce false positives when it's
given code that it mis-parses, or that follows conventions it doesn't
allow. Document a couple examples, and explicitly note that
maintainers should override the -1 vote if they're encountered.
For those following along in the commit history:
static uint8_t __aligned(PAGE_SIZE) page_pool[PAGE_SIZE * POOL_PAGES];
checkpatch sees "uint8_t __aligned(PAGE_SIZE)" and infers a prototype
for a function "__aligned" that takes an unnamed parameter of type
"PAGE_SIZE". So it adds "PAGE_SIZE" as a known type name.
IOPCTL_Type *base = config->base;
This is common in driver code where the vendor HAL allows typedefs for
structure types. checkpatch was designed for an environment with
limited use of typedefs; "struct IPCTL_Type" would have been handled
properly.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Sort the MISRA lists in a more natural ascending numeric order.
So instead of 1.1 - 1.10 - 1.11 - 1.2 - 1.3, we now have
1.1 - 1.2 - 1.3 - 1.10 - 1.11.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Rule 18.6 has the examples split in two files. This PR adds
the correct reference to the example files in the gitlab
repository
Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
Support running/building only specific tags and ignoring everything
else.
Adding this to a platform yaml file will enable tests with one of of
tags listed to be executed on the platform.
This is useful for special platform configurations used for testing
specific features for example.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Adds a high-level documentation page for the Bluetooth Mesh Shell
subsystem, documenting all available commands and their parameters.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Add a note in 2.4 release notes regarding SW_VECTOR_RELAY
feature, now supported also in Mainline Cortex-M architecture.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Add a small section that describes the existance of the coding
guidelines page and links to it, in order to raise awareness of the
effort towards complying with those.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Link to the coding guidelines from the main contribution guidelines
page, so that users are aware of the guidelines.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Aside from the MISRA-C derived Coding Guidelines, add a list for
additional ones that are not a subset of a standard.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Fixing issues with recent versions of breathe 4.19.2:
WARNING: Unparseable C cross-reference: 'struct device'
Invalid C declaration: Expected identifier in nested name, got keyword:
struct [error at 6]
struct device
------^
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Added a link to IEEE GET program web page to suggest
an option of downloading the specification to the users.
Signed-off-by: Uma Praseeda <uma.praseeda@nordicsemi.no>
The generic SPI GPIO chip select support now respects devicetree flags
for signal active level. Update all cs-gpios properties to specify
active low.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Allow feed operations that would stall due to internal peripheral
delays to complete immediately with -EAGAIN indicating that the feed
did not occur as expected.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Add the coding guidelines agreed upon by the project TSC with a
description of the staged approach needed to implement them
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
We deprecated a number of aspects of the DTS binding syntax in Zephyr
2.1. Remove the support for the deprecated syntax. Remove from docs
about the deprecated syntax as well.
Removed reference in release-notes-2.1.rst to legacy_binding_syntax
since that anchor doesn't exist anymore.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Security documentation contains a code guideline section that is more
about security principles than code guidelines itself. Just removing
the mention do code guideline to avoid possible confusions with
upcoming project code guideline based on MISRA-C.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Add release notes for updated HCI driver event handling for calling the
bt_recv() and bt_recv_prio() functions when delivering HCI events to
the host.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add a link to the page describing our development
processes, as it contains the description of how
to identify issues and pull requests as stale.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Add a small section, clarifying the policies around modifying
contributions submitted by other developers.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Add a small paragraph in the Contribution Guidelines
documentation to stress that cherry-picking of patches
into other pull requests is an allowed practive. Add a
link to additional documentation clarifying policies
around modifying patches of other developers.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
I received feedback that setting e.g. BOARD_ROOT in CMakeLists.txt is
not quite well specified; in particular, it's important to do so
before pulling in the boilerplate via find_package(). Clear that up.
Reported-by: Pete Skeggs <peter.skeggs@nordicsemi.no>
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Device objects in Zephyr are currently placed into an array by linker
scripts, making it easy to iterate over all devices if the array
address and size can be obtained. This has applications in device
power management, but the existing API for this was available only
when that feature was enabled. It also uses a signed type to hold the
device count.
Provide a new API that is generally available, but marked as internal
since normally applications should not iterate over all devices. Mark
the PM API approach deprecated.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
DEVICE_AND_API_INIT and DEVICE_DEFINE are identical except that
DEVICE_DEFINE adds a parameter providing the device pm control
function, while DEVICE_AND_API_INIT does not. This requires duplicate
implementations where if CONFIG_DEVICE_POWER_MANAGEMENT is enabled
then DEVICE_AND_API_INIT delegates to DEVICE_DEFINE with a dummy pm
control function, and if it is not enabled then DEVICE_DEFINE discards
the parameter and delegates to DEVICE_AND_API_INIT.
DEVICE_INIT is like DEVICE_AND_API_INIT but doesn't provide an API.
Clean this up by refactoring so that DEVICE_DEFINE is the core
implementation, providing with and without device power management
right next to each other where they can be compared and maintained.
Redefine DEVICE_INIT and DEVICE_AND_API_INIT delegate to
DEVICE_DEFINE.
Also remove duplicate code by extracting the variations due to
enabling device power management into macros.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This add a new option `--no-index-modules` which works similarly to
`--modules` but does not generated index pages, only retains the
tweaking of how paths are displayed on symbol information pages,
showing '<title>/path/within/module/Kconfig' for paths that fall
within modules.
This is required by NCS, where there are more "modules" which we don't
want to have indexes for.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Since this is an experimental API and MACRO_MAP() was deprecated in
favor of FOR_EACH() in zephyr v2.3.0, we are within our rights to just
remove it without notice now. Do so and mention it in the release
notes.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This file contains definitions for macros which are integral to
significant Zephyr use cases, such as CONTAINER_OF() and various
macros used by devicetree.h internally.
As such, in practice we expect at least advanced (if not intermediate)
users to understand it, so the fact that it's not formally documented
as an API with a stability level is a problem.
Fix that by giving the docstrings a once-over and adding new ones
where they are missing. Move all the remaining non-API macros to
util_internal.h.
Add a Sphinx API page for this header, and include it in the API
overview at "experimental" stability level.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Added CONFIG_UART_ASYNC_API to enable documentation generation for
asynchronous API.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
It was not clear that hexdump messages does not support prepending
with function name. Added clarification.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
The driver API should be assigned at the time the device is defined.
Assigning in the init function is redundant and prevents moving the
pointer to a immutable driver structure.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Now there's an audio reference section move the i2s docs there
as the audio section is a better fit.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
The probe_id keyword was added to support overriding the inferred id
when determining the board-id to use when flashing. Document the
keyword.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Prior to addition of schema validation running sanitycheck
--generate-hw-map would preserve the value of any field in an existing
map that it didn't update. These fields now cause a parsing error.
Add notes as an optional key where information relevant to the board
can be added to provide useful context (such as which serial port
corresponds to the console, or why a non-standard runner is required).
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Recommend that Kconfig symbols related to deprecated features use
'DEPRECATED' in the symbol name instead of 'LEGACY'.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit updates the Zephyr documentation with changes introduced
by Zephyr CMake package.
It removes 'zephyr-env.sh/cmd' where no longer needed, and updates
boilerplate inclusion to find_package.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
These CVEs have been released from embargo. Include details in the v2.3
release notes, and in the vulnerabilities document.
Signed-off-by: David Brown <david.brown@linaro.org>
This commit fills the Build and Infrastructure section with the Zephyr
CMake package enhancement.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Signed-off-by: Carles Cufí <carles.cufi@nordicsemi.no>
K_THREAD_DEFINE can no longer use K_NO_WAIT to specify the delay after
the timer API rework. Fix the documentation to use 0 and add a note.
Fixes#25697.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Complete the list of added ARM SoCs and SoC Series
in Zephyr v2.3.0 release cycle.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Complete the list of added ARM Boards in Zephyr
v2.3.0 release cycle.
Add deprecation note for efr32_slwstk6061a.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Describe how an API can be deprecated, which is via the __deprecated
keyword or by introducing a legacy Kconfig option.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This provides a better error message when building with CMake and
forgetting ZEPHYR_BASE or not registering Zephyr in the CMake package
registry. See parent commit for more details (split from parent for
better readability).
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
I believe the devicetree documentation for the release is in good
enough shape now. Add a few more links to the release notes to provide
users with more hints for adapting to the new API.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Add test cases that verify various bits and pieces of the legacy
devicetree macros match the new APIs.
Writing these test cases without giving rise to deprecated macro
warnings which might break people's CI if they build with -Werror
requires turning off the __WARN() generation in
devicetree_legacy_unfixed.h. The entire file is deprecated at this
point and must be explicitly enabled with an opt-in Kconfig option, so
there isn't any harm in doing this.
Nevertheless, take a minimally invasive approach to avoiding __WARN()
generation in gen_legacy_defines.py, to avoid the possibility of
breakage. This code is basically frozen anyway, so hacks like this
won't cause maintainability problems since it isn't being actively
maintained.
Use the new tests as fodder for a migration guide from the old API in
the documentation.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
The ZephyrBuildConfiguration package allow downstream users to control
the Zephyr build system using a cmake package.
A Zephyr Build Configuration package allows for setting of additional
DTS_ROOT, BOARD_ROOT, and similar variables without having to patch
Zephyr repo, but it also allows for inclusion of additional boilerplate
code for more advanced use cases.
The repository or folder containing the Zephyr Build Configuration
package must be on toplevel in the Zephyr workspace.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Update V2.3.0 release note for stm32 with:
- Added SoC series
- New boards support
- Noticeable changes in stm32 drivers and subsystems
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2 useful functions implemented, sample for read()/write() added
(or rather, existing sample to modified to support that).
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Add some introductory text to these driver helpers which makes it more
clear how they are defined in terms of the generic APIs, which allows
removing some boilerplate from doxygen. This also gives us a chance to
call out the exceptional cases and add some more documentation to those.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>