Update History for Version 10.6.0 (#706)
Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
diff --git a/History.txt b/History.txt
index 94b74e8..1bf7ea0 100644
--- a/History.txt
+++ b/History.txt
@@ -1,5 +1,116 @@
Documentation and download available at https://www.FreeRTOS.org/
+Changes between FreeRTOS V10.5.1 and FreeRTOS 10.6.0 released July 13, 2023
+
+ + Add a new MPU wrapper that places additional restrictions on unprivileged
+ tasks. The following is the list of changes introduced with the new MPU
+ wrapper:
+
+ 1. Opaque and indirectly verifiable integers for kernel object handles:
+ All the kernel object handles (for example, queue handles) are now
+ opaque integers. Previously object handles were raw pointers.
+ 2. Save the task context in Task Control Block (TCB): When a task is
+ swapped out by the scheduler, the task's context is now saved in its
+ TCB. Previously the task's context was saved on its stack.
+ 3. Execute system calls on a separate privileged only stack: FreeRTOS
+ system calls, which execute with elevated privilege, now use a
+ separate privileged only stack. Previously system calls used the
+ calling task's stack. The application writer can control the size of
+ the system call stack using new configSYSTEM_CALL_STACK_SIZE config
+ macro.
+ 4. Memory bounds checks: FreeRTOS system calls which accept a pointer
+ and de-reference it, now verify that the calling task has required
+ permissions to access the memory location referenced by the pointer.
+ 5. System calls restrictions: The following system calls are no longer
+ available to unprivileged tasks:
+ - vQueueDelete
+ - xQueueCreateMutex
+ - xQueueCreateMutexStatic
+ - xQueueCreateCountingSemaphore
+ - xQueueCreateCountingSemaphoreStatic
+ - xQueueGenericCreate
+ - xQueueGenericCreateStatic
+ - xQueueCreateSet
+ - xQueueRemoveFromSet
+ - xQueueGenericReset
+ - xTaskCreate
+ - xTaskCreateStatic
+ - vTaskDelete
+ - vTaskPrioritySet
+ - vTaskSuspendAll
+ - xTaskResumeAll
+ - xTaskGetHandle
+ - xTaskCallApplicationTaskHook
+ - vTaskList
+ - vTaskGetRunTimeStats
+ - xTaskCatchUpTicks
+ - xEventGroupCreate
+ - xEventGroupCreateStatic
+ - vEventGroupDelete
+ - xStreamBufferGenericCreate
+ - xStreamBufferGenericCreateStatic
+ - vStreamBufferDelete
+ - xStreamBufferReset
+ Also, an unprivileged task can no longer use vTaskSuspend to suspend
+ any task other than itself.
+
+ We thank the following people for their inputs in these enhancements:
+ - David Reiss of Meta Platforms, Inc.
+ - Lan Luo, Xinhui Shao, Yumeng Wei, Zixia Liu, Huaiyu Yan and Zhen Ling
+ of School of Computer Science and Engineering, Southeast University,
+ China.
+ - Xinwen Fu of Department of Computer Science, University of
+ Massachusetts Lowell, USA.
+ - Yuequi Chen, Zicheng Wang, Minghao Lin of University of Colorado
+ Boulder, USA.
+ + Add Cortex-M35P port. Contributed by @urutva.
+ + Add embedded extension (RV32E) support to the IAR RISC-V port.
+ + Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent APIs. Contributed by
+ @chrisnc.
+ + Add APIs to get the application supplied buffers from statically
+ created kernel objects. The following new APIs are added:
+ - xTaskGetStaticBuffers
+ - xQueueGetStaticBuffers
+ - xQueueGenericGetStaticBuffers
+ - xSemaphoreGetStaticBuffer
+ - xEventGroupGetStaticBuffer
+ - xStreamBufferGetStaticBuffers
+ - xMessageBufferGetStaticBuffers
+ These APIs enable the application writer to obtain static buffers from
+ the kernel object and free/reuse them at the time of deletion. Earlier
+ the application writer had to maintain the association of static buffers
+ and the kernel object in the application. Contributed by @Dazza0.
+ + Add Thread Local Storage (TLS) support using picolibc function. Contributed
+ by @keith-packard.
+ + Add configTICK_TYPE_WIDTH_IN_BITS to configure TickType_t data type. As a result,
+ the number of bits in an event group also increases with big data type. Contributed
+ by @Hadatko.
+ + Update eTaskGetState and uxTaskGetSystemState to return eReady for pending ready
+ tasks. Contributed by @Dazza0.
+ + Update heap_4 and heap_5 to add padding only if the resulting block is not
+ already aligned.
+ + Fix the scheduler logic in a couple of places to not preempt a task when an
+ equal priority task becomes ready.
+ + Add macros used in FreeRTOS-Plus libraries. Contributed by @Holden.
+ + Fix clang compiler warnings. Contributed by @phelter.
+ + Add assertions to ARMv8-M ports to detect when FreeRTOS APIs are called from
+ interrupts with priority higher than the configMAX_SYSCALL_INTERRUPT_PRIORITY.
+ Contributed by @urutva.
+ + Add xPortIsInsideInterrupt API to ARM_CM0 ports.
+ + Fix build warning in MSP430X port when large data model is used.
+ + Add the ability to use Cortex-R5 port on the parts without FPU.
+ + Fix build warning in heap implementations on PIC24/dsPIC.
+ + Update interrupt priority asserts for Cortex-M ports so that these do not fire
+ on QEMU which does not implement PRIO bits.
+ + Update ARMv7-M ports to ensure that kernel interrupts run at the lowest priority.
+ configKERNEL_INTERRUPT_PRIORITY is now obsolete for ARMv7-M ports and brings
+ these ports inline with the newer ARMv8-M ports. Contributed by @chrisnc.
+ + Fix build issue in POSIX GCC port on Windows Subsystem for Linux (WSL). Contributed
+ by @jacky309.
+ + Add portMEMORY_BARRIER to Microblaze port. Contributed by @bbain.
+ + Add portPOINTER_SIZE_TYPE definition for ATmega port. Contributed by @jputcu.
+ + Multiple improvements in the CMake support. Contributed by @phelte and @cookpate.
+
Changes between FreeRTOS V10.5.0 and FreeRTOS V10.5.1 released November 16 2022
+ Updated the kernel version in manifest and SBOM