doc: Added serial recovery documentation

Added description on what is the serial recovery protocol
in general.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Anna Kielar <anna.kielar@nordicsemi.no>

fix
diff --git a/docs/index.md b/docs/index.md
index c6f5e82..591fb00 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -38,6 +38,7 @@
 - [Encrypted images](encrypted_images.md)
 - [imgtool](imgtool.md) - image signing and key management
 - [ECDSA](ecdsa.md) - information about ECDSA signature formats
+- [Serial Recovery](serial_recovery.md) - MCUmgr as the serial recovery protocol
 - Usage instructions:
   - [Zephyr](readme-zephyr.md)
   - [Apache Mynewt](readme-mynewt.md)
diff --git a/docs/serial_recovery.md b/docs/serial_recovery.md
new file mode 100644
index 0000000..ade2419
--- /dev/null
+++ b/docs/serial_recovery.md
@@ -0,0 +1,128 @@
+<!--
+  - SPDX-License-Identifier: Apache-2.0
+
+  - Copyright (c) 2022 Nordic Semiconductor ASA
+
+  - Original license:
+
+  - Licensed to the Apache Software Foundation (ASF) under one
+  - or more contributor license agreements.  See the NOTICE file
+  - distributed with this work for additional information
+  - regarding copyright ownership.  The ASF licenses this file
+  - to you under the Apache License, Version 2.0 (the
+  - "License"); you may not use this file except in compliance
+  - with the License.  You may obtain a copy of the License at
+
+  -  http://www.apache.org/licenses/LICENSE-2.0
+
+  - Unless required by applicable law or agreed to in writing,
+  - software distributed under the License is distributed on an
+  - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  - KIND, either express or implied.  See the License for the
+  - specific language governing permissions and limitations
+  - under the License.
+-->
+
+# Serial recovery
+
+MCUboot implements a Simple Management Protocol (SMP) server.
+SMP is a basic transfer encoding for use with the MCUmgr management protocol. 
+See the Zephyr [Device Management](https://docs.zephyrproject.org/latest/services/device_mgmt/index.html#device-mgmt) documentation for more information about MCUmgr and SMP.
+
+MCUboot supports the following subset of the MCUmgr commands:
+* echo (OS group)
+* reset (OS group)
+* image list (IMG group)
+* image upload (IMG group)
+
+It can also support system-specific MCUmgr commands depending on the given mcuboot-port
+if the ``MCUBOOT_PERUSER_MGMT_GROUP_ENABLED`` option is enabled.
+
+The serial recovery feature can use any serial interface provided by the platform.
+
+## Image uploading
+
+Uploading an image is targeted to the primary slot by default.
+
+An image can be loaded to other slots only when the ``MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD`` option is enabled for the platform.
+
+MCUboot supports progressive erasing of a slot to which an image is uploaded to if the ``MCUBOOT_ERASE_PROGRESSIVELY`` option is enabled.
+As a result, a device can receive images smoothly, and can erase required part of a flash automatically.
+
+## Configuration of serial recovery
+
+How to enable and configure the serial recovery feature depends on the given mcuboot-port implementation.
+Refer to the respective documentation and source code for more details.
+
+## Entering serial recovery mode
+
+Entering the serial recovery mode is usually possible right after a device reset, for instance as a reaction on a GPIO pin state.
+Refer to the given mcuboot-port details to get information on how to enter the serial recovery mode.
+
+## Serial recovery mode usage
+
+### MCU Manager CLI installation
+
+The MCUmgr command line tool can be used as an SMP client for evaluation purposes.
+The tool is available under the [MCU Manager](https://github.com/apache/mynewt-mcumgr-cli)
+Github page and is described in the Zephyr 
+[MCU Manager CLI](https://docs.zephyrproject.org/latest/services/device_mgmt/mcumgr.html#mcumgr-cli) documentation.
+
+Use the following command to install the MCU Manager CLI tool:
+``` console
+go install github.com/apache/mynewt-mcumgr-cli/mcumgr@latest
+```
+Enter serial recovery mode in the device and use an SMP client application for communication with the MCUboot's SMP server.
+
+### Connection configuration
+
+Use the following command to set the connection configuration,
+for linux:
+``` console
+mcumgr conn add serial_1 type="serial" connstring="dev=/dev/ttyACM0,baud=115200"
+```
+for windows:
+``` console
+mcumgr conn add serial_1 type="serial" connstring="COM1,baud=115200"
+```
+
+### Image management
+
+The connection configuration must be established to perform the following image-related commands:
+
+* Upload the image:
+  ``` console
+  mcumgr image upload <path-to-signed-image-bin-file> -c serial_1
+  ```
+
+  Once done successfully, the following notification will be displayed:
+  ``` console
+  20.25 KiB / 20.25 KiB [=================================] 100.00% 3.08 KiB/s 6s
+  Done
+  ```
+
+* List all images:
+  ``` console
+  mcumgr image list -c serial_1
+  ```
+  The terminal will show the response from the module:
+  ``` console
+  Images:
+   image=0 slot=0
+      version: 0.0.0.0
+      bootable: false
+      flags: 
+      hash: Unavailable
+  Split status: N/A (0)
+  ```
+
+### Device reset
+
+Reset your device with the following command:
+``` console
+mcumgr reset -c serial_1
+```
+The terminal should respond:
+``` console
+Done
+```