zephyr/Kconfig: own Kconfig file for serial recovery

Moved Serial recovery options to own Kconfig
file.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
diff --git a/boot/zephyr/Kconfig b/boot/zephyr/Kconfig
index da008ba..5f899fe 100644
--- a/boot/zephyr/Kconfig
+++ b/boot/zephyr/Kconfig
@@ -490,155 +490,7 @@
 	  bootloader-led0 alias must be set in the device's .dts
 	  definitions for this to work.
 
-menuconfig MCUBOOT_SERIAL
-	bool "MCUboot serial recovery"
-	default n
-	select REBOOT
-	select GPIO
-	select SERIAL
-	select UART_INTERRUPT_DRIVEN
-	select BASE64
-	help
-	  If y, enables a serial-port based update mode. This allows
-	  MCUboot itself to load update images into flash over a UART.
-	  If unsure, leave at the default value.
-
-if MCUBOOT_SERIAL
-
-choice BOOT_SERIAL_DEVICE
-	prompt "Serial device"
-	default BOOT_SERIAL_UART if !BOARD_NRF52840DONGLE_NRF52840
-	default BOOT_SERIAL_CDC_ACM if BOARD_NRF52840DONGLE_NRF52840
-
-config BOOT_SERIAL_UART
-	bool "UART"
-	# SERIAL and UART_INTERRUPT_DRIVEN already selected
-
-config BOOT_SERIAL_CDC_ACM
-	bool "CDC ACM"
-	select USB_DEVICE_STACK
-
-endchoice
-
-config MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD
-	bool "Allow to select image number for DFU"
-	help
-	  With the option enabled, the mcuboot serial recovery will
-	  respect the "image" field in mcumgr image update frame
-	  header.
-	  The mapping of image number to partition is as follows:
-	    0 -> default behaviour, same as 1;
-	    1 -> image-0 (primary slot of the first image);
-	    2 -> image-1 (secondary slot of the first image);
-	    3 -> image-2;
-	    4 -> image-3.
-	  Note that 0 is default upload target when no explicit
-	  selection is done.
-
-config BOOT_MAX_LINE_INPUT_LEN
-	int "Maximum command line length"
-	default 512
-	help
-	  Maximum length of commands transported over the serial port.
-
-config BOOT_SERIAL_DETECT_PORT
-	string "GPIO device to trigger serial recovery mode"
-	default GPIO_0 if SOC_FAMILY_NRF
-	help
-	  Zephyr GPIO device that contains the pin used to trigger
-	  serial recovery mode.
-
-config BOOT_SERIAL_DETECT_PIN
-	int "Pin to trigger serial recovery mode"
-	default 6 if BOARD_NRF9160DK_NRF9160
-	default 11 if BOARD_NRF52840DK_NRF52840
-	default 13 if BOARD_NRF52DK_NRF52832 || BOARD_NRF52833DK_NRF52833
-	default 23 if BOARD_NRF5340PDK_NRF5340_CPUAPP || BOARD_NRF5340PDK_NRF5340_CPUAPP_NS || \
-		BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF5340DK_NRF5340_CPUAPP_NS
-	help
-	  Pin on the serial detect port that triggers serial recovery mode.
-
-config BOOT_SERIAL_DETECT_PIN_VAL
-	int "Serial detect pin trigger value"
-	default 0
-	range 0 1
-	help
-	  Logic value of the detect pin that triggers serial recovery
-	  mode.
-
-config BOOT_SERIAL_DETECT_DELAY
-	int "Serial detect pin detection delay time [ms]"
-	default 0
-	help
-	  Used to prevent the bootloader from loading on button press.
-	  Useful for powering on when using the same button as
-	  the one used to place the device in bootloader mode.
-
-config BOOT_ERASE_PROGRESSIVELY
-	bool "Erase flash progressively when receiving new firmware"
-	default y if SOC_FAMILY_NRF
-	help
-	 If enabled, flash is erased as necessary when receiving new firmware,
-	 instead of erasing the whole image slot at once. This is necessary
-	 on some hardware that has long erase times, to prevent long wait
-	 times at the beginning of the DFU process.
-
-config BOOT_MGMT_ECHO
-	bool "Enable echo command"
-	help
-	  if enabled, support for the mcumgr echo command is being added.
-
-menuconfig ENABLE_MGMT_PERUSER
-	bool "Enable system specific mcumgr commands"
-	help
-	  The option enables processing of system specific mcumgr commands;
-	  system specific commands are within group MGMT_GROUP_ID_PERUSER (64)
-	  and above, as defined within mcumgr library.
-	  These are system specific command and system specific implementation
-	  function is required to process these commands.
-
-if ENABLE_MGMT_PERUSER
-config BOOT_MGMT_CUSTOM_STORAGE_ERASE
-	bool "Enable storage erase command"
-	help
-	  The option enables mcumgr command that allows to erase storage
-	  partition.
-	  Note that the storage partition needs to be defined, in DTS, otherwise
-	  enabling the option will cause a compilation to fail.
-
-config BOOT_MGMT_CUSTOM_IMG_LIST
-	bool "Enable custom image list command"
-	help
-	  The option enables command which returns versions and installation
-	  statuses (custom property) for all images.
-
-endif # ENABLE_MGMT_PERUSER
-
-config BOOT_SERIAL_ENCRYPT_EC256
-	bool "Support for encrypted upgrade images using ECIES-P256 in serial recovery upload"
-	default n
-	help
-	  If y, uploaded images via serial recovery can be decrypted
-	  on the fly when upgrading to the primary slot. The
-	  encryption mechanism used in this case is ECIES using primitives
-	  described under "ECIES-P256 encryption" in docs/encrypted_images.md.
-
-config BOOT_SERIAL_WAIT_FOR_DFU
-	bool "Wait for a prescribed duration to see if DFU is invoked by receiving a mcumgr comand"
-	depends on BOOT_SERIAL_UART
-	help
-	  If y, MCUboot waits for a prescribed duration of time to allow
-	  for DFU to be invoked. The serial recovery can be entered by receiving any
-	  mcumgr command.
-
-config BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT
-	int "Duration to wait for the serial DFU timeout in ms"
-	default 500
-	depends on BOOT_SERIAL_WAIT_FOR_DFU
-	help
-	  timeout in ms for MCUboot to wait to allow for DFU to be invoked.
-
-endif # MCUBOOT_SERIAL
+rsource "Kconfig.serial_recovery"
 
 config BOOT_INTR_VEC_RELOC
 	bool "Relocate the interrupt vector to the application"
