This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
FreeRTOS-Kernel/portable
Gaurav Aggarwal ea9c26f524 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-17 00:03:08 +05:30
..
ARMClang Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
ARMv8M M85 support (#556) 2022-09-13 22:08:25 +05:30
BCC/16BitDOS Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
CCS fix typo (#399) 2021-10-06 15:32:07 -07:00
CodeWarrior Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
Common Add callback overrides for stream buffer and message buffers (#437) 2022-06-20 17:48:34 -07:00
GCC Use highest numbered MPU regions for kernel 2022-09-17 00:03:08 +05:30
IAR Use highest numbered MPU regions for kernel 2022-09-17 00:03:08 +05:30
Keil Re-sync with upstream and stripping away none kernel related. 2020-02-10 13:45:57 -08:00
MemMang [Fix] Type for pointers operations (#550) 2022-08-30 13:27:39 -07:00
MikroC/ARM_CM4F fix typo (#399) 2021-10-06 15:32:07 -07:00
MPLAB Add atomic flag for 16-bit ticks PIC24 (#488) 2022-04-15 08:13:14 -07:00
MSVC-MingW Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
oWatcom/16BitDOS Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
Paradigm/Tern_EE Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
Renesas Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
Rowley Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
RVDS Use highest numbered MPU regions for kernel 2022-09-17 00:03:08 +05:30
SDCC/Cygnal Tidy up the 8051 sdcc port (#376) 2021-08-12 11:50:52 -07:00
Softune Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
Tasking/ARM_CM4F Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
ThirdParty portable-RP2040: Fix typo in README.md (#559) 2022-09-14 12:13:10 +05:30
WizC/PIC18 Normalize files with mixed line endings (introduced in commit 3a413d1) 2021-06-01 17:55:18 -07:00
CMakeLists.txt Update CMakeLists.txt for Cortex-M55 and Cortex-M85 ports (#560) 2022-09-16 12:30:11 +05:30
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.