Clear the whole 192 bytes of bbram, before writing the magic value to it.
test pass "west twister -cviG -T tests/drivers/bbram/".
Fixes#69119
Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
The transfer byte order of SDP is big-endian.
The transaction ID(tid) should be big-endian before
sending.
And tid needs to be converted to CPU byte order
after receiving.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add an initial input driver for the PixArt PAT9125EL, just core
functionalities for now, will add more configuration properties at a
later stage.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
The last message in an i2c_transfer msg array implies a STOP. This
documents the expected behavior of the i2c_transfer command a bit more
in that every i2c_transfer() call is expected to leave the bus in a
useful state for the next subsequent call to i2c_transfer().
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
The stream_start() callback needs to return 0 for success. However, to
indicate work has been successfully scheduled, k_work_schedule() could
return either 0 (already scheduled) or 1 (newly scheduled).
Due to this issue, the sw_generator could not start streaming. Fix it.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
SPI configuration "operation" field is a bitmask of several
configuration settings for the SPI interface when using SPI controllers
with the MIPI DBI API. The initialization statement for this
configuration structure had a comma after the "duplex" property where a
binary or should be present. correct this issue
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The main improvement is that mcux_i3c_transfer() and
mcux_i3c_i2c_api_transfer() will try much harder to not return an error
that could be caused by the bus being busy. The bus could be busy because
of IBI handling, especially if there are multiple I3C devices all raising
IBI that need to be processed, which can involve a number of context
switches and delays and take considerable time such that an application
initiated I3C transfer request might have returned busy. Replaced the code
that polled for idle state with a timeout with an infinite loop on a
condvar. The condvar is broadcast to at the end of every stop, which should
be when the bus goes idle.
Details of other changes:
* Remove ibi_lock, which seemed not useful. Use the single lock (switched
from semaphore to mutex so it can be released by condvar) for both IBI
handling and application requests.
* Remove code that disables i3c controller interrupts during transfers.
Since the only interrupt is SLVSTART, and that just posts a work, it
didn't seem necessary to disable that interrupt.
* Don't clear SLVSTART interrupt in mcux_i3c_status_clear_all(), to prevent
any application transfers from accidentally clearing the SLVSTART
interrupt or the handling of one IBI clearing the START initiated by
another I3C device immeidately as the other one finishes.
The only clearing of SLVSTART is in the isr.
* Add back a wait in mcux_i3c_request_auto_ibi(), otherwise the ibitype
could be 0 if the processor is faster than the auto ibi handling.
An earlier change removed a wait for MCTRLDONE, which isn't
always set when AUTO_IBI is requested, but that could mean we try to
read the ibitype before it's ready. Waiting for IBIWON instead should be
correct and better, since the AUTO_IBI should result in IBIWON status bit
being set (and MCTRLDONE being set would not guarantee that IBIWON was
set).
* Change mcux_i3c_request_emit_stop() to still wait for idle if requested,
even if the STOP wasn't actually issued, and add the release of the new
condvar
* Change mcux_i3c_do_one_xfer_read() to handle the IBI use case differently
than the regular application requested transfer case. In the application
requested transfer case, the rx_len is known and set in RDTERM, so we
could check for the COMPLETE status bit, but for IBI transfers, we
just do a read to the payload buffer without knowing how many bytes
the target may send us so never get a COMPLETE. Rather than check for a
COMPLETE bit that might never occur, just have both cases read until we
either read all requested bytes or we get a timeout error. But for the
timeout error, if it's IBI and non-zero bytes were received, return
the bytes received instead of an error.
* Change mcux_i3c_do_one_xfer() to return the error returned by
mcux_i3c_do_one_xfer_read/write().
* Remove spurious return -EIO from end of mcux_i3c_do_daa()
* Change mcux_i3c_ibi_enable() to restore SLVSTART on error, and
add some LOG_ERR() messages for error cases. Also add check to
make sure idx is valid since there is a limit to how many IBI
this controller can support.
* Change mcux_i3c_ibi_disable() to always reenable SLVSTART interrupt,
even if the CCC to tell the target to disable IBI events fails.
* Change mcux_i3c_isr() to reenable SLVSTART interrupt if the
work_enqueue() fails.
Signed-off-by: Mike J. Chen <mjchen@google.com>
This is just a simple wrapper around Zephyr's native log api.
Note: the standard LOG_ERR syslog priority does conflict with
Zephyr's LOG_ERR() macro. This will need to be worked-around on
a case-by-case basis.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
The method get_kconfig_dts() relies on str's split() to split
lines into fields separated by ':'. The second field is an
absolute path to a file.
On Windows, an absolute path includes a drive's letter followed
by ':' which breaks the current code.
On Linux, although rare, a file or directory name may also include
':', which would also break the code.
The fix is to constraint the number of splits to 1.
The code then becomes:
_,b = line.split(":", 1)
Signed-off-by: Yves Vandervennet <yves.vandervennet@nxp.com>
A payload size of 0xFF is valid and should not be a reason to keep
looping for more headers. The complete reqiurement is now:
```
header_slave[STATUS_HEADER_READY] == READY_NOW &&
header_slave[STATUS_HEADER_TOREAD] > 0
```
This fixes events being dropped when the payload size is 255.
Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
Add test cases for IPv4/IPv6 foreach functions that iterate all
multicast addresses assigned to an interface.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Use TC_END_REPORT() to report "PROJECT EXECUTION FAILED"
instead of a call to printk() for ZTEST enabled tests. as
this prints the failed message as well as the RunID (and
whatever will be added in future).
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Allow the use of the NTP server address, set by
dhcpv4 option, by the net_init_clock_via_sntp function.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Add test case verifying that send() returns an error when called after
TLS session has been closed.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
It was an overlook to return 0 on TLS send() call, after detecting that
TLS session has been closed by peer, such a behavior is only valid for
recv(). Instead, an error should be returned.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
SSIDs can contains commas (,) when receiving scan results (+CWLAP) or
status (+CWJAP) over AT command from ESP-AT chip. This is in conflict with
modem subsystem argument parsing, which separates arguments automatically
whenever comma is encountered.
Use a direct modem command parsing, so that commas within quoted strings
are taken into account to be part of that string, instead of being treated
as delimiter.
This solves `wifi scan` and `wifi status` Zephyr shell commands output, for
networks containing commas (like "My_2,4GHz_AP") as part of SSID.
Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
According to [1], SSID and PSK need to be escaped:
Escape character syntax is needed if SSID or password contains any
special characters, such as , or " or \
Implement character escaping to fix connection attempt to WiFi APs
containing special characters as part of SSID, like "My_2,4GHz_AP".
Increase "connect command" buffer length to handle worst-case scenario of
all the SSID and PSK characters being special characters.
[1] https://docs.espressif.com/projects/esp-at/en/release-v2.4.0.0/esp32/AT_Command_Set/Wi-Fi_AT_Commands.html#id6
Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
Return error to the caller if no data was received or there
was some other error. Earlier we did not check the error
condition properly.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
The cmd_sync_broadcast command now also takes an optional broadcast
code, to support syncing with encrypted broadcasts.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This allows to properly drop single CMUX frames that are
too big to fit in the receive buffer, keeping track of
where they end so that following frames are received
correctly regardless of the data contents.
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
The SOF delimiter byte may be omitted when a frame follows another
that just ended with that byte.
The parsing used to expect that second delimiter anyway,
which resulted in PPP frames going missing.
As an additional improvement, dropped bytes as well as the length
of received frames are now (debug) logged.
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
modem_pipe_attach() can send events before returning, which could
provoke a crash as ppp->pipe, still NULL at that time, could be
used either in receiving (if the pipe had some data pending) or
in sending (if the PPP module had already been attached and had
some data to send in its transmit buffer).
ppp->pipe is now set before modem_pipe_attach().
Also, the ATTACHED_BIT is now set only after having actually attached.
And finally, the send_work is now scheduled on PIPE_EVENT_OPENED
so that data is flushed when the (closed) attached pipe is opened.
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
This makes the modem backends use the log level
set for the modem modules instead of the default one.
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
Some Xtensa cores do not support NMI, so XCHAL_HAVE_NMI=0 and
XCHAL_NMILEVEL won't be defined at all causing
arch/xtensa/include/xtensa-asm2-s.h to throw compilation error.
Fixes: #67855
Signed-off-by: Maciej Kusio <maciejkusio@meta.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
wget is required for installing Zephyr SDK on macOS.
Add this to the homebrew install command as a dependency.
Signed-off-by: Andrew Thompson <andrew@clone.co.nz>
Iterate through I2C addresses in devicetree overlay
for build_all/gpio to avoid conflicts.
Fixes#69551
Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
The default 512 bytes stack size is a bit tight for some architecture
and leads to samples running out of stack. Let's default to 1024 and let
the user tweak it down if necessary.
Suggested-by: Benjamin Cabé <benjamin@zephyrproject.org>
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
This makes it possible to set the minimum IPv6 packet size that
can be sent without fragmentation. The default value is 1280 bytes.
This commit allows user to set the IPv6 MTU value within reasonable
limits [1280, 1500].
Fixes#61587
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
We select sockets service API in Kconfig but should select also
sockets API so that user does not need to set the sockets API separately.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
The "net sockets" command did not print network management
socket information properly but claimed that the socket
was IPv4 one which it is not.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
The net_mgmt socket does not support poll() or fcntl(), so
return EOPNOTSUPP error if user tries to use those functions
for AF_NET_MGMT type socket.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
This adds additional memory region property
to NFCT peripheral. This is not mandatory
property, it adds possibility to user to
specify memory region for DMA transfer.
If it is not set then data buffer is placed
in default RAM with other data.
Signed-off-by: Kamil Gawor <Kamil.Gawor@nordicsemi.no>
Signed-off-by: Dominik Chat <dominik.chat@nordicsemi.no>
Simply added the missing 'a' in guaranteed. Found this
when I was too lazy to search for the correct spelling
and was hoping to just grep for it.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Build vendor LLL as separate library so that independent
compiler flags can be supplied if required.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Skip doc/security/vulnerabilities.rst when checking for undefined Kconfig
symbols as older vulnerabilities can contain references to removed Kconfig
symbols.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>