This reverts commit 26614832f2.
A bug in upstream nanopb, which this commit was pulling as part
of the submanifest update, seems to be causing test failures
on big-endian platforms.
Upstream bug: https://github.com/nanopb/nanopb/issues/1039
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
The west packages extension can be used to install module dependencies.
Upstream nanopb has added the pip package dependencies to the
zephyr/module.yml file. Remove in-tree pip package dependencies.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Add a migration entry for the device driver API change, and start listing
driver classes that have been updated in-tree.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Add a note to status property that disabled parent nodes do not
implicitly disable child nodes.
Issue #82040
Signed-off-by: Andreas Rudolf <andreas.rudolf@husqvarnagroup.com>
Separate the current driver for the FPGA iCE40 into two different ones.
One implements only the SPI load mode, the other one only the GPIO
bitbang mode.
Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
History seems to repeat itself and we need to momentarily discourage
folks to use Python 3.13 on Windows until windows-curses releases a
PyPI package that works with it.
See https://github.com/zephyrproject-rtos/windows-curses/issues/69Fixes#81543.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
On platforms like nrf5340 there are 2 CPUs:
- one is the cpu_net which takes care of the radio stuff and
owns the HW random generator
- one is the cpu_app which holds application data and polls
cpu_net through HCI commands when it needs some random data.
The PSA core implemented in Mbed TLS needs random data at initialization
time, which happens early in the boot process. If we wait for BT to
be ready before issuing the HCI command, then PSA core intialization
will fail. In facts there is no need for the BT to be completely
initialized just to ask for some random data from the cpu_app to
the cpu_net since the HW random generator will likely be already
functional in the cpu_net.
So let's just try the HCI command and, if something is not right,
it will fail anyway. There's no need to anticipate the failure.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Since the TinyCrypt library is being deprecated in Zephyr, this
commit set TinyCrypt usage in BT mesh as deprecated and it sets
Mbed TLS PSA Crypto API as the default option (when TF-M is not
available).
Tests are also updated in this commit.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
The board name should have the same size as all the other attributes
in the board's "Wikipedia card".
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
add vendor_allow and vendor_exclude to the list of filters. The vendor
data is maintained in the board.yml files.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The video CIDs got changed, and users will be impacted and need to
rename some constants. Offer a strategy for finding the new names in
the migration guide for the upcoming release.
Signed-off-by: Josuah Demangeon <me@josuah.net>
Because the number of ACL RX buffers must be at least the number of
maximum connections plus one, increasing `CONFIG_BT_MAX_CONN` could
inadvertently lead to a build failure if the number of ACL RX buffers is
not also increased. This dependency may not be obvious to users.
To address this issue, this commit deprecates the
`CONFIG_BT_BUF_RX_COUNT` Kconfig symbol and computes the value in
`buf.h` using the new `BT_BUF_RX_COUNT` define. Note that the default
value and the minimum range value have been changed to 0 to "disable"
the option.
Additionally, to allow users to increase the number of ACL RX buffers,
this commit introduces the new `CONFIG_BT_BUF_RX_COUNT_EXTRA` Kconfig
symbol. The value of this symbol will be added to the computed value of
`BT_BUF_RX_COUNT`.
The configurations of tests and samples have been updated to reflect
these changes.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
This commit refactos set_actual_position to set_reference_position.
stepper_set_reference_position is more apt in regards to what this func
actually does
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
Update the device driver API documentation with the new DEVICE_API
macro definitions and how to use them.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
This adds the board name (displayed as a code literal) to the "Wikipedia
card" for quick reference.
Fixes#81652.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
bt_le_set_auto_conn() function is not working as
expected. Also, it doesn't have any test coverage
and any usage in sample applications.
The function is deprecated
Fixes#81597
Signed-off-by: Ivan Iushkov <ivan.iushkov@nordicsemi.no>
Adding new CONFIG_MBEDTLS_PSA_KEY_SLOT_COUNT to select the number
of key slots in PSA Crypto core. The default value is 16. Be aware
that key slots consume RAM memory even if unused, so the proper value
should be a compromise between the number of slots required by
the application and the available RAM in the system.
This commit also:
- updates tests/crypto/secp256r1/mbedtls.conf to showcase how to
use this new symbol to reduce RAM footprint.
- tests/bsim/bluetooth/mesh/overlay_psa.conf to support all the
keys used in the test.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Adding the Kconfig symbol CONFIG_MBEDTLS_PSA_STATIC_KEY_SLOTS
to allow Mbed TLS's PSA Crypto core to use static key buffers
to store key's material. This helps reducing heap memory
usage and, potentially, it also discard code implementing
heap memory management if there's no other module in the build
that makes use of it.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Add a simple demonstration of the led_write_channels api on the lp5569
driver sample.
The demonstration simply turns on all of the channels with a single call to
led_write_channels. Then the same is done for turning off the channels.
Thus, it doesn't add much visually, but it shows the usage of the api.
Signed-off-by: Emil Dahl Juhl <emdj@bang-olufsen.dk>
The lp5569 has multiple pwm outputs, and thus implementing the
write_channels api to set multiple values in a single call makes sense.
Implement the write_channels function with a basic range check on the
channel range.
Since the lp5569 supports auto-increment, all of the channels can be
written in one i2c transfer, starting from the pwm register of the
start_channel.
Signed-off-by: Emil Dahl Juhl <emdj@bang-olufsen.dk>
The lp5569 controller supports auto-increment for its registers. This is by
default enabled in the chip, but the driver actively disabled it.
Since auto-increment is useful for writing multiple consecutive registers,
enable the feature. The driver, however, doesn't perform such consecutive
writes and thus the existing behavior is not altered.
Signed-off-by: Emil Dahl Juhl <emdj@bang-olufsen.dk>
This change introduces the ability in twister to select which
emulation/simulation tool to use on the command line.
If none is specified, it will select the first in the list.
Signed-off-by: Wilfried Chauveau <wilfried.chauveau@arm.com>
`_current` is now functionally equals to `arch_curr_thread()`, remove
its usage in-tree and deprecate it instead of removing it outright,
as it has been with us since forever.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Implement `arch_curr_thread()` & `arch_set_curr_thread()`
with the global pointer (GP) register.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Add the following arch-specific APIs:
- arch_curr_thread()
- arch_set_curr_thread()
which allow SMP architectures to implement a faster "get current
thread pointer" than the default provided by the kernel. The 'set'
function is required for the 'get' to work, more on that later.
When `CONFIG_ARCH_HAS_CUSTOM_CURRENT_IMPL` is selected, calls to
`_current` & `k_sched_current_thread_query()` will be redirected to
`arch_curr_thread()`, which ideally should translate into a single
instruction read, avoiding the current
"lock > read CPU > read current thread > unlock" path in SMP
architectures and thus greatly improves the read performance.
However, since the kernel relies on a copy of the "current thread"s on
every CPU for certain operations (i.e. to compare the priority of the
currently scheduled thread on another CPU to determine if IPI should be
sent), we can't eliminate the copy of "current thread" (`current`) from
the `struct _cpu` and therefore the kernel now has to invoke
`arch_set_curr_thread()` in addition to what it has been doing. This
means that it will take slightly longer (most likely one instruction
write) to change the current thread pointer on the current
CPU.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Document change to mipi-dbi device binding, and provide users with
example of how to transition to the new mipi-mode property.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add note about compatible change for NXP PORT IP. Also, update
references to the DT compatible within board docs.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Update Test Application diagram as well as Test Scenario and
Test Case naming conventions to make them more clear and aligned
to Ztest suite name included as a part of Test Case name.
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Remove the deprecated HCI driver API which was provided by the hci_driver.h
header file. The deprecation happened in Zephyr 3.7, so the API can now be
removed for Zephyr 4.1.
Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
The API directory really isn't the best place for shell
documentation, which isn't API.
Created a new directory for Bluetooth shell documentation
and moved the ISO and LE Audio docs in there.
The existing bluetooth-shell.rst file was also split into
several new files, so that it follows the same structure.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Extended hardware map to share a single board between variants.
To run tests for different variants on the same board
without re-configuring the hardware map file for each variant,
one can use a `platform` atribute as a list of names.
Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
Aligns subnet bridge related commands according to conventions used for
rest of the shell commands. Also updates documentations to reflect the
change.
Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
The main problem of MBEDTLS_PSA_CRYPTO_LEGACY_RNG is that it
brings in some legacy modules (entropy + ctr_drbg/hmac_drbg)
which means extra ROM/RAM footprint.
MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG instead simply calls to the
CSPRNG which makes it definitely smaller.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
The LVGL flush thread was hard-coded to be cooperative.
For long-running actions like data transfer to the display,
this is problematic as it might block high-frequency actions like
USB or input events.
Hence, make it configurable to be preemptive, and rename it to match the
similar Kconfig values like CONFIG_SDL_THREAD_PRIORITY.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
Mention that CONFIG_NATIVE_APPLICATION &
CONFIG_NATIVE_SIM_NATIVE_POSIX_COMPAT have been deprecated.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
\verbatim is not giving the right output as we need an inline literal.
Switch to \c instead.
Fixes#81595.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Adds support for using relay buffers and advertising set for the subnet
bridge feature, even if the relay feature is disabled.
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
add entry in migration guide 4.1 about renaming of compatible from
zephyr,gpio-steppers to zephyr,gpio-stepper
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
This commit fixes incorrect c prototype and defintion of
stepper_set_callback to stepper_set_event_callback
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
This adds a new kconfig for eviction algorithm which needs page
tracking. When enabled, k_mem_paging_eviction_add()/_remove()
and k_mem_paging_eviction_accessed() must be implemented.
If an algorithm does not do page tracking, there is no need to
implement these functions, and no need for the kernel MMU code
to call into empty functions. This should save a few function
calls and some CPU cycles.
Note that arm64 unconditionally calls those functions so
forces CONFIG_EVICTION_TRACKING to be enabled there.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Adds compiler flag(s) and some architecture-specific relocations
for ARC. No userspace support, doesn't support all relocations.
Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>
Fixes: #78010
This commit implements the "Gateway Advertisement and Discovery" process
defined in section 6.1 of the MQTT-SN specification.
This includes breaking changes to the transport interface and the default
included UDP interface implementation as support for UDP multicast
messages is added as implemented by the Paho MQTT-SN Gateway.
Signed-off-by: Kenneth Witham <kennywitham4@gmail.com>
Add support for realloc (and realloc_aligned) into the multi heap lib,
where the buffer sent in will either be reused (maybe shrinked),
or enlarged by allocating on any of the matching heaps of the multi heap.
Signed-off-by: Meir Komet <mskomet1@gmail.com>
Links and the manufacturer name are updated from maxim to analog
for the 1-wire subsystem and the related ds18b20 sensor.
After the acquisition of Maxim Integrated the documentation
of these devices has been moved to the analog.com website.
Redirects exist, so they are not broken yet,
but we should not rely on that.
Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
Add a struct led_dt_spec to hold an LED device and index pointer, some
initializer and wrapper APIs.
This allows simpler LED usage, such as:
static const struct led_dt_spec led = LED_DT_SPEC_GET(DT_NODELABEL(led0));
led_on_dt(&led);
led_off_dt(&led);
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
In frames with multiple writes (officially supported through
`CONFIG_LV_Z_VDB_SIZE`) the display needs to be signalled that the
current frame is over and the content should be displayed.
This allows displays to present the UI without tearing artifacts.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
Introduces support for double-buffered/latched displays.
Currently, every write has to be presented to the user immediately,
which negates the advantage of latched displays to prevent frame tearing.
Now, GUI managers can indicate whether the current `display_write` call
is the last call of the frame or not, allowing displays to group writes
to a single present.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
1. Move deprecated items to the deprecated section.
2. Fixed a portion of a sentence that was deleted.
3. Miscellaneous cleanup.
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
some entries were not properly put under either
Removed or Deprecated section. This commit
fixes that.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Previously, the anchor for `_POSIX_THREAD_SAFE_FUNCTIONS` was
`posix_thread_safe_functions` but it should have been
`posix_option_thread_safe_functions`.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Remove unwanted reference link to the section (Usage)
in ARM Coresight Trace Deformatter that shows up in
the main Debugging documentation page, by lowering
the level of (Usage) heading from ##### to *****
The commit also has a typo fix.
Signed-off-by: Ahmed Adel <a.adel2010@gmail.com>
Add entry in "Major enhancements with this release include:" for
stepper device driver subsystem.
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
Currently, Twister Statuses are only useful for
the initiated, save for the very basics.
This is in opposition to the fact
that they are the main thing end users take into
account when checking their Twister run reports.
In order to make Statuses more useful for the end user,
a new documentation page has been created,
elucidating the full meaning of all Statuses.
Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
This is added via PRs #79337 and #79263 to automatically check if a
colorbar pattern generated by a camera pipeline is correct or not.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
Add entry in "Major enhancements with this release include:" for
comparator device driver subsystem.
Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Utilize a code spell-checking tool to scan for and correct spelling errors
in various files within the `doc` directory.
Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
No significant changes have been made to the SD subsystem since 3.7. Add
a note documenting this for the 4.0 release.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The LVGL pull request was started before v3.7 release but merged
after, so needs to be included in v4.0 release notes. This was an
omission in commit 467f31190e.
Signed-off-by: Josuah Demangeon <me@josuah.net>
This reverts commit 5e225e0c8b.
Based on #79931 and TSC discussions, it was decided that TinyCrypt
will be deprecated *AFTER* 4.0.
Signed-off-by: Flavio Ceolin <flavio.ceolin@gmail.com>
In the description of the partial-final frame of the SMP UART transport
specification was a typo in the maximum allowed raw body size. The size
must not be larger than MTU - 5 because there are 5 bytes occupied by
total length (2), frame termination (1) and crc (2).
Signed-off-by: Simon Moser <simon.github@mailbox.org>
Refactored the structure of the troubleshooting section so it
is more similar to how e.g. the ArchWiki lists troubleshooting
entries, which makes it easier to search for and separate
each entry.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The exisitng documentation was out of date and
possibly not working.
Added a section on how to use NAT and port forwarding.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The documentation guidelines have a specified order of
header underlines that this file did not follow.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
There is no way to know for sure the size of an image built for a test,
given that zephyr can build for so many different architectures,
platforms, software supports, etc. So it should be clear that the filter
for min_ram and min_flash on the twister testcases is an estimate, and
not a strictly well known value.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Add an extra "git show" step to the release process to verify that the
key has been indeed signed.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Add entries for video driver contributed or enhanced.
Add entries for video APIs introduced or modified.
Signed-off-by: Josuah Demangeon <me@josuah.net>
This completes the existing "Documentation" section of the release notes
for 4.0 by documenting the various changes/improvements implemented
during the last development cycle.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Update of release notes in areas related to Storage and Flash.
Additionally two known Stream Flash issues have been added to
Know Issue section.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
This introduces the release notes and migration guide for 4.1.0 earlier
than we typically do, so that people have a placeholder to start adding
content as they line up pull requests for 4.1.
The two documents are currently orphan and not visible from the main
documentation as this would confuse users of 4.0.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
SD and MMC devices now require the disk-name property. Add a note to the
migration guide so that users know the recommended value to add for this
name for each disk driver type.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Remove CONFIG_MMC_VOLUME_NAME, and set the disk name based on the
``disk-name`` property. This aligns with other disk drivers, and allows
for multiple instances of the mmc_subsys disk driver to be registered.
Add disk-name properties for all in tree definitions for the
mmc-subsys disk driver, and change all in tree usage of the disk name
Fixes#75004
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Remove CONFIG_SDMMC_VOLUME_NAME, and set the disk name based on the
``disk-name`` property. This aligns with other disk drivers, and allows
for multiple instances of the sdmmc_subsys disk driver to be registered.
Add disk-name properties for all in tree definitions for the
sdmmc-subsys disk driver, and change all in tree usage of the disk name
Fixes#75004
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
As part of TinyCrypt deprecation process (#79566) this commit
removes usage of this library from the JWT subsystem and its
related tests.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Following the deprecation of TinyCrypt (#79566) we remove
TinyCrypt usage in random generators. This basically only affects
the CTR-DRBG random generator which from now only will only make
use of Mbed TLS.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
As part of the deprecation process of TinyCrypt started in #79566,
this commit set the TinyCrypt based crypto shim driver as
deprecated.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
With the recent update to Sphinx RTD theme 3.0.0, a 19px-high element
that used to display the version number is not visible anymore, so the
JS code that hides the upper-left logo when scrolling down needs to be
adjusted to account for this change.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Hide the main table of contents so that it doesn't show up in the actual
documentation index, only in the side bar. This helps keep the index
less cluttered and to the point.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Help make sure the most important documentation entry points are visible
without scrolling by moving less important information "under the fold".
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Remove deprecated _ENUM_TOKEN and _ENUM_UPPER_TOKEN. These are
deprecated for over three years by now.
Signed-off-by: Joel Hirsbrunner <jhirsbrunner@baumer.com>
To use Xtensa toolchain, various environment variables must be
set so the executables can find necessary files and what core
to compile for. This becomes an annoyance when you have to
test multiple boards with different cores. You have to use
one set of environment variables per core. Twister cannot test
them all in one setting, and it is especially annoying doing
west builds. So enhance the environment variables handling so
that TOOLCHAIN_VER and XTENSA_CORE can be replaced by
TOOLCHAIN_VAR_<board> and XTENSA_CORE_<board> where <board>
is the normalized board target (think <board>.yaml). CMake
will then figure out the core ID for the toolchain to use.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The documentation of "Kernel/Data Structures" incorrectly
states that 'all provided structures are uniformly unsynchronized;
access to them is not threadsafe by default'.
In reality, some of them are threadsafe and some are not.
This might discourage users from using threadsafe data structures
where applicable, or mislead users into adding unnecessary locks.
This proposal addresses the issue by specifying thread safety
for each provided data structure.
My assessment of thread safety is based purely on source code analysis;
hence an expert verification would be appreciated.
Signed-off-by: Vukan Turkulov <vukant@gmail.com>
The initial note about the install guide for different distributions
can be easily overlooked. Add a second note to make it more prominent
in the first step.
Signed-off-by: Timon Skerutsch <zephyr@diodes-delight.com>
Add a check to ensure that all zephyr_file/zephyr_raw links are pointing
to valid paths in the current zephyr tree.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
In preparation of adding a check for dead references, this commit fixes
currently broken zehpyr_file: links.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Commit 52e8b1058c (doc: project: clarify
WG member eligibility) broke the link to the collaborator section by
using nested inline markup, which is currently not supported:
https://docutils.sourceforge.io/FAQ.html#is-nested-inline-markup-possible
As the various workarounds are not recommended by Docutils, this change
simply ends the bold formatting before the link.
Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
This resolves some addressed comments in this PR
https://github.com/zephyrproject-rtos/zephyr/pull/77930
It adds as well a section in the documentation about some
recommendations to increase ZMS performance.
Signed-off-by: Riadh Ghaddab <rghaddab@baylibre.com>
We no longer render Doxygen content in Sphinx after the removal of
breathe, so let's remove rst related aliases from Doxyfile. Also adjust
some headers that contained rst content.
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
It's already mentioned in the board.tmpl template file as well as in
documentation writing guidelines so fix this leftover and make sure
people contributing boards aim for webp format as it helps with file
size while supporting transparency.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Fixes: #69548
Support extending an existing board with new board variants.
This commit introduces the following changes to allow a board to be
extended out-of-tree.
The board yaml schema is extended to support an extend field which
will be used to identify the board to be extended.
A board 'plank' can be extended like this:
> board:
> extend: plank
> variants:
> - name: ext
> qualifier: soc1
For the rest of the build system this means that there is no longer a
single board directory.
The existing CMake variable BOARD_DIR is kept and reference the
directory which defines the board.
A new CMake variable BOARD_DIRECTORIES provides a list of all
directories which defines board targets for the board.
This means the directory which defines the board as well as all
directories that extends the board.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
What is changed?
- Added a new mps3 board an552 for the soc corstone300.
The qualifier to build/run application with board mps3/an552 is
`mps3/corstone300/an552` for secure and
`mps3/corstone300/an552/ns` for non-secure.
- Added FVP variant to enable FVP testing with corstone300
and it uses the ARM FVP `FVP_Corstone_SSE-300_Ethos-U55`.
The qualifier to build/run application with FVP is
`mps3/corstone300/fvp` for secure and
`mps3/corstone300/fvp/ns` for non-secure.
- Note: the qualifier to build/run application with board mps3/an547
is now changed to
`mps3/corstone300/an547` for secure and
`mps3/corstone300/an547/ns` for non-secure.
How is it changed?
- Moved common code from mps3/an547 to corstone300.
- Renamed soc for an547 to corstone300 and added
a new soc corstone300/an552.
Why do we need this change?
- This enables FVP support and testing for corstone300.
- SOC/qualifier for mps3/an547 was renamed to reduce code redundancy
- A separate FVP variant was added for AN552 because, the TFM board
used for non-secure variant differs for FPGA and FVP.
TFM board `arm/mps3/corstone300/fvp` should be used when testing
AN552 with FVP and `arm/mps3/corstone300/an552` should be used when
testing with AN552 FPGA.
Signed-off-by: Sudan Landge <sudan.landge@arm.com>