Update the response callback function signature to allow the callback to
return an error code, which in turn will cause the HTTP client to abort
the download.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
This commit removes the SHI enable in the initialization. It can be
enabled by the application explicitly calling it when needed. The SHI
backend relies on the application layer to provide a data buffer for EC
Host Commands. If SHI is enabled before this buffer is initialized,
there is a risk that the driver may access a NULL buffer, leading to a
system panic.
Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
Adds support for using img mgmt in firmware loader mode, to allow
for loading an update image to a device
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
When the supplied server address is already an
ip address, CONFIG_DNS_RESOLVER is not required,
as zsock_getaddrinfo() can resolve literal addresses
without it.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
the k_event_clear in the work might be to late sometimes, when
hawkbit_autohandler_wait() is executed directly after
hawkbit_autohandler(). This leads to getting the events
of the former execution and also not waiting until the
current autohandler run is finished.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Added a hook on the FS group that notify applications when a
file download/upload has completed.
Signed-off-by: Nicolas Goualard <nicolas.goualard@sfr.fr>
anonymous/no authentication mode had been removed
from the last hawkBit server release, so mention it and
deprecate the option.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Allows erasing secondary slot which is marked for test or confirmed.
This is safe as bootloader doesn't make any action on boot-setup yet.
Erase of such pending image might considered like the case when it
was never downloaded as well.
This allow user to not stuck with pending irremovable image.
Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
The LoRaWAN SMP transport uses MCUMGR_TRANSPORT_LORAWAN_REASSEMBLY to
enable reassembly. It selects MCUMGR_TRANSPORT_REASSEMBLY, which causes
smp_transport_init to call smp_reassembly_init on the passed transport.
This makes the subsequent call to smp_reassembly_init in the LoRaWAN
transport initialization redundant.
Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
`imply` should only be used if the code can still operate without the
symbol, which is not the case. Move the ID source to a choice symbol,
which depends on `HWINFO` when required.
Signed-off-by: Jordan Yates <jordan@embeint.com>
Errors were logged for some cases in zephyr_img_mgmt.c, but not all.
This commit adds error logs for all error cases.
Signed-off-by: Nick Brook <nrbrook@gmail.com>
Fixes an issue when using custom payloads where the size was still
using the zcbor buffer instead of the size of the network buffer
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Adds a new Kconfig for selecting swap using move in MCUboot which
aligns with the proper MCUboot symbol and allows for adding
additional mode Kconfigs
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Allocate only one 'struct sockaddr_storage', instead of two separate
'struct sockaddr_in' and 'struct sockaddr_in6'. This saves some space in
case both IPv4 and IPv6 are used. Additionally it reduced preprocessor
ifdef statements, resulting in more readable code.
This also solves '-Warray-bounds=' GCC warning (reproducible with
'native_sim' and GCC version 14.2.1 on Arch Linux):
In function ‘create_socket’,
inlined from ‘smp_udp_receive_thread’ at \
subsys/mgmt/mcumgr/transport/src/smp_udp.c:242:7:
subsys/mgmt/mcumgr/transport/src/smp_udp.c:205:37: warning: \
array subscript ‘struct sockaddr[0]’ is partly outside array \
bounds of ‘struct sockaddr_in[1]’ [-Warray-bounds=]
205 | tmp_sock = zsock_socket(addr->sa_family, SOCK_DGRAM, \
| ~~~~^~~~~~~~~~~
IPPROTO_UDP);
subsys/mgmt/mcumgr/transport/src/smp_udp.c: In function \
‘smp_udp_receive_thread’:
subsys/mgmt/mcumgr/transport/src/smp_udp.c:170:28: note: \
object ‘addr4’ of size 8
170 | struct sockaddr_in addr4;
| ^~~~~
Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
Fixes calling the registered callbacks for image being confirmed
if the confirmation was not successful
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
This is a follow up to commit 770482a45a.
Add initialization of the `ok` variable to prevent the "may be
uninitialized" warning when `CONFIG_BOOTLOADER_MCUBOOT` is not
defined.
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
Add an array with the states names and use it while logging an error
messages.
Additionally unify the error message format. Do not add
"UART HOST CMD ERROR", because the LOG_ERR macro already informs that
it is an error message.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
Use a config, instead of hardcode, to set timeout value.
It says how much time UART backend should wait for entire message sent
in chunks.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
add CONFIG_HAWKBIT_SAVE_PROGRESS_INTERVAL, to
be able to set a interval, how often the progress is saved.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Adds a new error code that can be used to signify that a query was
valid but the response was not valid
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
This is based on the introduction of a helper Kconfig symbol in
"subsys/random/Kconfig" which is named CSPRNG_AVAILABLE. When this is
enabled it means that there is a "zephyr,entropy" property defined in the
device-tree, therefore Mbed TLS can select ENTROPY_GENERATOR to allow
the platform specific driver to be included into the build.
This commit also changes other locations where CSPRNG_ENABLED was used
moving it to CSPRNG_AVAILABLE in order to solve dependency loop
build failures.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
In the case of IPV6 not enabled, when NET_SOCKETS_PACKET is enabled,
the sizeof(struct sockarr) will change to 20, the value of
MCUMGR_TRANSPORT_NETBUF_MIN_USER_DATA_SIZE is 8, which is not able
to pass the compilation, so I change its default value to 20.
Fixes#82757
Signed-off-by: Hongquan Li <hongquan.prog@gmail.com>
Make sure smp_transport_clients list is only initialized once and
before any transports will try to register and add entries to this
list.
The smp_init() routine was called after smp_init_uart(), causing
the list to be emptied again after registration of the uart client
transport.
Signed-off-by: Bas van Loon <bas@arch-embedded.com>
Replaces code that peeked directly into the thread by instead
calling k_thread_join() to check the state of threads
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Fix possible race condition where SMP client might
release the network buffer before system worker queue
has processed it.
In smp_client uses shared resources like worker queue
linked list and network buffers without maintaining any
thread safety.
For unknown reasons, retry timeout handling is pushed
into system worker queue while the actual transmission
is handled from SMP work queue.
Fix the issue by using the same SMP work queue
for both delayable timeout handling as well as
transmission handling.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Some backends use DMA. Usually, DMA doesn't work correctly, when memory
to transfer is cached. Add a config to place the common buffers in the
nocache section.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
Disable and enable SPI module before every transaction for STM32H7
chips. It is a recommended way in the STM32 RM. In another case, a first
byte of a transaction is always 0x00.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
STM32H7 chips have additional configuration regarding underrun event.
Configure the underrun behaviour correctly to use the underrun pattern
and clear the underrun bit before sending new data.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
Move enabling CS interrupt at the end of the backend configuration,
when everything is ready.
It prevents handling the interrupt, when something is not prepared e.g.
DMA is not configured.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
Fix support for clock domains. Create define that identify if
clock domain was selected in any of the st_stm32_spi_host_cmd nodes.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>