diff --git a/boot/zephyr/Kconfig.serial_recovery b/boot/zephyr/Kconfig.serial_recovery
new file mode 100644
index 0000000..97b2022
--- /dev/null
+++ b/boot/zephyr/Kconfig.serial_recovery
@@ -0,0 +1,156 @@
+# Copyright (c) 2017-2020 Linaro Limited
+# Copyright (c) 2020 Arm Limited
+# Copyright (c) 2017-2022 Nordic Semiconductor ASA
+#
+# SPDX-License-Identifier: Apache-2.0
+
+
+menuconfig MCUBOOT_SERIAL
+	bool "MCUboot serial recovery"
+	default n
+	select REBOOT
+	select GPIO
+	select SERIAL
+	select UART_INTERRUPT_DRIVEN
+	select BASE64
+	help
+	  If y, enables a serial-port based update mode. This allows
+	  MCUboot itself to load update images into flash over a UART.
+	  If unsure, leave at the default value.
+
+if MCUBOOT_SERIAL
+
+choice BOOT_SERIAL_DEVICE
+	prompt "Serial device"
+	default BOOT_SERIAL_UART if !BOARD_NRF52840DONGLE_NRF52840
+	default BOOT_SERIAL_CDC_ACM if BOARD_NRF52840DONGLE_NRF52840
+
+config BOOT_SERIAL_UART
+	bool "UART"
+	# SERIAL and UART_INTERRUPT_DRIVEN already selected
+
+config BOOT_SERIAL_CDC_ACM
+	bool "CDC ACM"
+	select USB_DEVICE_STACK
+
+endchoice
+
+config MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD
+	bool "Allow to select image number for DFU"
+	help
+	  With the option enabled, the mcuboot serial recovery will
+	  respect the "image" field in mcumgr image update frame
+	  header.
+	  The mapping of image number to partition is as follows:
+	    0 -> default behaviour, same as 1;
+	    1 -> image-0 (primary slot of the first image);
+	    2 -> image-1 (secondary slot of the first image);
+	    3 -> image-2;
+	    4 -> image-3.
+	  Note that 0 is default upload target when no explicit
+	  selection is done.
+
+config BOOT_MAX_LINE_INPUT_LEN
+	int "Maximum command line length"
+	default 512
+	help
+	  Maximum length of commands transported over the serial port.
+
+config BOOT_SERIAL_DETECT_PORT
+	string "GPIO device to trigger serial recovery mode"
+	default GPIO_0 if SOC_FAMILY_NRF
+	help
+	  Zephyr GPIO device that contains the pin used to trigger
+	  serial recovery mode.
+
+config BOOT_SERIAL_DETECT_PIN
+	int "Pin to trigger serial recovery mode"
+	default 6 if BOARD_NRF9160DK_NRF9160
+	default 11 if BOARD_NRF52840DK_NRF52840
+	default 13 if BOARD_NRF52DK_NRF52832 || BOARD_NRF52833DK_NRF52833
+	default 23 if BOARD_NRF5340PDK_NRF5340_CPUAPP || BOARD_NRF5340PDK_NRF5340_CPUAPP_NS || \
+		BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF5340DK_NRF5340_CPUAPP_NS
+	help
+	  Pin on the serial detect port that triggers serial recovery mode.
+
+config BOOT_SERIAL_DETECT_PIN_VAL
+	int "Serial detect pin trigger value"
+	default 0
+	range 0 1
+	help
+	  Logic value of the detect pin that triggers serial recovery
+	  mode.
+
+config BOOT_SERIAL_DETECT_DELAY
+	int "Serial detect pin detection delay time [ms]"
+	default 0
+	help
+	  Used to prevent the bootloader from loading on button press.
+	  Useful for powering on when using the same button as
+	  the one used to place the device in bootloader mode.
+
+config BOOT_ERASE_PROGRESSIVELY
+	bool "Erase flash progressively when receiving new firmware"
+	default y if SOC_FAMILY_NRF
+	help
+	 If enabled, flash is erased as necessary when receiving new firmware,
+	 instead of erasing the whole image slot at once. This is necessary
+	 on some hardware that has long erase times, to prevent long wait
+	 times at the beginning of the DFU process.
+
+config BOOT_MGMT_ECHO
+	bool "Enable echo command"
+	help
+	  if enabled, support for the mcumgr echo command is being added.
+
+menuconfig ENABLE_MGMT_PERUSER
+	bool "Enable system specific mcumgr commands"
+	help
+	  The option enables processing of system specific mcumgr commands;
+	  system specific commands are within group MGMT_GROUP_ID_PERUSER (64)
+	  and above, as defined within mcumgr library.
+	  These are system specific command and system specific implementation
+	  function is required to process these commands.
+
+if ENABLE_MGMT_PERUSER
+config BOOT_MGMT_CUSTOM_STORAGE_ERASE
+	bool "Enable storage erase command"
+	help
+	  The option enables mcumgr command that allows to erase storage
+	  partition.
+	  Note that the storage partition needs to be defined, in DTS, otherwise
+	  enabling the option will cause a compilation to fail.
+
+config BOOT_MGMT_CUSTOM_IMG_LIST
+	bool "Enable custom image list command"
+	help
+	  The option enables command which returns versions and installation
+	  statuses (custom property) for all images.
+
+endif # ENABLE_MGMT_PERUSER
+
+config BOOT_SERIAL_ENCRYPT_EC256
+	bool "Support for encrypted upgrade images using ECIES-P256 in serial recovery upload"
+	default n
+	help
+	  If y, uploaded images via serial recovery can be decrypted
+	  on the fly when upgrading to the primary slot. The
+	  encryption mechanism used in this case is ECIES using primitives
+	  described under "ECIES-P256 encryption" in docs/encrypted_images.md.
+
+config BOOT_SERIAL_WAIT_FOR_DFU
+	bool "Wait for a prescribed duration to see if DFU is invoked by receiving a mcumgr comand"
+	depends on BOOT_SERIAL_UART
+	help
+	  If y, MCUboot waits for a prescribed duration of time to allow
+	  for DFU to be invoked. The serial recovery can be entered by receiving any
+	  mcumgr command.
+
+config BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT
+	int "Duration to wait for the serial DFU timeout in ms"
+	default 500
+	depends on BOOT_SERIAL_WAIT_FOR_DFU
+	help
+	  timeout in ms for MCUboot to wait to allow for DFU to be invoked.
+
+endif # MCUBOOT_SERIAL