FreeRTOS-Kernel

FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.

MIT License

Stars
2.3K

Bot releases are hidden (Show)

FreeRTOS-Kernel - V10.4.3 LTS Patch 3

Published by aggarg about 2 years ago

Changes between FreeRTOS V10.4.3 LTS Patch 2 and FreeRTOS V10.4.3 LTS Patch 3 released September 16 2022

+ ARMv7-M and ARMv8-M MPU ports: It was possible for a third party that
  already independently gained the ability to execute injected code to
  read from or write to arbitrary addresses by passing a negative argument
  as the xIndex parameter to pvTaskGetThreadLocalStoragePointer() or
  vTaskSetThreadLocalStoragePointer respectively. A check has been added to
  ensure that passing a negative argument as the xIndex parameter does not
  cause arbitrary read or write.
  We thank Certibit Consulting, LLC for reporting this issue.
+ ARMv7-M and ARMv8-M MPU ports: It was possible for an unprivileged task
  to invoke any function with privilege by passing it as a parameter to
  MPU_xTaskCreate, MPU_xTaskCreateStatic, MPU_xTimerCreate,
  MPU_xTimerCreateStatic, or MPU_xTimerPendFunctionCall. MPU_xTaskCreate
  and MPU_xTaskCreateStatic have been updated to only allow creation of
  unprivileged tasks. MPU_xTimerCreate, MPU_xTimerCreateStatic and
  MPU_xTimerPendFunctionCall APIs have been removed.
  We thank Huazhong University of Science and Technology for reporting
  this issue.
+ ARMv7-M and ARMv8-M MPU ports: It was possible for a third party that
  already independently gained the ability to execute injected code to
  achieve further privilege escalation by branching directly inside a
  FreeRTOS MPU API wrapper function with a manually crafted stack frame.
  The local stack variable `xRunningPrivileged` has been removed so that
  a manually crafted stack frame cannot be used for privilege escalation
  by branching directly inside a FreeRTOS MPU API wrapper.
  We thank Certibit Consulting, LLC, Huazhong University of Science and
  Technology and the SecLab team at Northeastern University for reporting
  this issue.
+ ARMv7-M MPU ports: It was possible to configure overlapping memory
  protection unit (MPU) regions such that an unprivileged task could access
  privileged data. The kernel now uses highest numbered MPU regions for
  kernel protections to prevent such MPU configurations.
  We thank the SecLab team at Northeastern University for reporting this
  issue.
FreeRTOS-Kernel - V10.4.6

Published by aggarg almost 3 years ago

Changes between FreeRTOS V10.4.5 and FreeRTOS V10.4.6

 + ARMv7-M and ARMv8-M MPU ports – prevent non-kernel code from calling the
   internal functions xPortRaisePrivilege and vPortResetPrivilege by changing
   them to macros.
 + Introduce a new config configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS which
   enables developers to prevent critical sections from unprivileged tasks.
   It defaults to 1 for backward compatibility. Application should set it to
   0 to disable critical sections from unprivileged tasks.
FreeRTOS-Kernel - V10.4.3 LTS Patch 2

Published by aggarg almost 3 years ago

Changes between FreeRTOS V10.4.3 LTS Patch 1 and FreeRTOS V10.4.3 LTS Patch 2

 + ARMv7-M and ARMv8-M MPU ports – prevent non-kernel code from calling the
   internal functions xPortRaisePrivilege and vPortResetPrivilege by changing
   them to macros.
FreeRTOS-Kernel - V10.4.5

Published by aggarg about 3 years ago

Changes between FreeRTOS V10.4.4 and FreeRTOS V10.4.5 released September 10 2021

 + Introduce configRUN_TIME_COUNTER_TYPE which enables developers to define
   the type used to hold run time statistic counters. Defaults to uint32_t
   for backward compatibility. #define configRUN_TIME_COUNTER_TYPE to a type
   (for example, uint64_t) in FreeRTOSConfig.h to override the default.
 + Introduce ulTaskGetIdleRunTimePercent() to complement the pre-existing
   ulTaskGetIdleRunTimeCounter(). Whereas the pre-existing function returns
   the raw run time counter value, the new function returns the percentage of
   the entire run time consumed by the idle task. Note the amount of idle
   time is only a good measure of the slack time in a system if there are no
   other tasks executing at the idle priority, tickless idle is not used, and
   configIDLE_SHOULD_YIELD is set to 0.
 + ARMv8-M secure-side port:  Tasks that call secure functions from the
   non-secure side of an ARMv8-M MCU (ARM Cortex-M23 and Cortex-M33) have two
   contexts – one on the non-secure side and one on the secure-side. Previous
   versions of the FreeRTOS ARMv8-M secure-side ports allocated the structures
   that reference secure-side contexts at run time.  Now the structures are
   allocated statically at compile time.  The change necessitates the
   introduction of the secureconfigMAX_SECURE_CONTEXTS configuration constant,
   which sets the number of statically allocated secure contexts.
   secureconfigMAX_SECURE_CONTEXTS defaults to 8 if left undefined.
   Applications that only use FreeRTOS code on the non-secure side, such as
   those running third-party code on the secure side, are not affected by
   this change.
