Remove setting of base_label and use-property-label from soc-nv-flash
binding file. We don't really need to set either of these properties
in the binding and it just goes to make things more complicated than
they need to be.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
In an effort to reduce the number of CONFIG_ defines in dts files, we
can remove CONFIG_MCUMGR_SMP_UART and just always set
'zephyr,uart-mcumgr' as there is no harm to always having this set for
those board dts files that define the property.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit introduces k_sleep() return value, which provides
information about actual sleep time. If the returned value is
not-zero, the thread slept shorter than requested, which is
only possible if the thread has been woken up by k_wakeup() call.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit fixes the issue with non-default max packet size (<64).
The max packet size value was not passed to low-level driver
in norfic hal (nrfx_usbd) causing 64-byte being send regardless of
configured endpoint size. Size mismatch results in communication
error on Linux hosts.
Signed-off-by: Paweł Zadrożniak <pawel.zadrozniak@nordicsemi.no>
ICMPv4 checksum is not optional and thus cannot be zero. Hence, drop
packet with invalid zero ICMPv4 checksum.
Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
__cxxabiv1 is an internal namespace used by GNU's libstdc++.
When linking with C++ standard library (libstdc++),
__cxxabiv1::__class_type_info is already defined inside.
If user code contains virtual classes,
__cxxabiv1::__class_type_info is defined twice.
Signed-off-by: Benoit Leforestier <benoit.leforestier@gmail.com>
Check the return value of i2c_reg_read_byte() and return
if unable to read the register
Coverity-CID: 188740
Fixes#10585
Signed-off-by: Satya Bhattacharya <satyacube@gmail.com>
This commit optimizes access to RNG driver by taking advantage
of the data structures layout. As result, number of calls to RNG
driver is reduced.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit introduces usage of likely()/unlikely() macros in order
to speed up the entropy_get_entropy_isr() API.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
The entropy_nrf_get_entropy_isr(), which is specific to this driver,
is in fact equivalent of generic entropy_get_entropy_isr(..., 0).
This commit removes the entropy_nrf_get_entropy_isr() function
and replaces its usage by call to generic entropy API.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit optimizes access to device data using direct reference
instead of relying on the driver_data field in the device structure.
Such approach saves few cycles on time-critical paths.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
The old algorithm managing random number pools was inefficient and
prone to race conditions. Moreover, its behaviour was not compatible
with the API (provided buffers were filled from the end, leaving
beggining of the buffer untouched if there was not enough random data).
The new implementation is a bit faster and it is race-free as long as
all callers of the entropy_get_entropy_isr() are executed in
"run-to-completion" mode.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit changes the argument passed to ISR to the pointer
to device data structure, removing one dereference in the interrupt
handler.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commint replaces function names by more accurate ones.
For example, the isr(), was renamed to rng_pool_put(), which
clerarly indicates what this function is doing.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
The entropy_nrf5_get_entropy_isr(..., ENTROPY_BUSYWAIT)
unconditionally started and stopped hardware random number generator
disrupting management of random data pools implemented by the driver.
Moreover, simultaneous call to mentioned function from different
priorities led to hangup of lower priority call as hardware was
stopped by higher priority call while the other one waited for data.
This commit solves mentioned problems by moving the responsibility
for stopping hardware to the interrupt handler. As result hardware
is stopped only when there is no blocking calls to the
entropy_nrf5_get_entropy_isr() as well as all random data pools
are full.
This commit also fixes interrupt management in the mentioned
function, as previous implementation unconditionally enabled
interrupt causing problems similar to the described above.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
Neither entropy_nrf5_get_entropy_isr() nor isr() protected
access to hardware. As result in some situations a random value
could be "stolen" by a higher priority call interrupting one
of the mentioned functions.
This commit solves this problem by introducing random_byte_get()
which accesses hardware atomically.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
The nrf_rng HAL uses barriers on SoCs which need them to ensure
that all register writes will reach the peripheral immediately.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
Align the dma_callback() signature to the new one in order
to avoid warnings during compilation.
Signed-off-by: Armando Visconti <armando.visconti@st.com>
Stop specifying that the 'remote' app should use the same board as the
root app.
Also, add assertions to make sure that the user does not try to
override the board that is specified in the app build scripts.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Stop specifying that the OpenAMP 'remote' app should use the same
board as the root app.
Also, add assertions to make sure that the user does not try to
override the board's that are specified in the app build scripts.
This fixes#10345
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Fixing a few minor typo fixes in kernel/mem_domain.c
and the respective documentation section.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
drivers/bluetooth/hci/spi.c: In function ‘bt_spi_open’:
drivers/bluetooth/hci/spi.c:475:31: error: passing argument 2 of ‘gpio_init_callback’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gpio_init_callback(&gpio_cb, bt_spi_isr, BIT(GPIO_IRQ_PIN));
^~~~~~~~~~
In file included from drivers/bluetooth/hci/spi.c:9:0:
include/gpio.h:247:20: note: expected ‘gpio_callback_handler_t {aka void (*)(struct device *, struct gpio_callback *, long unsigned int)}’ but argument is of type ‘void (*)(struct device *, struct gpio_callback *, unsigned int)’
static inline void gpio_init_callback(struct gpio_callback *callback,
^~~~~~~~~~~~~~~~~~
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
/home/galak/git/zephyr/subsys/usb/usb_device.c: In function ‘usb_transfer_work’:
/home/galak/git/zephyr/subsys/usb/usb_device.c:1156:58: error: passing argument 4 of ‘usb_dc_ep_write’ from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = usb_dc_ep_write(ep, trans->buffer, trans->bsize, &bytes);
^
In file included from /home/galak/git/zephyr/include/usb/usb_device.h:39:0,
from /home/galak/git/zephyr/subsys/usb/usb_device.c:68:
/home/galak/git/zephyr/include/drivers/usb/usb_dc.h:270:5: note: expected ‘u32_t * const {aka long unsigned int * const}’ but argument is of type ‘int *’
int usb_dc_ep_write(const u8_t ep, const u8_t *const data,
^~~~~~~~~~~~~~~
/home/galak/git/zephyr/subsys/usb/usb_device.c:1168:8: error: passing argument 4 of ‘usb_dc_ep_read_wait’ from incompatible pointer type [-Werror=incompatible-pointer-types]
&bytes);
^
In file included from /home/galak/git/zephyr/include/usb/usb_device.h:39:0,
from /home/galak/git/zephyr/subsys/usb/usb_device.c:68:
/home/galak/git/zephyr/include/drivers/usb/usb_dc.h:328:5: note: expected ‘u32_t * {aka long unsigned int *}’ but argument is of type ‘int *’
int usb_dc_ep_read_wait(u8_t ep, u8_t *data, u32_t max_data_len,
^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Fix a compile warning if we build using int types defined to match the
compiler. We get the following warnings:
kernel/msg_q.c: In function ‘_impl_k_msgq_alloc_init’:
kernel/msg_q.c:75:9: warning: passing argument 3 of ‘__builtin_umul_overflow’ from incompatible pointer type [-Wincompatible-pointer-types]
(u32_t *)&total_size)) {
^
kernel/msg_q.c:75:9: note: expected ‘unsigned int *’ but argument is of type ‘u32_t * {aka long unsigned int *}’
__builtin_umul_overflow expects to be passed unsigned int for all its
arguments, so cast to that instead of u32_t.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Fix a compile warning if we build using int types defined to match the
compiler. We get the following warnings:
lib/mempool/mempool.c: In function ‘sys_mem_pool_alloc’:
lib/mempool/mempool.c:317:48: warning: passing argument 3 of ‘_sys_mem_pool_block_alloc’ from incompatible pointer type [-Wincompatible-pointer-types]
if (_sys_mem_pool_block_alloc(&p->base, size, &level, &block,
^
lib/mempool/mempool.c:221:5: note: expected ‘u32_t * {aka long unsigned int *}’ but argument is of type ‘int *’
int _sys_mem_pool_block_alloc(struct sys_mem_pool_base *p, size_t size,
^~~~~~~~~~~~~~~~~~~~~~~~~
lib/mempool/mempool.c:317:56: warning: passing argument 4 of ‘_sys_mem_pool_block_alloc’ from incompatible pointer type [-Wincompatible-pointer-types]
if (_sys_mem_pool_block_alloc(&p->base, size, &level, &block,
^
lib/mempool/mempool.c:221:5: note: expected ‘u32_t * {aka long unsigned int *}’ but argument is of type ‘int *’
int _sys_mem_pool_block_alloc(struct sys_mem_pool_base *p, size_t size,
^~~~~~~~~~~~~~~~~~~~~~~~~
Make local variables block & level u32_t to match what
_sys_mem_pool_block_alloc expects.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
es-WiFi compatible modules use IWIN AT command set.
This driver is split into several layers:
- bus layer: interface to transmit AT commands (SPI, USB, UART...)
- core layer: es-WiFi module management (state, scan...)
- offload layer: TCP/IP offload operations (connect, listen...)
This driver has been tested with stm32l4 disco iot board
(disco_l475_iot1) and the wifi sample:
$ select wifi
$ scan
$ connect "CISCO" 5 password
$ select net
$ tcp connect 192.168.1.21 4242
$ tcp send HelloWorld!
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Enhance test to validate a scenario where k_thread_name_set()
with NULL as thread ID should set thread name to current
thread.
Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
We first check to see if we have a valid elf file before doing anything
else. Otherwise we'd could get script errors instead of just notifying
the user the file doesn't exist.
Signed-off-by: Kumar Gala <kumar.gala@gmail.com>
We need a minimum of --outdir, --objdump, and --nm set for the script to
work so mark these arguments as required.
Signed-off-by: Kumar Gala <kumar.gala@gmail.com>
Do a straight forward conversion from optparse to argparser. All
of our other python scripts use argparser already.
Signed-off-by: Kumar Gala <kumar.gala@gmail.com>
log_strdup requested for a piece of memory, with the first 4 bytes as
the number of references and the next used to copy strings. In the
implementation of this function, the memory is managed by user and
is a little hard to understand.
Rewriting this part of code, using structure to manage the memory
requested, make it easier to understand.
Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
Can choose the C++ standard (C++98/11/14/17/2a)
Can link with standard C++ library (libstdc++)
Add support of C++ exceptions
Add support of C++ RTTI
Add C++ options to subsys/cpp/Kconfig
Implements new and delete using k_malloc and k_free
if CONFIG_HEAP_MEM_POOL_SIZE is defined
Signed-off-by: Benoit Leforestier <benoit.leforestier@gmail.com>
I have no idea what I was thinking when I wrote this.
But, it's an easy fix to remove the void * entirely.
Signed-off-by: Michael Scott <mike@foundries.io>
In Bluetooth 5 the definition of LE security mode 1, has changed.
LE Security Mode 1 level 4 requires authenticated LE Secure Connections
pairing with encryption using a 128-bit strength encryption key.
This also changes the behaviour when a security request and response
would end up with a security level that is lower than the one requested.
Before pairing would complete, and the link would disconnect with error
authentication failure. Instead a SMP will abort pairing with error code
authentication requirement, or encryption key size.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>