Make RAM regions non-executable

This commit makes the privileged RAM and stack regions non-executable.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
diff --git a/portable/GCC/ARM_CM3_MPU/port.c b/portable/GCC/ARM_CM3_MPU/port.c
index c3fa998..ac7bd66 100644
--- a/portable/GCC/ARM_CM3_MPU/port.c
+++ b/portable/GCC/ARM_CM3_MPU/port.c
@@ -662,6 +662,7 @@
 

         portMPU_REGION_ATTRIBUTE_REG = ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |

                                        ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |

+                                       ( portMPU_REGION_EXECUTE_NEVER ) |

                                        prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |

                                        ( portMPU_REGION_ENABLE );

 

@@ -761,6 +762,7 @@
         xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

             ( portMPU_REGION_READ_WRITE ) |

             ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |

+            ( portMPU_REGION_EXECUTE_NEVER ) |

             ( prvGetMPURegionSizeSetting( ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__ ) ) |

             ( portMPU_REGION_ENABLE );

 

@@ -786,7 +788,8 @@
                 ( portSTACK_REGION ); /* Region number. */

 

             xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

-                ( portMPU_REGION_READ_WRITE ) | /* Read and write. */

+                ( portMPU_REGION_READ_WRITE ) |

+                ( portMPU_REGION_EXECUTE_NEVER ) |

                 ( prvGetMPURegionSizeSetting( ulStackDepth * ( uint32_t ) sizeof( StackType_t ) ) ) |

                 ( portMPU_REGION_CACHEABLE_BUFFERABLE ) |

                 ( portMPU_REGION_ENABLE );

diff --git a/portable/GCC/ARM_CM4_MPU/port.c b/portable/GCC/ARM_CM4_MPU/port.c
index a860925..ef019ed 100644
--- a/portable/GCC/ARM_CM4_MPU/port.c
+++ b/portable/GCC/ARM_CM4_MPU/port.c
@@ -772,6 +772,7 @@
                                           ( portPRIVILEGED_RAM_REGION );

 

         portMPU_REGION_ATTRIBUTE_REG = ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |

+                                       ( portMPU_REGION_EXECUTE_NEVER ) |

                                        ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                                        prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |

                                        ( portMPU_REGION_ENABLE );

@@ -883,6 +884,7 @@
 

         xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

             ( portMPU_REGION_READ_WRITE ) |

+            ( portMPU_REGION_EXECUTE_NEVER ) |

             ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

             ( prvGetMPURegionSizeSetting( ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__ ) ) |

             ( portMPU_REGION_ENABLE );

@@ -909,7 +911,8 @@
                 ( portSTACK_REGION ); /* Region number. */

 

             xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

-                ( portMPU_REGION_READ_WRITE ) | /* Read and write. */

+                ( portMPU_REGION_READ_WRITE ) |

+                ( portMPU_REGION_EXECUTE_NEVER ) |

                 ( prvGetMPURegionSizeSetting( ulStackDepth * ( uint32_t ) sizeof( StackType_t ) ) ) |

                 ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                 ( portMPU_REGION_ENABLE );

diff --git a/portable/IAR/ARM_CM4F_MPU/port.c b/portable/IAR/ARM_CM4F_MPU/port.c
index 27db7d8..eaf6c2d 100644
--- a/portable/IAR/ARM_CM4F_MPU/port.c
+++ b/portable/IAR/ARM_CM4F_MPU/port.c
@@ -591,6 +591,7 @@
                                           ( portPRIVILEGED_RAM_REGION );

 

         portMPU_REGION_ATTRIBUTE_REG = ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |

+                                       ( portMPU_REGION_EXECUTE_NEVER ) |

                                        ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                                        prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |

                                        ( portMPU_REGION_ENABLE );

@@ -660,6 +661,7 @@
 

         xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

             ( portMPU_REGION_READ_WRITE ) |

+            ( portMPU_REGION_EXECUTE_NEVER ) |

             ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

             ( prvGetMPURegionSizeSetting( ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__ ) ) |

             ( portMPU_REGION_ENABLE );

@@ -686,7 +688,8 @@
                 ( portSTACK_REGION ); /* Region number. */

 

             xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

-                ( portMPU_REGION_READ_WRITE ) | /* Read and write. */

+                ( portMPU_REGION_READ_WRITE ) |

+                ( portMPU_REGION_EXECUTE_NEVER ) |

                 ( prvGetMPURegionSizeSetting( ulStackDepth * ( uint32_t ) sizeof( StackType_t ) ) ) |

                 ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                 ( portMPU_REGION_ENABLE );

diff --git a/portable/RVDS/ARM_CM4_MPU/port.c b/portable/RVDS/ARM_CM4_MPU/port.c
index 9f58dbd..340acac 100644
--- a/portable/RVDS/ARM_CM4_MPU/port.c
+++ b/portable/RVDS/ARM_CM4_MPU/port.c
@@ -773,6 +773,7 @@
                                           ( portPRIVILEGED_RAM_REGION );

 

         portMPU_REGION_ATTRIBUTE_REG = ( portMPU_REGION_PRIVILEGED_READ_WRITE ) |

+                                       ( portMPU_REGION_EXECUTE_NEVER ) |

                                        ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                                        prvGetMPURegionSizeSetting( ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__ ) |

                                        ( portMPU_REGION_ENABLE );

@@ -872,6 +873,7 @@
 

         xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

             ( portMPU_REGION_READ_WRITE ) |

+            ( portMPU_REGION_EXECUTE_NEVER ) |

             ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

             ( prvGetMPURegionSizeSetting( ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__ ) ) |

             ( portMPU_REGION_ENABLE );

@@ -898,7 +900,8 @@
                 ( portSTACK_REGION ); /* Region number. */

 

             xMPUSettings->xRegion[ 0 ].ulRegionAttribute =

-                ( portMPU_REGION_READ_WRITE ) | /* Read and write. */

+                ( portMPU_REGION_READ_WRITE ) |

+                ( portMPU_REGION_EXECUTE_NEVER ) |

                 ( prvGetMPURegionSizeSetting( ulStackDepth * ( uint32_t ) sizeof( StackType_t ) ) ) |

                 ( ( configTEX_S_C_B_SRAM & portMPU_RASR_TEX_S_C_B_MASK ) << portMPU_RASR_TEX_S_C_B_LOCATION ) |

                 ( portMPU_REGION_ENABLE );