Boot: Enable CC312 runtime library

Enable in cmake. Update mbedtls config to use hardware functions. Add
init function.

Change-Id: Ic704ee6327a1a2566ffa1f88acb5db297b73582e
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/bl2/ext/mcuboot/bl2_main.c b/bl2/ext/mcuboot/bl2_main.c
index 6ff4197..26461c1 100644
--- a/bl2/ext/mcuboot/bl2_main.c
+++ b/bl2/ext/mcuboot/bl2_main.c
@@ -31,6 +31,9 @@
 #if BOOT_LOG_LEVEL > BOOT_LOG_LEVEL_OFF
 #include "uart_stdout.h"
 #endif
+#ifdef CRYPTO_HW_ACCELERATOR
+#include "crypto_hw.h"
+#endif /* CRYPTO_HW_ACCELERATOR */
 
 /* Avoids the semihosting issue */
 #if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
@@ -173,6 +176,14 @@
      */
     mbedtls_memory_buffer_alloc_init(mbedtls_mem_buf, BL2_MBEDTLS_MEM_BUF_LEN);
 
+#ifdef CRYPTO_HW_ACCELERATOR
+    rc = crypto_hw_accelerator_init();
+    if (rc) {
+        BOOT_LOG_ERR("Error while initializing cryptographic accelerator.");
+        while (1);
+    }
+#endif /* CRYPTO_HW_ACCELERATOR */
+
     rc = FLASH_DEV_NAME.Initialize(NULL);
     if(rc != ARM_DRIVER_OK) {
         BOOT_LOG_ERR("Error while initializing Flash Interface");
@@ -194,6 +205,14 @@
             ;
     }
 
+#ifdef CRYPTO_HW_ACCELERATOR
+    rc = crypto_hw_accelerator_finish();
+    if (rc) {
+        BOOT_LOG_ERR("Error while uninitializing cryptographic accelerator.");
+        while (1);
+    }
+#endif /* CRYPTO_HW_ACCELERATOR */
+
     BOOT_LOG_INF("Bootloader chainload address offset: 0x%x",
                  rsp.br_image_off);
     flash_area_warn_on_open();