Commit graph

808 commits

Author SHA1 Message Date
Jamie McCrae
b28ccc207d mgmt: mcumgr: mgmt: Add group callback function
Adds a group callback function which can be used to iterate over
all the registered MCUmgr command groups

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-08-26 17:05:27 +02:00
Jamie McCrae
031f9f2943 mgmt: mcumgr: grp: img_mgmt: Add optional image slot state callback
Adds an optional callback which can be used to append custom
fields to the image slot state command response

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-08-22 14:22:49 -04:00
Pisit Sawangvonganan
8f197c955d style: subsys: comply with MISRA C:2012 Rule 15.6
Add missing braces to comply with MISRA C:2012 Rule 15.6 and
also following Zephyr's style guideline.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-08-20 10:33:51 +02:00
Henrik Brix Andersen
69fe9b0c50 net: buf: remove use of special putter and getter functions
Convert users of net_buf_put() and net_buf_get() functions to use
non-wrapped putters and getters k_fifo_put() and k_fifo_get().

Special handling of net_bufs in k_fifos is no longer needed after commit
3d306c181f, since these actions are now
atomic regardless of any net_buf fragments.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-08-16 09:55:11 +02:00
Jun Lin
1aff275642 soc: npcx: scfg: select host interface type in global
The Host Interface Type in the DEVCNT register sets the HIF type
(either eSPI or LPC).
Currently, it is configured in the host-interface-related drivers like
eSPI or SHI. However, some I/O pads sourced from VHIF in the other
modules such as GPIO and I3C also rely on this field. It might be
problematic when using those I/Os without enabling eSPI or SHI drivers.
This commit moves the setting from the specific drivers to the global
system initialization function scfg_init().

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-08-14 10:47:15 +01:00
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
Pieter De Gendt
ad63ca284e kconfig: replace known integer constants with variables
Make the intent of the value clear and avoid invalid ranges with typos.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-07-27 20:49:15 +03:00
Jamie McCrae
0d6532d27c mgmt: mcumgr: smp: Initialise variable
Seemingly newer versions of gcc wrongly detect a variable is used
when it is not set, this is not the case the compiler is wrong,
add a default set to null to prevent the fake warning appearing
as an error in CI

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2024-07-11 12:39:33 +02:00
Jamie McCrae
f516ee1639 mgmt: mcumgr: transport: Fix SMP header not being packed
Fixes an issue with using SMP on devices that do not support
unaligned memory access e.g. Cortex M0 which would result in a
hard fault

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2024-07-11 12:39:33 +02:00
Jamie McCrae
c769a647fa mgmt: mcumgr: transport: bluetooth: Fix dynamic registration option
Fixes the Kconfig for dynamic service registration to make it depend
on dynamic database support instead of selecting it, which prevents
issues whereby it is not actually selected

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2024-07-11 09:36:14 +02:00
Jordan Yates
91f8c1aea9 everywhere: replace #if IS_ENABLED() as per docs
Replace `#if IS_ENABLED()` with `#if defined()` as recommended by the
documentation of `IS_ENABLED`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-06-28 07:20:32 -04:00
Duy Nguyen
259b3d0095 arch: arm: Add initial support for Cortex-M85 Core
Add initial support for the Cortex-M85 Core which is an implementation
of the Armv8.1-M mainline architecture.

The support is based on the Cortex-M55 support that already exists in
Zephyr.

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
2024-06-26 13:36:14 -04:00
Lingao Meng
302422ad9d everywhere: replace double words
import os
import re

common_words = set([
    'about', 'after', 'all', 'also', 'an', 'and',
     'any', 'are', 'as', 'at',
    'be', 'because', 'but', 'by', 'can', 'come',
    'could', 'day', 'do', 'even',
    'first', 'for', 'get', 'give', 'go', 'has',
    'have', 'he', 'her',
    'him', 'his', 'how', 'I', 'in', 'into', 'it',
    'its', 'just',
    'know', 'like', 'look', 'make', 'man', 'many',
    'me', 'more', 'my', 'new',
    'no', 'not', 'now', 'of', 'one', 'only', 'or',
    'other', 'our', 'out',
    'over', 'people', 'say', 'see', 'she', 'so',
    'some', 'take', 'tell', 'than',
    'their', 'them', 'then', 'there', 'these',
    'they', 'think',
    'this', 'time', 'two', 'up', 'use', 'very',
    'want', 'was', 'way',
    'we', 'well', 'what', 'when', 'which', 'who',
    'will', 'with', 'would',
    'year', 'you', 'your'
])

