Commit Graph

78 Commits

Author SHA1 Message Date
Fin Maaß
8f9148eff8 mgmt: hawkbit: move to zephyr kernel heap
switch to kernel heap from the libc, as there
is now a `k_realloc()` available.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-08-05 11:32:49 +02:00
Fin Maaß
e1246ccb65 mgmt: hawkbit: some Kconfig improvements
some hawkbit Kconfig improvements.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-06-07 18:06:45 +01:00
Fin Maaß
f9819dc010 mgmt: hawkbit: option for cold reboot
add option for cold reboot.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-05-24 18:04:13 -04:00
Benjamin Cabé
a4c2b848c4 mgmt: fix bad SPDX-License-Identifier header
fix typo in SPDX header

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-05-08 09:23:16 -04:00
Fin Maaß
571ad19b0d mgmt: hawkbit: change the tls certificate tag
Be able to change the tls certicicate tag.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-05-06 22:50:44 +01:00
Fin Maaß
fb3704665a mgmt: hawkbit: use shell macros
use short shell macros for printing.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-05-02 13:55:28 -04:00
Fin Maaß
0012e1ff76 mgmt: hawkbit: reset action id
Be able to reset the hawkBit action id.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-05-02 09:32:18 +01:00
Fin Maaß
99953b55a5 mgmt: hawkbit: extend shell to settings
This commit extents the functions
of the hawkbit shell to set the settings

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
679cf6111b mgmt: hawkbit: set server address, port and auth_token during runtime
In situations, where the address, the port and the auth token of the
hawkbit server are not known during build, it should be possible to set
it during runtime.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
ded865f489 mgmt: hawkbit: change Kconfig port to int
Ports set by Kconfig are mostly defined
as a int. This changes it for hawkbit too.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
98d63ed286 mgmt: hawkbit: check for init
check for init before running hawkbit.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
ffb2f51127 mgmt: hawkbit: migrate to settings api
Migrates from nvs to settings api.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
1af6d0d129 mgmt: hawkbit: change to K_SEM_DEFINE
Define and initialize probe_sem with K_SEM_DEFINE

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-19 16:39:31 +00:00
Fin Maaß
10fafa025e mgmt: hawkbit: add support for custom device identity callback
add support for custom device identity callback in hawkbit

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-18 11:19:29 +02:00
Fin Maaß
11e58b3aae mgmt: hawkbit: add support to define attributes
Allows the attributes to be defined in the user application
by using a callback function.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-17 12:02:07 -07:00
Fin Maaß
8990a94d46 mgmt: hawkbit: correct ddi api calls
In hawkbit there are currently a lot of values send to the server, that
are not required or even optional. This commit corrects that.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-17 14:42:05 +02:00
Yong Cong Sin
37dfafe3f4 subsys/mgmt/hawkbit: rearrange headers
The order of the headers could use some cleanup. I'm
rearranging them alphabetically.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-04-10 10:01:33 +02:00
Yong Cong Sin
033bf60776 subsys/mgmt/hawkbit: use zsock_setsockopt instead of setsockopt
`setsockopt` is enabled by `CONFIG_POSIX_API`, use
`zsock_setsockopt` instead, otherwise there will be a
compilation error if `CONFIG_NET_SOCKETS_SOCKOPT_TLS` is
enabled.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-04-10 10:01:33 +02:00
Fin Maaß
e3f182549a mgmt: hawkbit: Add support for reboot after update
Add support for automatic reboot after successful update completion

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 12:20:48 +02:00
Fin Maaß
89c057a95a mgmt: hawkbit: optimize poll_sleep
remove unnecessary condition for CONFIG_HAWKBIT_POLL_INTERVAL,
changes poll_sleep to be in seconds,
change type of sleep_time in hawkbit_update_sleep(), so the return
value of hawkbit_time2sec() is interpreted correctly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 11:54:47 +02:00
Fin Maaß
97eb8bf78c mgmt: hawkbit: little cleanup
a little cleanup in start_http_client().

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 11:54:22 +02:00
Yong Cong Sin
10592b9df4 subsys/mgmt/hawkbit: change 'Hawkbit' & 'hawkbit' to 'hawkBit'
Change 'Hawkbit' and 'hawkbit' to 'hawkBit' wherever
makes sense, and a bit of touch ups here and there.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-04-04 09:46:22 +01:00
Fin Maaß
ba932f60af mgmt: hawkbit: remove hb_context.url_buffer_size
remove hb_context.url_buffer_size and replace it
with sizeof(hb_context.url_buffer)

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-03-28 09:43:18 +00:00
Fin Maaß
1bea938c9f mgmt: hawkbit: remove hb_context.status_buffer_size
remove hb_context.status_buffer_size and replace it with
sizeof(hb_context.status_buffer), because hb_context.status_buffer_size
is never set.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-03-22 12:42:24 +00:00
Fin Maaß
b61d6ce46e mgmt: hawkbit: check http status code in response
check http status code in response

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-03-22 09:24:45 +00:00
Fin Maaß
3fd545b05b mgmt: hawkbit: Fix condition in hawkbit_probe
Fix send_request condition in hawkbit_probe function

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-03-18 22:12:31 +01:00
Yong Cong Sin
2a8b298ee8 subsys/mgmt/hawkbit: optimize log message
A lot of the log messages are using highest level, optimize
them to recycle as much messages as possible.

