FreeRTOS-Kernel/portable
Gaurav Aggarwal acd9279fc2 Use highest numbered MPU regions for kernel
ARMv7-M allows overlapping MPU regions. When 2 MPU regions overlap, the
MPU configuration of the higher numbered MPU region is applied. For
example, if a memory area is covered by 2 MPU regions 0 and 1, the
memory permissions for MPU region 1 are applied.

We use 5 MPU regions for kernel code and kernel data protections and
leave the remaining for the application writer. We were using lowest
numbered MPU regions (0-4) for kernel protections and leaving the
remaining for the application writer. The application writer could
configure those higher numbered MPU regions to override kernel
protections.

This commit changes the code to use highest numbered MPU regions for
kernel protections and leave the remaining for the application writer.
This ensures that the application writer cannot override kernel
protections.

We thank the SecLab team at Northeastern University for reporting this
issue.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2022-09-16 22:18:35 +05:30
..
ARMClang Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
ARMv8M [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
BCC/16BitDOS [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
CCS [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
CodeWarrior [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Common [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
GCC Use highest numbered MPU regions for kernel 2022-09-16 22:18:35 +05:30
IAR Use highest numbered MPU regions for kernel 2022-09-16 22:18:35 +05:30
Keil Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
MemMang [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
MikroC/ARM_CM4F [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
MPLAB [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
MSVC-MingW [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
oWatcom/16BitDOS [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Paradigm/Tern_EE [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Renesas [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Rowley [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
RVDS Use highest numbered MPU regions for kernel 2022-09-16 22:18:35 +05:30
SDCC/Cygnal [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Softune [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
Tasking/ARM_CM4F [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
ThirdParty [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
WizC/PIC18 [AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2" 2021-10-06 19:33:51 -07:00
readme.txt Style: Change FreeRTOS websites in comments (#131) 2020-08-20 14:59:28 -07:00

Each real time kernel port consists of three files that contain the core kernel
components and are common to every port, and one or more files that are
specific to a particular microcontroller and/or compiler.


+ The FreeRTOS/Source/Portable/MemMang directory contains the five sample
memory allocators as described on the https://www.FreeRTOS.org WEB site.

+ The other directories each contain files specific to a particular
microcontroller or compiler, where the directory name denotes the compiler
specific files the directory contains.



For example, if you are interested in the [compiler] port for the [architecture]
microcontroller, then the port specific files are contained in
FreeRTOS/Source/Portable/[compiler]/[architecture] directory.  If this is the
only port you are interested in then all the other directories can be
ignored.