Commit graph

56,286 commits

Author SHA1 Message Date
Julia Hathaway
7292cea0a3 doc/probes: Add debug probe and host tools table and ST-Link tabs
Includes a table to display compatibility between debug probes and host
tools.
Moves the J-Link External Debug Probe section up for consistency with
host tools listings and to clarify separation between sections.
Reformats Flash and debug with ST-Link section with tabs for different
host tool options for clarity and readability.

Signed-off-by: Julia Hathaway <julia.hathaway@nxp.com>
2021-07-22 17:33:43 -04:00
Julia Hathaway
97086105a4 doc/host-tools: Add tabs to SAM-BA section to improve readability
Reformats the three sections on flash configuration for devices with
different bootloader compatibility into tabs to streamline instructions

Signed-off-by: Julia Hathaway <julia.hathaway@nxp.com>
2021-07-22 17:33:43 -04:00
Marek Pieta
573e70b474 samples: hci_rpmsg: Use release configuration by default
Change removes logs and assertions from default configuration.
They can be optionally enabled with debug_overlay.conf.
CONFIG_BT_BUF_CMD_TX_COUNT is increased to avoid dropping
HCI commands.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
2021-07-22 22:42:22 +03:00
Agata Ponitka
0f61c0c65f Bluetooth: tester: Add Key Refresh Procedures tests support
Add support for automatic testing of KRP.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
1dbfc40705 Bluetooth: tester: Add provisioner support
Add provisioning procedure for automatic testing.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
41024b60eb Bluetooth: tester: Add Mesh Health Client Model tests support
Add support for automatic testing of Mesh Health Client Models.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
a279ff3958 Bluetooth: Mesh: Fix Health Client Model
Assigning a value to the msg_timeout parameter.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
b89003df86 Bluetooth: tester: Add Mesh Configuration Client tests support
Add support for automatic testing of Mesh Configuration Client Models.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
22aafd422c Bluetooth: Mesh: Add missing Configuration Client API
Add missing API:
- Delete all group addresses in a SIG model's subscription list
- Update a network key
- Update an application key
- Get/Set Node Identity parameters
- Set virtual addtess for a SIG model
- Get/Set Key Refresh Procedures

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Agata Ponitka
e962cbb9fd Bluetooth: Mesh: Fix Configuration Client API
Hardcoded invalid Company ID was used instead of the parameter passed to
the API.

Signed-off-by: Agata Ponitka <agata.ponitka@codecoup.pl>
2021-07-22 22:41:32 +03:00
Kumar Gala
6758325162 ci: Update daily build to use SDK 0.13.0-rc3
Update daily image to docker v0.17.5 to get SDK 0.13.0-rc3 for
testing purposes.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-07-22 19:37:34 +03:00
Gerard Marull-Paretas
2f5a9d033d doc: improve latex look and feel
This patch improves the general look and feel of the LaTeX (PDF)
documentation build. Changes include:

- A custom title with relevant information has been created
- Some colors have been adjusted to match those in the web template
- Charter font family is used

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-22 19:37:03 +03:00
Vinayak Kariappa Chettimada
2c606239e2 Bluetooth: Controller: Make adva and tgta check function file static
The functions to check advertising and target address in a
PDU are used only inside the same file, hence make them file
static functions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-07-22 17:35:22 +02:00
Vinayak Kariappa Chettimada
33c06e6992 Bluetooth: Controller: Move assignments close to locality of reference
Minor refactor to move assignment statements close to their
locality of reference.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-07-22 17:35:22 +02:00
Vinayak Kariappa Chettimada
dee5b53b73 Bluetooth: Controller: Add target address check to extended scanning
Add target address check to extended scanning implementation
to detect invalid target address present in primary and
auxiliary channel PDU. Implementation is reuse of the check
used in the initiator after refactoring to pass parameter to
differentiate, its use for primary or auxiliary channel, and
for scanning or initiating.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-07-22 17:35:22 +02:00
Martin Åberg
a1d1a5f547 SPARC: Keep interrupts disabled during kernel init
This commit avoids enabling interrupts during Zephyr init.

