Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# 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 "Enable 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