valid_extensions = set([
    'c', 'h', 'yaml', 'cmake', 'conf', 'txt', 'overlay',
    'rst', 'dtsi',
    'Kconfig', 'dts', 'defconfig', 'yml', 'ld', 'sh', 'py',
    'soc', 'cfg'
])

def filter_repeated_words(text):
    # Split the text into lines
    lines = text.split('\n')

    # Combine lines into a single string with unique separator
    combined_text = '/*sep*/'.join(lines)

    # Replace repeated words within a line
    def replace_within_line(match):
        return match.group(1)

    # Regex for matching repeated words within a line
    within_line_pattern =
	re.compile(r'\b(' +
		'|'.join(map(re.escape, common_words)) +
		r')\b\s+\b\1\b')
    combined_text = within_line_pattern.
		sub(replace_within_line, combined_text)

    # Replace repeated words across line boundaries
    def replace_across_lines(match):
        return match.group(1) + match.group(2)

    # Regex for matching repeated words across line boundaries
    across_lines_pattern = re.
		compile(r'\b(' + '|'.join(
			map(re.escape, common_words)) +
			r')\b(\s*[*\/\n\s]*)\b\1\b')
    combined_text = across_lines_pattern.
		sub(replace_across_lines, combined_text)

    # Split the text back into lines
    filtered_text = combined_text.split('/*sep*/')

    return '\n'.join(filtered_text)

def process_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        text = file.read()

    new_text = filter_repeated_words(text)

    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(new_text)

def process_directory(directory_path):
    for root, dirs, files in os.walk(directory_path):
        dirs[:] = [d for d in dirs if not d.startswith('.')]
        for file in files:
            # Filter out hidden files
            if file.startswith('.'):
                continue
            file_extension = file.split('.')[-1]
            if
	file_extension in valid_extensions:  # 只处理指定后缀的文件
                file_path = os.path.join(root, file)
                print(f"Processed file: {file_path}")
                process_file(file_path)

directory_to_process = "/home/mi/works/github/zephyrproject/zephyr"
process_directory(directory_to_process)

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2024-06-25 06:05:35 -04:00
Jordan Yates
07870934e3 everywhere: replace double words
Treewide search and replace on a range of double word combinations:
    * `the the`
    * `to to`
    * `if if`
    * `that that`
    * `on on`
    * `is is`
    * `from from`

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-06-22 05:40:22 -04:00
Yong Cong Sin
d9743aaa35 include: mgmt: mcumgr: remove deprecated functions
These functions have been deprecated for more than 2 releases,
remove them:

- zephyr_smp_rx_req
- zephyr_smp_alloc_rsp
- zephyr_smp_free_buf

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-06-18 14:32:56 -04:00
Tomi Fontanilles
703e5258eb mgmt: updatehub: replace TinyCrypt by PSA
As part of ongoing work to move away from TinyCrypt and towards PSA
(#43712), introduce a PSA option and remove the TinyCrypt one for the
SHA-256 implementation.

The Mbed TLS implementation is modified to use `mbedtls_sha256`
directly for smaller code size.

The reliance of mgmt/updatehub on storage/flash_map's configuration
(`FLASH_AREA_CHECK_INTEGRITY_BACKEND`) is removed.
The choice of which implementation to use is made automatically,
based on whether a PSA API provider is present (`PSA_CRYPTO_CLIENT`).

This commit also add a test case with PSA (based on Mbed TLS)
in samples/subsys/mgmt/updatehub/sample.yaml.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-06-14 14:02:08 -04: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
Siddharth Chandrasekaran
45085ba647 mgmt/osdp: cp: disallow unexpected SC responses
When CP has a secure channel active, it should never receive a
REPLY_CCRYPT or REPLY_RMAC_I. Since these responses change the SC state,
let's also make sure that they are accepted only when they are
expected: in response to commands CMD_CHLNG and CMD_SCRYPT respectively.

Reported-by: Eran Jacob <eran.jacob@otorio.com>
Signed-off-by: Siddharth Chandrasekaran <sidcha.dev@gmail.com>
2024-06-07 16:47:55 +03:00
Dominik Ermel
bce06a64c4 mgmt/mcumgr: Replace use of flash_area_erase with flash_area_flatten
The commit replaces flash_area_erase with flash_area_flatten.
The function is used in to places:
 1) in image management commands IMG_MGMT_ID_UPLOAD
    and IMG_MGMT_ID_ERASE: to erase an image in secondary slot
    or to scramble trailer part of image, which could be misunderstood
    by MCUboot as valid image operation request;
 2) in command ZEPHYR_MGMT_GRP_BASIC_CMD_ERASE_STORAGE to
    erase/scramble data partition.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2024-06-04 08:00:46 +02:00