Details:
Interrupts will be enabled only when the first thread starts or if
arch_irq_unlock() is called before that.

The logic is now:
1. Enable traps, disable interrupts globally
2. Initialize bss
3. Call _PrepC

Use in-place memset() to avoid register window overflow and underflow
traps. That is perhaps not the common scenario, but could happen with
memset() implementation which contains SAVE instructions on a system
with few register windows.

The second, and more important, item this commit addresses is that it
increases the processor interrupt level (priority) to highest. That
is, it enters _PrepC with all maskable interrupts levels disabled.

This fixes some cases where interrupts could be taken after
z_clock_driver_init() while the system was still initializing. That
seem to have occurred when clearing large thread stacks.

The third thing is that we now start out with current window pointer
0 (PSR.CWP=0) instead of 1. It has no practical implication except
for preparing for possible future support for systems with only
two windows.

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>
2021-07-22 10:25:53 -04:00
Leonard Pollak
50edb6f22c samples: sensor: Added example for SGP40 and SHT4X
This adds an example application for Sensirions SGP40 gas sensor
and SHT4X T/RH sensor.

The measured T/RH are used to make use of the on-chip T/RH compensation
of the SGP40.

Signed-off-by: Leonard Pollak <leonardp@tr-host.de>
2021-07-22 10:17:13 -04:00
Leonard Pollak
2d0fd2554a drivers: sensor: SHT4X Added support
This adds support for Sensirion's SHT4X temperature and
humidity sensor.

Signed-off-by: Leonard Pollak <leonardp@tr-host.de>
2021-07-22 10:17:13 -04:00
Leonard Pollak
0d7cb32c58 drivers: sensor: SGP40 Added support
This adds support for Sensirion's SGP40 multipixel gas sensor.

Signed-off-by: Leonard Pollak <leonardp@tr-host.de>
2021-07-22 10:17:13 -04:00
Daniel Leung
ee7773fb46 soc: intel_adsp: fix linker script for XCC
XCC's linker cannot properly process our linker script with
regard to cached/uncached memory regions as the linker cannot
correctly calculate addresses using boolean operations.
Fix this by doing address pointer arithmetic manually to
move between cached and uncached memory regions.

The addresses of symbols were compared via nm and they are
the same before and after this change.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Daniel Leung
d248a5d4f3 soc: xtensa/intel_adsp: fix bootloader building under XCC
XCC's own xt-objcopy does not recognize the "--dump-section"
command. So simply copy the objecy file into binary so it can
be included in the final bootloader binary.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Daniel Leung
605cad1190 xtensa: cache: XCC needs to declare variable outside for loop
XCC doesn't like that a for loop which declares the loop
variable inline. So extract the declaration of the loop
variable outside the for loop.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Daniel Leung
5fbe389d9f soc: intel_adsp: fix inclusion of sys/util.h under XCC assembler
This moves the inclusion of sys/util.h inside the #if block to
avoid this being included when going through XCC's assembler.
With the old behavior, a bunch of std*.h get pulled in resulted
in build failure as keywords such as "typedef" are not supposed
to be in assembly files according to XCC assembler.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Daniel Leung
cca65a986e scripts: gen_syscalls: skip GCC pragma on -Warray-bound for XCC
XCC doesn't recognize GCC pragma to ignore -Warray-bounds. So #if
it out, or else XCC would complain about unknown option for all
syscall generated header files.

Fixes #36661

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Daniel Leung
70d0077574 cmake: don't enable color diagnostics for xcc
The compiler option "-fdiagnostics-color=always" is not known to XCC
(which is based on really old GCC). So don't enable color
diagnostic output when building with XCC.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 15:41:11 +03:00
Jim Shu
70e1dee42c kernel: fix kobj table if having .sdata section.
The gperf generated data needs to be placed at the end of memory
to avoid pushing symbols around in memory, but data in .sdata section
aren't placed currently. Also renaming .sdata section to kobject_data.*
section and add it to kobject_data output section to fix issue.

