Platform: Disable IRQs from startup files

This patch removes the disabling of IRQs from MCUBoot and adds it to
the startup code of secure code for supported platforms (AN519, AN521
and Musca A1). This way when the bootloader passes execution to runtime
firmware, the value of PRIMASK register will be the same as after reset.

Change-Id: I4538dc92d2dd307362a5632481e2e23c584ed708
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 ed25093..42db36f 100644
--- a/bl2/ext/mcuboot/bl2_main.c
+++ b/bl2/ext/mcuboot/bl2_main.c
@@ -84,7 +84,6 @@
 
     stdio_uninit();
 
-    __disable_irq();
     __set_MSP(vt->msp);
     __DSB();
     __ISB();
diff --git a/platform/ext/target/mps2/an519/armclang/startup_cmsdk_mps2_an519_s.s b/platform/ext/target/mps2/an519/armclang/startup_cmsdk_mps2_an519_s.s
index fc80aa3..9c795d8 100644
--- a/platform/ext/target/mps2/an519/armclang/startup_cmsdk_mps2_an519_s.s
+++ b/platform/ext/target/mps2/an519/armclang/startup_cmsdk_mps2_an519_s.s
@@ -184,6 +184,7 @@
                 EXPORT  Reset_Handler             [WEAK]
                 IMPORT  SystemInit
                 IMPORT  __main
+                CPSID   i              ; Disable IRQs
                 LDR     R0, =SystemInit
                 BLX     R0
                 MRS     R0, control    ; Get control value
diff --git a/platform/ext/target/mps2/an519/gcc/startup_cmsdk_mps2_an519_s.S b/platform/ext/target/mps2/an519/gcc/startup_cmsdk_mps2_an519_s.S
index 62b8092..c691417 100644
--- a/platform/ext/target/mps2/an519/gcc/startup_cmsdk_mps2_an519_s.S
+++ b/platform/ext/target/mps2/an519/gcc/startup_cmsdk_mps2_an519_s.S
@@ -305,6 +305,7 @@
 .L_loop3_done:

 #endif /* __STARTUP_CLEAR_BSS_MULTIPLE || __STARTUP_CLEAR_BSS */

 

+    cpsid   i              /* Disable IRQs */

     bl    SystemInit

 

     mrs     r0, control    /* Get control value */

diff --git a/platform/ext/target/mps2/an521/armclang/startup_cmsdk_mps2_an521_s.s b/platform/ext/target/mps2/an521/armclang/startup_cmsdk_mps2_an521_s.s
index 08793f6..14ffbcb 100644
--- a/platform/ext/target/mps2/an521/armclang/startup_cmsdk_mps2_an521_s.s
+++ b/platform/ext/target/mps2/an521/armclang/startup_cmsdk_mps2_an521_s.s
@@ -178,6 +178,7 @@
                 EXPORT  Reset_Handler             [WEAK]

                 IMPORT  SystemInit

                 IMPORT  __main

+                CPSID   i              ; Disable IRQs

                 LDR     R0, =SystemInit

                 BLX     R0

                 MRS     R0, control    ; Get control value

diff --git a/platform/ext/target/mps2/an521/gcc/startup_cmsdk_mps2_an521_s.S b/platform/ext/target/mps2/an521/gcc/startup_cmsdk_mps2_an521_s.S
index 3c7b6d3..2c92cd6 100644
--- a/platform/ext/target/mps2/an521/gcc/startup_cmsdk_mps2_an521_s.S
+++ b/platform/ext/target/mps2/an521/gcc/startup_cmsdk_mps2_an521_s.S
@@ -267,6 +267,7 @@
     blt    .L_loop3

 #endif /* __STARTUP_CLEAR_BSS_MULTIPLE || __STARTUP_CLEAR_BSS */

 

+    cpsid   i              /* Disable IRQs */

     bl    SystemInit

 

     mrs     r0, control    /* Get control value */

diff --git a/platform/ext/target/musca_a/Device/Source/armclang/startup_cmsdk_musca_s.s b/platform/ext/target/musca_a/Device/Source/armclang/startup_cmsdk_musca_s.s
index 6ebbd19..7d17298 100755
--- a/platform/ext/target/musca_a/Device/Source/armclang/startup_cmsdk_musca_s.s
+++ b/platform/ext/target/musca_a/Device/Source/armclang/startup_cmsdk_musca_s.s
@@ -161,6 +161,7 @@
                 EXPORT  Reset_Handler             [WEAK]

                 IMPORT  SystemInit

                 IMPORT  __main

+                CPSID   i              ; Disable IRQs

                 LDR     R0, =SystemInit

                 BLX     R0

                 MRS     R0, control    ; Get control value

diff --git a/platform/ext/target/musca_a/Device/Source/gcc/startup_cmsdk_musca_s.S b/platform/ext/target/musca_a/Device/Source/gcc/startup_cmsdk_musca_s.S
index 371638d..576795a 100644
--- a/platform/ext/target/musca_a/Device/Source/gcc/startup_cmsdk_musca_s.S
+++ b/platform/ext/target/musca_a/Device/Source/gcc/startup_cmsdk_musca_s.S
@@ -248,6 +248,7 @@
     blt    .L_loop3

 #endif /* __STARTUP_CLEAR_BSS_MULTIPLE || __STARTUP_CLEAR_BSS */

 

+    cpsid   i              /* Disable IRQs */

     bl    SystemInit

 

     mrs     r0, control    /* Get control value */