Platform: Implement Flash uninitialize function

- This patch introduces an uninitialize function for the QSPI Flash
controller to restore it's default state before passing execution
to runtime image from MCUBoot.
- Implements a basic configuration function for the QSPI Flash
controller and Flash memory that enables operation in single
SPI mode. It is used at the initialization of the Flash controller.

Change-Id: I384d60ec02bb9e9a6da2b08c45e6e634202e5008
Signed-off-by: David Vincze <david.vincze@arm.com>
diff --git a/bl2/ext/mcuboot/bl2_main.c b/bl2/ext/mcuboot/bl2_main.c
index 6b8c090..ed25093 100644
--- a/bl2/ext/mcuboot/bl2_main.c
+++ b/bl2/ext/mcuboot/bl2_main.c
@@ -77,6 +77,11 @@
                                          rsp->br_hdr->ih_hdr_size);
     }
 
+    rc = FLASH_DEV_NAME.Uninitialize();
+    if(rc != ARM_DRIVER_OK) {
+        BOOT_LOG_ERR("Error while uninitializing Flash Interface");
+    }
+
     stdio_uninit();
 
     __disable_irq();
@@ -101,8 +106,12 @@
      */
     mbedtls_memory_buffer_alloc_init(mbedtls_mem_buf, BL2_MBEDTLS_MEM_BUF_LEN);
 
-    /* Initialize Flash driver */
-    FLASH_DEV_NAME.Initialize(NULL);
+    rc = FLASH_DEV_NAME.Initialize(NULL);
+    if(rc != ARM_DRIVER_OK) {
+        BOOT_LOG_ERR("Error while initializing Flash Interface");
+        while (1)
+            ;
+    }
 
     rc = boot_go(&rsp);
     if (rc != 0) {