Tomi Fontanilles
c1342b3aa9 modules: mbedtls: remove the default enabling of features
In an effort to shave off code size, remove out-of-the-box
enabling of crypto features (except SHA-256).

Configurations are adjusted to enable what they need.

Bonuses:

- When enabled, AES now defaults to using a smaller version
(`CONFIG_MBEDTLS_AES_ROM_TABLES` isn't default enabled anymore,
and if enabled, `CONFIG_MBEDTLS_AES_FEWER_TABLES` defaults to y).

- Conditions around Mbed TLS Kconfig options have been improved
to reflect the reality of the dependencies.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-05-31 16:33:06 -05:00
Tomi Fontanilles
3efdbe6c0c modules: mbedtls: rename CONFIG_MBEDTLS_MAC_*_ENABLED and rm duplicates
Remove the `_MAC` part because those Kconfig options enable only hash
algorithms, nothing MAC-related, and the `_ENABLED` part to align the
naming to the Mbed TLS defines (plus we don't need such a part).

As a bonus, enabling SHA-256 does not automatically enable SHA-224
anymore.

See the migration guide entries for more details on the practical
changes.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-05-29 08:39:26 +02:00
Yong Cong Sin
bbe5e1e6eb build: namespace the generated headers with zephyr/
Namespaced the generated headers with `zephyr` to prevent
potential conflict with other headers.

Introduce a temporary Kconfig `LEGACY_GENERATED_INCLUDE_PATH`
that is enabled by default. This allows the developers to
continue the use of the old include paths for the time being
until it is deprecated and eventually removed. The Kconfig will
generate a build-time warning message, similar to the
`CONFIG_TIMER_RANDOM_GENERATOR`.

Updated the includes path of in-tree sources accordingly.

Most of the changes here are scripted, check the PR for more
info.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-05-28 22:03:55 +02: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
Jamie McCrae
b3ffe0aede mgmt: mcumgr: transport: Add missing net include file
Adds a missing network include file which was causing an undefined
function build failure, likely caused by a recent change affecting
includes in other header files

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-05-21 09:36:24 +02:00
Dominik Ermel
cda52f80b5 mgmt/MCUmgr/img: Fix img_mgmt_get_unused_slot_area_id checks
Remove image == -1 check that can not happen anymore.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2024-05-17 14:48:24 -05:00
Tomi Fontanilles
6002abe519 mgmt: mcumgr: replace Tinycrypt by PSA
As part of ongoing work to move away from TinyCrypt and towards PSA
(#43712), make fs_mgmt use either PSA (when available) or MbedTLS
(as a fallback) for SHA-256.

The use of PSA is guarded by CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT
which requires a locally-built PSA core for devices without TF-M.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-05-10 18:24:38 -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
Gerson Fernando Budke
94cd46d6ef mgmt: updatehub: Fix mark for update
This fixes compatibility with recent bootutils API.

Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
2024-05-07 09:31:08 +02: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
Gerson Fernando Budke
5fb62ca960 mgmt: updatehub: Fix json arrays
After the changes introduced by #50816 the UpdateHub could not decode
anymore the JSON object. This introduce missing parsing definitions
to allow JSON parser undertood the correct UpdateHub probe object.

Fixes #69297

Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
2024-05-02 10:55:34 +02: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
Dominik Ermel
c007e717d4 mcumgr/img_mgmt: Fix zcbor logic in os_mgmt_bootloader_info
There have been to problems with the code where zcbor_bool_encode
has been fed value instead of expected pointer and the result
of previous zcbor_encode operations has not been taken to evaluate
value of ok status.
The change also replaces usage of  #if IS_ENABLED with #ifdef, as
IS_ENABLED should not be used outside if().

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2024-04-24 14:55:57 -04: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
João Gonçalves
96737a8e81 mgmt: smp: fix smp client with shell transport
Fix typo in mcumgr shell transport relating to SMP client.

Signed-off-by: João Gonçalves <jomigo96@yahoo.com>
2024-04-11 11:27:51 -05: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
Pieter De Gendt
f65715cb63 mgmt: mcumgr: Remove POSIX_API dependency for UDP transport
Zephyr subsystems should use non-posix socket API.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-04-02 14:31:23 +01:00