Use vendor prefix "neorv32" for all peripherals provided by the NEORV32
RISV-V Processor project.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
MD5 and SHA1 are not supposed to be used nowadays on security context.
Some ancillary scripts in tree do use them, but for verification only -
or where externally mandated, such the SPDX tool.
This patch marks those usages as `usedforsecurity=False`, which helps
clarify intent.
Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
In current implementation, the SDP discovery complete event is not
notified when the response data length is 0.
Notify the discovery complete event if the response length is 0.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
It seems that this DTS entry has been copied from another DTS.
The address of FlexPWM1 conflicts right now with the flash memory space.
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
It is no longer possible to use other signatures other than
`int fn(const struct device *)`. Just cast the device pointer,
safe in this context because CONFIG_DEVICE_MUTABLE=y.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new set of macros to define devices with de-init capabilities.
This allows to move gradually to de-init without introducing breaking
changes.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Remove restrictions from device_init by allowing to perform device
initialization if the device state flags it being not initialized.
This makes the API usable in contexts where device_deinit has been
called before.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new API to de-initialize a device. When a device is
de-initialized, it will release any resources it has acquired
(e.g. pins, memory, clocks, DMA channels, etc.) and its status
will be left as in its reset state.
It is the responsability of the caller to ensure that the device is
ready to be de-initialized.
For now, deinit call always initializes to NULL. New macros will be
introduced to not break existing device APIs.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Instead of passing a single init function, create
struct device_ops with the init function inside. This allows to easily
extend device's capabilities in the future without too much breakage,
e.g. to add a de-init call.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Introduce a new field to store device flags. Only device deferred init
flag has been added, replacing usage of linker hackery to know wether a
device requires initialization at boot time or not. This change will be
helpful in the near future as devices will become reference counted, so we
will need to know wether they have been initialized or not.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Such union is rather redundant, considering a simple const cast can be
done when initializing the init entry. Note that the init_entry does not
need to be touched now that struct device stores the init call. It is
merely an init entry sorted by linker scripts, so we can intertwine
devices and SYS_INIT.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Device init function is no longer taken from `struct init_entry`, so
there's no need to keep such union.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
It just complicates things. It is not C99 strandard, and since C11 is
not mandatory, it is better to play safe here.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This patch adds an initial driver for the WCH DMA
controller. All hardware features and most interface
features are implemented.
Signed-off-by: Paul Wedeck <paulwedeck@gmail.com>
This commit adds the Twister `eeprom` test tag and a devicetree `eeprom-0`
alias for samples and tests.
Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
Nordic has a new tool, nRF Util (`nrfutil`) which is replacing the
previous set of command-line tools (particularly `nrfjprog`) that Zephyr
had been using by default in many of the boards to flash the firmware
onto the device.
Since nRF Util is already mature and is going to be replacing the existing
tools, including `nrfjprog`, it is now a good time to change the default
flash tool to reflect this fact.
Note that `nrfjprog` support is not being removed at all, but this may
be a breaking change for users that do not have nRF Util installed. For
this reason we also add a note in the migration guide.
More info:
https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-util-unified-command-line-utility
Installation:
https://www.nordicsemi.com/Products/Development-tools/nrf-util
Documentation:
https://docs.nordicsemi.com/bundle/nrfutil/page/README.html
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Add the documentation on how to use the commandline options to set the
IPv4 addr, gateway and netmask of a native_sim setup.
Signed-off-by: Ibe Van de Veire <ibe.vandeveire@basalte.be>
Added the abililty to set the IPv4 addres, gateway and netmask from the
command line when running a native_posix build.
Signed-off-by: Ibe Van de Veire <ibe.vandeveire@basalte.be>
Fix mistake in host implementation of Advertising Coding Selection.
The host should only try set the BT_LE_FEAT_BIT_ADV_CODING_SEL_HOST
when the observer role is enabled. If a broadcaster enables the
CONFIG_BT_EXT_ADV_CODING_SELECTION Kconfig option bluetooth will
fail to initialise.
Signed-off-by: Thomas Deppe <thomas.deppe@nordicsemi.no>
The udc_skeleton driver incorrectly calls `K_THREAD_STACK_DEFINE` with
`CONFIG_UDC_SKELETON` instead of `CONFIG_UDC_SKELETON_STACK_SIZE`. This
causes stack overflows when developing a driver based on this code.
Fix the call to `K_THREAD_STACK_DEFINE`.
Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
The pending discovery request will not be handled in some cases.
The cases include,
- The received data length is not aligned with frame length
- The continuation status length is more than maximum value
- Total length of the response is less than the frame length
- Unknown operation code is received
There is also a case where the current discovery result was not
notified when processing the pending discovery request.
The cases include,
- Fail to send SDP request
- No tail room of received buffer to save the response data
Fix the issue by using the following steps,
- Notify the application that the discovery is done
- Process the pending discovery request
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add sensortile_box_pro board overlay and config files.
This is good to verify lsm6dsv16x RTIO streaming over SPI bus.
Signed-off-by: Armando Visconti <armando.visconti@st.com>
For the `static inline` replacement of the `hostname_set`-function add
`ARG_UNUSED`-macros, such that the compiler does not warn about the unused
arguments.
Signed-off-by: Cla Mattia Galliard <cla-mattia.galliard@zuehlke.com>
If the remote is in bondable mode, but the local is in non-bondable
mode, the local host shall respond to an IO capability request with
a negative response.
In current implementation, it does not check the bonding flags of the
both sides are consistent.
Fix the issue by checking the consistency of bonding flags of the both
sides. If they are not consistent, send a negative IO capability
response with the reason pairing not allowed.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
The `conn` is found by using function `bt_conn_lookup_addr_br()`, it
should be released by calling `bt_conn_unref()`. But `bt_conn_unref()`
is missing in the case that the pairing is not accepted.
Release the `conn` by calling `bt_conn_unref()` before exiting the
function `bt_hci_io_capa_req`.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Adds a check, that the phy device in the device tree, referenced
by the phy-handle property, is enabled.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
The flash erase-blocks property was a bit malformed, it has 254 pages
of size 8192 after the first 8 pages of size 2048 to reach the total
size of 2048K. This caused issues when trying to erase the last pages
of the flash, which caused the flash erase_blocks test suite to fail.
Adjust the erase-blocks to match the flash layout.
Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
The implementation for erasing pages in the flash_sam.c driver
indicated a successful erase after exceeding the last page to be
erased successfully. Since the last page has no proceeding page,
the succeeded status was not set.
This fix switches around the status to be set as succeeded before
erase begins, to have the succeeded status cleared if page unlock
or erase fails.
Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Pinoroni Pico Plus2 is an RP2350B based board that has
more rich I/O, RAM, and Flash than the original Raspberry Pi Pico2.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
As the RP2350B has more than 32 GPIO pins,
we changed the configuration so that it is split into two ports.
To do this, we created a `raspberrypi,pico-gpio-port` node and
moved the previous `raspberrypi,pico-gpio-port` functions to it.
This became a child node of `raspberrypi,pico-gpio-port`, and
`raspberrypi,pico-gpio-port` will remain a gpio mapper.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Sysbuild may include several images and when using ninja as build tools
then build options like `ninja -v` or `ninja -j <n>` is only consumed
by the top-level build folder, which is sysbuild itself.
CMake supports setting number of jobs or verbosity using environment
variables.
Document this feature in the Building with sysbuild section.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Calling `west build --build-opt="-v" --build-opt="-j=<n>"`
passes the build options to `cmake --build ... -- <build-opt>` which
again is passed to the native build tool, such as ninja or make.
However, when ExternalProjects are used in CMake, such as in TF-M or
sysbuild builds then those extra build options are only passed to the
first image build and not those build as external projects.
CMake supports environment variables for those flags, so translate
verbosity and number of jobs to those environment variables and thereby
support those flags for all images when specified by the user.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Update the NEORV32 SoC, peripheral drivers, and board to support NEORV32
v1.11.1. Notable changes include:
- Optional RISC-V ISA Kconfigs are now selected on the board level.
- Peripheral registers are now automatically reset in hardware, no need for
software initialization code.
- The NEORV32 GPIO controller now supports 32 pins, not 64. Interrupt
support will be submitted in a separate PR.
- Default board configuration has 64k RAM and is clocked at 18 MHz.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
Originally, when Zephyr support for the NEORV32 was introduced, the idea
was to support multiple version of the SoC in Zephyr as development on the
open-source RISC-V processor continued.
Unfortunately, this has proven to be much harder than anticipated in part
due to incompatible changes between NEORV32 versions and part due to the
added test burden of verifying all changes on many different versions and
configurations.
Going forward, Zephyr will support a given release of the NEORV32
processor.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
The NEORV32 v1.8.6 does not fully support the RISC-V ISA A
extension. Remove it and enable support for atomic operations in C
regardless of the version used.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
Fix the syntax in the device tree binding example by replacing `:` with `=`
in the `compatible` property. This ensures consistency with the standard
device tree syntax.
Signed-off-by: Hank Wang <wanghanchi2000@gmail.com>