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
 