Fixes #37023.

Signed-off-by: Jim Shu <cwshu@andestech.com>
2021-07-22 07:29:21 -05:00
Daniel Leung
9debd59368 tests: schedule_api: use stack array extern macro
The stack array tstacks was declared in the header file using
the same macro which defines the same stack array but with
an added "extern" in front. This macro adds alignment and section
attribute which are actually not the same as the actual stack array
defined in main.c. The section name used in the section attribute
contains the file name where the stack array is defined or extern
declared. So the same symbol, in this case z_interrupt_stacks, has
different attributes in two places, and GCC 11 starts to complain
about this. So use the newly introduced macro to extern declare
the stack array without adding/replacing any symbol attributes.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
15a46cfee4 tests: mem_protect: fix warning on uninitialized variable
In test_kobject_release_null(), dummy is not initialized
before being fed to k_object_release(). So set it.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
e3704ccda3 tests: kernel/common: avoid using compiler builtin popcount
Not all arch has native support for __builtin_popcount() on
hardware and GCC falls back in using software only implementation.
However, with GCC 11, this is no longer included automatically
and requires linking explicitly with libgcc.a. This is not
trivial as it requires changes some linker magic and a sizable
change to most linker scripts. So opt for an easy solution
by implementing our own popcount in the test.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
dbc0be487f kernel: use proper macro to declare extern interrupt stacks
The z_interrupt_stacks was declared extern in the kernel internal
header file using the same macro which defines the same stack
array but with an added "extern" in front. This macro adds
alignment and section attribute which are actually not the same
as the actual stack array defined in kernel/init.c. The section
name used in the section attribute contains the file name where
the stack array is defined or extern declared. So the same
symbol, in this case z_interrupt_stacks, has different
attributes in two places, and GCC 11 starts to complain about
this. So use the newly introduced macro to extern declare
the stack array without adding/replacing any symbol attributes.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
c6163e93cb kernel: add macros to allow declaring extern stack arrays
A stack can already be declared extern via K_KERNEL_STACK_EXTERN().
This adds similar macros for stack arrays.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
a3413a30e3 kernel: move Z_KERNEL_STACK_LEN higher in thread_stack.h
Moves Z_KERNEL_STACK_LEN() higher in the header file so it is
near the other stack size calculation macros. Also, it was
actually declared after it is first used in the header.
So this seems a logical move.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Daniel Leung
c0c0dc3d17 x86: type cast to uint8_t* for bit ops
This changes the type casting of the incoming addresses to
the bit ops from uint32_t* to uint8_t*. This avoids compilers
and static analyzers complaining about the incoming out of
bound access if incoming argument is an array smaller than
4 bytes.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-07-22 07:24:11 -05:00
Bud Wandinger
7a2b248b98 Bluetooth: Mesh: Added support for application access to mesh messages
Added bt_mesh_msg_send() which can be used by the application to
directly send model layer messages without local instantiation of
related models. Also added bt_mesh_msg_cb_set() which allows the
application to recieve mesh model layer messages without local
instantiation of related models.

Added bt_mesh_has_addr() which returns a bool. For unicast addresses,
this returns whether or not bt_mesh_elem_find() was successfull. If the
above mentioned bt_mesh_msg_cb_set() has been used by the application to
set a message callback, this returns true so that the stack attempts to
push every model message up to the application via the callback. If no
callback has been set, group addresses are searched to see if the stack
should pass the message up the stack to an instantiated model.

These changes allow applications that do not or can not instantiate
models to interface with models in a mesh network. This is applicable to
applications which act as a Bluetooth mesh gateway, sniffer, debugger,
network monitoring, non-mesh relay/extender, etc.

In app_keys.c friend.c net.c bt_mesh_elem_find() is used only to
determine the existance of an address. The full return value of
bt_mesh_elem_find() is unecessary and so was replaced by the above
mentioned bt_mesh_has_addr() function in these instances.

