blob: 92e51cf6ff1ba797eb8b591cac022077b0525daa [file] [log] [blame]
# Copyright (c) 2018-2020 O.S.Systems
# SPDX -License-Identifier: Apache-2.0
menuconfig UPDATEHUB
bool"UpdateHub Firmware Over-the-Air support"
select FLASH
select REBOOT
select IMG_MANAGER
select IMG_ENABLE_IMAGE_CHECK
select BOOTLOADER_MCUBOOT
select MPU_ALLOW_FLASH_WRITE
select NETWORKING
select REQUIRES_FULL_LIBC
select NET_UDP
select NET_SOCKETS
select NET_SOCKETS_POSIX_NAMES
select COAP
select DNS_RESOLVER
select JSON_LIBRARY
select TINYCRYPT
select TINYCRYPT_SHA256
select HWINFO
help
UpdateHub is an enterprise-grade solution which makes simple to
remotely update all your embedded devices in the field. It
handles all aspects related to sending Firmware Over-the-Air
(FOTA) updates with maximum security and efficiency, while you
focus in adding value to your product.
if UPDATEHUB
config UPDATEHUB_POLL_INTERVAL
int "Time to poll interval (in minutes)"
default 1440
range 0 43200
help
Set the interval that the UpdateHub update server will be polled.
This time interval is zero and 43200 minutes(30 days).
config UPDATEHUB_PRODUCT_UID
string "Product Unique Identifier (UID)"
help
The product unique identifier is used when communicating
with the UpdateHub server.
config UPDATEHUB_SUPPORTED_HARDWARE_MAX
int "Max number of supported hardware"
default 1
range 1 100
help
Configure the max number of supported hardware
by the same image.
config UPDATEHUB_CE
bool "Use UpdateHub Community Edition Sever"
help
Allow the use of UpdateHub Community
Server (updatehub-ce) as alternative to the
updatehub.io enterprise server.
config UPDATEHUB_SERVER
string "User address for the updatehub-ce-server"
depends on UPDATEHUB_CE
help
This configuration is default, if need to use
other address, must be set on the UpdateHub shell
config UPDATEHUB_SHELL
bool "UpdateHub shell utilities"
depends on SHELL
select KERNEL_SHELL
help
Activate shell module that provides UpdateHub commands like
config UPDATEHUB_DTLS
bool"Activate communication CoAPS/DTLS"
select MBEDTLS
select MBEDTLS_ENABLE_HEAP
select NET_SOCKETS_SOCKOPT_TLS
select NET_SOCKETS_ENABLE_DTLS
help
Enables DTLS communication between the UpdateHub
client and the server
config UPDATEHUB_COAP_CONN_TIMEOUT
int "CoAP connection timeout in seconds"
default 10
range 1 360
help
Set the CoAP connection timeout value.
config UPDATEHUB_COAP_MAX_RETRY
int "Maximum retries attempts to download a packet"
default 10
range 3 10
help
Set the maximum number of retries attempts to download a packet
before abort a current update.
config UPDATEHUB_COAP_BLOCK_SIZE_EXP
int "Max CoAP block size defined as 2^(4 + EXP)"
default 6
range 0 6
help
Configure the max size of a data payload were value:
0 - COAP_BLOCK_16
1 - COAP_BLOCK_32
2 - COAP_BLOCK_64
3 - COAP_BLOCK_128
4 - COAP_BLOCK_256
5 - COAP_BLOCK_512
6 - COAP_BLOCK_1024
This value is mapped directly to enum coap_block_size.
choice
prompt "Firmware verification"
default UPDATEHUB_DOWNLOAD_STORAGE_SHA256_VERIFICATION
config UPDATEHUB_DOWNLOAD_SHA256_VERIFICATION
bool "SHA-256 on download"
help
Enables SHA-256 verification of data stream while downloading.
Notice that it does not check whether the image written to a
storage is still valid, it only confirms that what has been
downloaded matches the server side SHA.
To check if the data written to permanent storage matches the SHA
simultaneously, enable "Both download and flash verifications"
option.
config UPDATEHUB_STORAGE_SHA256_VERIFICATION
bool "SHA-256 from flash"
help
Enables SHA-256 verification of stored data stream. When this
option is enabled, the data stream will be read back from the
storage and verified with SHA to make sure that it has been
correctly written.
To check if the download data stream matches the SHA simultaneously,
enable "Both download and flash verifications" option.
config UPDATEHUB_DOWNLOAD_STORAGE_SHA256_VERIFICATION
bool "SHA-256 from both download and flash"
help
Enables SHA-256 verification on both data stream while downloading
and stored data stream on flash.
It is advised to leave this option enabled.
endchoice
module = UPDATEHUB
module-str = Log level for UpdateHub
module-help = Enables logging for UpdateHub code.
source "subsys/logging/Kconfig.template.log_config"
endif