FreeRTOS-Kernel - V10.4.3 LTS Patch 1

Published by aggarg about 3 years ago

Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.3 LTS Patch 1 released September 10 2021

See https://www.FreeRTOS.org/FreeRTOS-V10.4.5.html

 + ARMv8-M secure-side port:  Tasks that call secure functions from the
   non-secure side of an ARMv8-M MCU (ARM Cortex-M23 and Cortex-M33) have two
   contexts – one on the non-secure side and one on the secure-side. Previous
   versions of the FreeRTOS ARMv8-M secure-side ports allocated the structures
   that reference secure-side contexts at run time.  Now the structures are
   allocated statically at compile time.  The change necessitates the
   introduction of the secureconfigMAX_SECURE_CONTEXTS configuration constant,
   which sets the number of statically allocated secure contexts.
   secureconfigMAX_SECURE_CONTEXTS defaults to 8 if left undefined.
   Applications that only use FreeRTOS code on the non-secure side, such as
   those running third-party code on the secure side, are not affected by
   this change.
FreeRTOS-Kernel - V10.4.3

Published by cobusve almost 4 years ago

Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020

V10.4.3 is included in the 202012.00 LTS release.  Learn more at https:/freertos.org/lts-libraries.html

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Changes to improve robustness and consistency for buffer allocation in
  the heap, queue and stream buffer.
+ The following functions can no longer be called from unprivileged code.
  - xTaskCreateRestricted
  - xTaskCreateRestrictedStatic
  - vTaskAllocateMPURegions
FreeRTOS-Kernel - V10.4.2

Published by dachalco almost 4 years ago

Changes between FreeRTOS V10.4.1 and FreeRTOS V10.4.2 released November 10 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Fix an issue in the ARMv8-M ports that caused BASEPRI to be masked 
  between the first task starting to execute and that task making 
  a FreeRTOS API call.
+ Introduced xTaskDelayUntil(), which is functionally equivalent to
  vTaskDelayUntil(), with the addition of returning a value to 
  indicating whether or not the function placed the calling task into
  the Blocked state or not.
+ Update WolfSSL to 4.5.0 and add the FIPS ready demo.
+ Add support for ESP IDF 4.2 to ThirdParty Xtensa port.
+ Re-introduce uxTopUsedPriority to support OpenOCD debugging.
+ Convert most dependent libraries in FreeRTOS/FreeRTOS to submodules.
+ Various general maintenance and improvements to MISRA compliance.
FreeRTOS-Kernel - V10.4.1

Published by cobusve about 4 years ago

Changes between FreeRTOS V10.4.0 and FreeRTOS V10.4.1 released September 17 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Fixed an incorrectly named parameter that prevented the 
  ulTaskNotifyTakeIndexed macro compiling, and the name space clash in the 
  test code that prevented this error causing test failures.
FreeRTOS-Kernel - V10.4.0

Published by cobusve about 4 years ago

Changes between FreeRTOS V10.3.1 and FreeRTOS V10.4.0 released September 10 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

Major enhancements:

+ Task notifications:  Prior to FreeRTOS V10.4.0 each created task had a
  single direct to task notification.  From FreeRTOS V10.4.0 each task has
  an array of notifications.  The direct to task notification API has been
  extended with API functions postfixed with "Indexed" to enable the API to
  operate on a task notification at any array index.  See
  https://www.freertos.org/RTOS-task-notifications.html for more information.
+ Kernel ports that support memory protection units (MPUs): The ARMv7-M and
  ARMv8-M MPU ports now support a privilege access only heap. The ARMv7-M
  MPU ports now support devices that have 16 MPU regions, have the ability
  to override default memory attributes for privileged code and data
  regions, and have the ability to place the FreeRTOS kernel code outside of
  the Flash memory. The ARMv8-M MPU ports now support tickless idle mode.
  See https://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
  for more information.

Additional noteworthy updates:

+ Code formatting is now automated to facilitate the increase in
  collaborative development in Git.  The auto-formated code is not identical
  to the original formatting conventions.  Most notably spaces are now used
  in place of tabs.
+ The prototypes for callback functions (those that start with "Application",
  such as vApplicationStackOverflowHook()) are now in the FreeRTOS header
  files, removing the need for application writers to add prototypes into
  the C files in which they define the functions.
+ New Renesas RXv3 port layer.
+ Updates to the Synopsys ARC code, including support for EM and HS cores,
  and updated BSP.
+ Added new POSIX port layer that allows FreeRTOS to run on Linux hosts in
  the same way the Windows port layer enables FreeRTOS to run on Windows
  hosts.
+ Many other minor optimisations and enhancements. For full details  
  see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/main