Simplified bt_mesh_elem_find() by removing the search through group
address. Since the above mentioned bt_mesh_has_addr() function handles
instances where group addresses must be searched, it was no longer
necessary to preform this search in this function.

Signed-off-by: Bud Wandinger <bud@budkoembedded.ca>
2021-07-22 06:23:56 -04:00
Lingao Meng
6e7939bc77 net: Fix missing __ASSERT_ON micro
Fix missing `__ASSERT_ON` cause build error
when not defined.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-07-22 06:21:55 -04:00
Luka Lopotar
7b67e239fe sensor: bq274xx: Add power management and shutdown mode
Add support for power management and the shutdown mode for bq274xx fuel
gauge sensor. This now allows boards that have any kind of low power
mode to turn on or off the sensor.

Tested on a Company's custom board with bq27421 sensor on it.

Signed-off-by: Luka Lopotar <luka.lopotar@greyp.com>
2021-07-22 06:21:25 -04:00
Manivannan Sadhasivam
573d70bdbf lorawan: Fix setting APP_KEY using MacMibSetRequest
For setting the APP_KEY, "mib_req.Param.AppKey" field should be used.
Fix it!

Fixes: #36540

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2021-07-22 06:11:41 -04:00
Francois Ramu
325edf23d7 drivers: dma: stm32 source_periph incorrectly set in dma_stm32
The flag source_periph seems to be incorrectly set in dma_stm32.
In case the transfer direction is from periph to mem, then the
stream->source_periph is 1 (true) else it is false.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 06:06:11 -04:00
Francois Ramu
9f840b8c75 tests: uart: uart async test running on the stm32l5xx boards
add support of the dma  (V2bis) for the stm32l5 for uart transfers.
on all available target boards

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
a720712441 tests: spi: spi loopback test running on the stm32l5xx boards
add support of the dma (V2) for the stm32l5 for spi transfer.
on all available target boards

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
f647a48cfa dts: stm32l5 configure the dma V2 with new bindings
The dma V2 instances have only 3 parameters in thei dma-cells.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
ee7a17282b tests: drivers: spi loopback test with overlay for each stm32 board
Based on the new bindings for the stm32 dma feature,
the overlay for enabling the dmamux on spi client is modified.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
bd9182887a tests: drivers: uart asynch test with overlay for each stm32 board
Based on the new bindings for the stm32 dma feature,
the overlay for enabling the dma on uart client is modified.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
89be03ad10 boards: arm: disco_l475_iot1 board DTS of the dma-cell on quadspi
The stm32l47r soc has a dma of type dma-v2, so the cells have
only 3 elements,. This adpat for the quadspi periph.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
8fe0831c6b include: dt-bindings: remove dma header for stm32 soc
All the macro for dma-cells are now in the
include/drivers/dma/dma_stm32.h header file.
So the include/dt-bindings/dma/stm32_dma.h is no more
useful and removed from #include.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
30fd0228ae drivers: dma of the stm32 refactored macro for the dma-cells
The macro to set the element of the dma-cells for each peripheral
are defined in the dma_stm32 header file
and used in the periph driver (as dma client)

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
cf61cca389 dts: arm: stm32 families redefines the dma compatibility
Each stm32 dma can be of V1 or V2 or V2bis type. Each type
has a dma-cell with specific nb of element. The feature and slot
properties are not required depending on the stm32 family.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
9b1d21f0b8 dts: bindings: dma for stm32 is repackaged with generic dts
This will define a new bindings for any stm32 dma feature
Depending on the soc family, the DMA is of V1 or V2 or Vbis type
And give a factored definition for feature
The difference is on the dma-cell structure.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
dcefbd67ed drivers: dma: stm32 dma driver for a new dma version
This is the dma V2bis which is particular DMA V2 instance for
stm32F1 and STM32L1 soc series. This DMA does not use the dma slot
Otherwise it is similar to version V2.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
6312b7383d drivers: dma: stm32 dma driver using DT compat macro
Controlling the DMA offset  for the request, relies on the
dma version different from V1

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00