When building the sample with `CONFIG_HAWKBIT_LOG_LEVEL_DBG`
on `frdm_k64f`, the FLASH size is reduced from 150860 B to
150048 B, saving ~800 bytes.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-03-15 11:08:47 +00:00
Fin Maaß
3c5172acac mgmt: hawkbit: Add error handling for HTTP requests
This patch adds error handling for HTTP requests in hawkbit

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-02-09 16:33:11 -06:00
Matthias Breithaupt
04ce5b9e58 mgmt: hawkbit: remove NET_SOCKETS_POSIX_NAMES dependency
Currently, it is not possible to use hawkbit with code that requires
POSIX_API to be set due to the dependency on NET_SOCKETS_POSIX_NAMES.
Since a lot of other code has already been moved to `zsock_`, this
commit does the same for hawkbit.

Co-authored-by: rojedag <r.ojeda@vogl-electronic.com>
Signed-off-by: Matthias Breithaupt <m.breithaupt@vogl-electronic.com>
2023-06-28 06:32:45 +00:00
Gerard Marull-Paretas
667eeb11fb shell: fix MISRA 5.7 violations on struct shell
MISRA Rule 5.7 requires uniqueness of tag identifiers. Shell is
frequently problematic because many code uses `const struct shell
*shell`. This causes CI noise every time one of these shell files is
edited, so let's update all of them with `const struct shell *sh`
instead.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-04-14 12:21:08 +02:00
Joel Guittet
b6df4ec388 hawkbit: check mcuboot header version
Checking mcuboot header version prior to use the content of the header
structure.

Signed-off-by: Joel Guittet <joelguittet@gmail.com>
2023-03-21 09:35:26 +01:00
Joel Guittet
a3d7fdafd6 hawkbit: fix memory issue with mcuboot_img_header size
Fix a memory issue when calling boot_read_bank_header the length should be
the size of `struct mcuboot_img_header`.
Fixes #54459.

Signed-off-by: Joel Guittet <joelguittet@gmail.com>
2023-03-21 09:35:26 +01:00
Jamie McCrae
31201a7f61 mgmt: hawkbit: Change Kconfig select to depends on
Changes Kconfig symbols to depend on symbols rather than selecting
them, this avoids a cmake dependency loop.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2023-03-03 10:49:32 +01:00
Christopher Friedt
dbe2c0d59e include: net: http: rename http_x.h http/x.h
Some minor housekeeping prior to adding an http server
implementation. There are already a number of http headers
and that number will likely increase with subsequent work.
Moving them into a common directory cleans up the
`include/net` directory a bit.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2022-10-12 09:02:21 -04:00
Gerard Marull-Paretas
3976ccd5f7 include: add missing sys/printk.h include
Some files were using the printk API without including sys/printk.h

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-10-11 18:05:17 +02:00
Yong Cong Sin
15b3150ac2 mgmt/hawkbit: Print hrefs only if there's an update
If the is no update from the server, the _links will be NULL.
Check if it is NULL before trying to LOG these strings.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-09-19 15:43:04 +02:00
Dominik Ermel
0d956d2d31 subsys/mgmt/hawkbit: Switch from FLASH_AREA_ to FIXED_PARTITION_
The commit switches flash area access from FLASH_AREA_ macros
to FIXED_PARTITION_ macros and to usage of DTS node labels,
to identify partitions, instead of label property.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-09-06 09:56:37 +02:00
Gerard Marull-Paretas
79e6b0e0f6 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.

