blob: 225c4300942917b2515d18b121ce9a003e3a738e [file] [log] [blame]
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +02001# Copyright (c) 2017-2020 Linaro Limited
2# Copyright (c) 2020 Arm Limited
3# Copyright (c) 2017-2022 Nordic Semiconductor ASA
4#
5# SPDX-License-Identifier: Apache-2.0
6
7
8menuconfig MCUBOOT_SERIAL
9 bool "MCUboot serial recovery"
10 default n
11 select REBOOT
12 select GPIO
13 select SERIAL
14 select UART_INTERRUPT_DRIVEN
15 select BASE64
Dominik Ermele009e192022-11-21 13:01:29 +000016 select CRC
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020017 help
18 If y, enables a serial-port based update mode. This allows
19 MCUboot itself to load update images into flash over a UART.
20 If unsure, leave at the default value.
21
22if MCUBOOT_SERIAL
23
24choice BOOT_SERIAL_DEVICE
25 prompt "Serial device"
26 default BOOT_SERIAL_UART if !BOARD_NRF52840DONGLE_NRF52840
27 default BOOT_SERIAL_CDC_ACM if BOARD_NRF52840DONGLE_NRF52840
28
29config BOOT_SERIAL_UART
30 bool "UART"
31 # SERIAL and UART_INTERRUPT_DRIVEN already selected
32
33config BOOT_SERIAL_CDC_ACM
34 bool "CDC ACM"
35 select USB_DEVICE_STACK
36
37endchoice
38
39config MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD
40 bool "Allow to select image number for DFU"
41 help
42 With the option enabled, the mcuboot serial recovery will
43 respect the "image" field in mcumgr image update frame
44 header.
45 The mapping of image number to partition is as follows:
46 0 -> default behaviour, same as 1;
47 1 -> image-0 (primary slot of the first image);
48 2 -> image-1 (secondary slot of the first image);
49 3 -> image-2;
50 4 -> image-3.
51 Note that 0 is default upload target when no explicit
52 selection is done.
53
54config BOOT_MAX_LINE_INPUT_LEN
Jamie McCraead1fb3d2022-12-01 14:24:37 +000055 int "Maximum input line length"
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020056 default 512
57 help
Jamie McCraead1fb3d2022-12-01 14:24:37 +000058 Maximum length of input serial port buffer.
59
60config BOOT_SERIAL_MAX_RECEIVE_SIZE
61 int "Maximum command line length"
62 default 1024
63 help
64 Maximum length of received commands via the serial port.
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020065
66config BOOT_SERIAL_DETECT_PORT
Andrzej Puzdrowskic5faf432022-04-09 13:34:23 +020067 string "GPIO device to trigger serial recovery mode (DEPRECATED)"
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020068 default GPIO_0 if SOC_FAMILY_NRF
69 help
70 Zephyr GPIO device that contains the pin used to trigger
71 serial recovery mode.
72
73config BOOT_SERIAL_DETECT_PIN
Andrzej Puzdrowskic5faf432022-04-09 13:34:23 +020074 int "Pin to trigger serial recovery mode (DEPRECATED)"
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020075 default 6 if BOARD_NRF9160DK_NRF9160
76 default 11 if BOARD_NRF52840DK_NRF52840
77 default 13 if BOARD_NRF52DK_NRF52832 || BOARD_NRF52833DK_NRF52833
78 default 23 if BOARD_NRF5340PDK_NRF5340_CPUAPP || BOARD_NRF5340PDK_NRF5340_CPUAPP_NS || \
79 BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF5340DK_NRF5340_CPUAPP_NS
Marek Pieta2fa11902022-09-13 11:31:30 +020080 default -1
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020081 help
82 Pin on the serial detect port that triggers serial recovery mode.
83
84config BOOT_SERIAL_DETECT_PIN_VAL
Andrzej Puzdrowskic5faf432022-04-09 13:34:23 +020085 int "Serial detect pin trigger value (DEPRECATED)"
Andrzej Puzdrowski35f61d32022-04-01 17:00:08 +020086 default 0
87 range 0 1
88 help
89 Logic value of the detect pin that triggers serial recovery
90 mode.
91
92config BOOT_SERIAL_DETECT_DELAY
93 int "Serial detect pin detection delay time [ms]"
94 default 0
95 help
96 Used to prevent the bootloader from loading on button press.
97 Useful for powering on when using the same button as
98 the one used to place the device in bootloader mode.
99
100config BOOT_ERASE_PROGRESSIVELY
101 bool "Erase flash progressively when receiving new firmware"
102 default y if SOC_FAMILY_NRF
103 help
104 If enabled, flash is erased as necessary when receiving new firmware,
105 instead of erasing the whole image slot at once. This is necessary
106 on some hardware that has long erase times, to prevent long wait
107 times at the beginning of the DFU process.
108
109config BOOT_MGMT_ECHO
110 bool "Enable echo command"
111 help
112 if enabled, support for the mcumgr echo command is being added.
113
114menuconfig ENABLE_MGMT_PERUSER
115 bool "Enable system specific mcumgr commands"
116 help
117 The option enables processing of system specific mcumgr commands;
118 system specific commands are within group MGMT_GROUP_ID_PERUSER (64)
119 and above, as defined within mcumgr library.
120 These are system specific command and system specific implementation
121 function is required to process these commands.
122
123if ENABLE_MGMT_PERUSER
124config BOOT_MGMT_CUSTOM_STORAGE_ERASE
125 bool "Enable storage erase command"
126 help
127 The option enables mcumgr command that allows to erase storage
128 partition.
129 Note that the storage partition needs to be defined, in DTS, otherwise
130 enabling the option will cause a compilation to fail.
131
132config BOOT_MGMT_CUSTOM_IMG_LIST
133 bool "Enable custom image list command"
134 help
135 The option enables command which returns versions and installation
136 statuses (custom property) for all images.
137
138endif # ENABLE_MGMT_PERUSER
139
140config BOOT_SERIAL_ENCRYPT_EC256
141 bool "Support for encrypted upgrade images using ECIES-P256 in serial recovery upload"
142 default n
143 help
144 If y, uploaded images via serial recovery can be decrypted
145 on the fly when upgrading to the primary slot. The
146 encryption mechanism used in this case is ECIES using primitives
147 described under "ECIES-P256 encryption" in docs/encrypted_images.md.
148
149config BOOT_SERIAL_WAIT_FOR_DFU
150 bool "Wait for a prescribed duration to see if DFU is invoked by receiving a mcumgr comand"
151 depends on BOOT_SERIAL_UART
152 help
153 If y, MCUboot waits for a prescribed duration of time to allow
154 for DFU to be invoked. The serial recovery can be entered by receiving any
155 mcumgr command.
156
157config BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT
158 int "Duration to wait for the serial DFU timeout in ms"
159 default 500
160 depends on BOOT_SERIAL_WAIT_FOR_DFU
161 help
162 timeout in ms for MCUboot to wait to allow for DFU to be invoked.
163
164endif # MCUBOOT_SERIAL