The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.

NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-09-05 16:31:47 +02:00
Yong Cong Sin
dd9d6bbb44 subsys/mgmt/hawkbit: Set ai_socktype if IPV4/IPV6
Follows the implementation of updatehub and set the
`ai_socktype` only if IPV4/IPV6

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-08-18 11:33:38 +00:00
Yong Cong Sin
2ed88e998a subsys/mgmt/hawkbit: Init the hints struct to a known value
Initialize the `hints` struct to a known value so that it won't
cause undetermined behavior when used in `getaddrinfo()`.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-08-18 11:33:38 +00:00
Dominik Ermel
dd79b9c11a subsys/mgmt/hawkbit: Clean up flash map usage
The commit cleans up how flash map labels and definitions are
used.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-08-08 15:03:34 +02:00
Yudong Zhang
73c4d70614 mgmt: hawkbit: fix call to bin2hex
Fixes: f2affbd973 ("os: lib: bin2hex: fix memory overwrite")
Signed-off-by: Yudong Zhang <mtwget@gmail.com>
2022-07-11 10:30:05 +02:00
Krzysztof Chruscinski
041f0e5379 all: logging: Remove log_strdup function
Logging v1 has been removed and log_strdup wrapper function is no
longer needed. Removing the function and its use in the tree.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-06-23 13:42:23 +02:00
Yong Cong Sin
ae587f8e50 subsys/mgmt/hawkbit: format for readability
Formatted the code so that it is easier to read.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-06-07 11:52:10 +02:00
Fabio Baltieri
e24314f10f include: add more missing zephyr/ prefixes
Adds few missing zephyr/ prefixes to leftover #include statements that
either got added recently or were using double quote format.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2022-05-27 15:20:27 -07:00
Gerard Marull-Paretas
5113c1418d subsystems: migrate includes to <zephyr/...>
In order to bring consistency in-tree, migrate all subsystems code to
the new prefix <zephyr/...>. Note that the conversion has been scripted,
refer to zephyrproject-rtos#45388 for more details.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-09 12:07:35 +02:00
Yong Cong Sin
9d10127b87 subsys/mgmt/hawkbit: Kconfig: Add HAWKBIT_DDI_SECURITY to choice
Add a name for the choice of authentication modes so that it
can be default to a certain type in project's Kconfig.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-04-06 04:51:07 -04:00
Yong Cong Sin
313c49ec21 subsys/mgmt/hawkbit: Check the hash of stored firmware
Previously, the hash of the firmware is checked while we are
downloading the firmware. This isn't ideal as the validity of
the firmware written into the flash is not verified and can be
corrupted. Furthermore, checking while downloading will have an
negative impact to the download speed as the CPU need to do
more work during the data transfer.

This PR removes the previous verify-hash-while-download
implementation and use the flash_img_check API instead.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-03-31 10:28:22 +02:00
Yong Cong Sin
77d829e31e subsys/mgmt/hawkbit: Improve hawkbit_probe readability
After the firmware is downloaded in hawkbit_probe, a series of
operations are done by using the fact that the conditions of
an if-else statement will be ran until a match.

This patches separate these condition into individual
if-condition for better readability

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-03-31 10:28:22 +02:00
Nazar Kazakov
f483b1bc4c everywhere: fix typos
Fix a lot of typos

Signed-off-by: Nazar Kazakov <nazar.kazakov.work@gmail.com>
2022-03-18 13:24:08 -04:00