
  @verbatim
  ******************************************************************************
  * @file    st_readme.txt
  * @author  MCD Application Team
  * @brief   This file lists the main modification done by STMicroelectronics on
  *          "OpenAMP/libmetal" for integration with STM32Cube solution.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2021-2022 STMicroelectronics. All rights reserved.
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                       opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  @endverbatim

### V1.0.6/13-December-2024 ###
===============================
   + Fix compilation error with ARM Compiler verion 6 MDK-ARM
     - lib/atomic.h
     - lib/errno.h
     - lib/compiler.h
     - lib/include/metal/atomic.h
     - lib/include/metal/errno.h
     - lib/include/metal/compiler.h

### V1.0.5/18-January-2022 ###
===============================
   + Integrate official release v2021.10

   + Fix compilation error with gcc++
     - lib/alloc.h
     - lib/condition.h
     - lib/dma.h
     - lib/io.h
     - lib/irq.h
     - lib/mutex.h
     - lib/softirq.h
     - lib/time.h

   + Add include file generated by cmake
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/atomic.h
     - lib/include/metal/cache.h
     - lib/include/metal/compiler.h
     - lib/include/metal/compiler/armcc/errno.h
     - lib/include/metal/compiler/gcc/atomic.h
     - lib/include/metal/compiler/gcc/compiler.h
     - lib/include/metal/compiler/iar/compiler.h
     - lib/include/metal/compiler/iar/errno.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/cpu.h
     - lib/include/metal/device.h
     - lib/include/metal/dma.h
     - lib/include/metal/errno.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/irq_controller.h
     - lib/include/metal/list.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/processor/arm/atomic.h
     - lib/include/metal/processor/arm/cpu.h
     - lib/include/metal/shmem.h
     - lib/include/metal/sleep.h
     - lib/include/metal/softirq.h
     - lib/include/metal/spinlock.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/generic/alloc.h
     - lib/include/metal/system/generic/assert.h
     - lib/include/metal/system/generic/cache.h
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/io.h
     - lib/include/metal/system/generic/irq.h
     - lib/include/metal/system/generic/log.h
     - lib/include/metal/system/generic/mutex.h
     - lib/include/metal/system/generic/sleep.h
     - lib/include/metal/system/generic/sys.h
     - .../metal/system/generic/template/sys.h
     - lib/include/metal/time.h
     - lib/include/metal/utilities.h
     - lib/include/metal/version.h

   + Rename files to avoid compile error in IAR EWARM:
     - lib/system/generic/device.c  --> lib/system/generic/generic_device.c
     - lib/system/generic/init.c    --> lib/system/generic/generic_init.c
     - lib/system/generic/io.c      --> lib/system/generic/generic_io.c
     - lib/system/generic/shmem.c   --> lib/system/generic/generic_shmem.c
     - lib/system/freertos/device.c --> lib/system/freertos/freertos_device.c
     - lib/system/freertos/init.c   --> lib/system/freertos/freertos_init.c
     - lib/system/freertos/io.c     --> lib/system/freertos/freertos_io.c
     - lib/system/freertos/shmem.c  --> lib/system/freertos/freertos_shmem.c

   + Reconfigure the libmetal for Freertos support:
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/cache.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/sleep.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/freertos/alloc.h
     - lib/include/metal/system/freertos/assert.h
     - lib/include/metal/system/freertos/cache.h
     - lib/include/metal/system/freertos/condition.h
     - lib/include/metal/system/freertos/io.h
     - lib/include/metal/system/freertos/irq.h
     - lib/include/metal/system/freertos/log.h
     - lib/include/metal/system/freertos/mutex.h
     - lib/include/metal/system/freertos/sleep.h
     - lib/include/metal/system/freertos/sys.h
     - .../metal/system/freertos/template/sys.h

   + lib:Add METAL_FREERTOS compilation configs
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/cache.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/sleep.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/freertos/mutex.h

   + Fix compile error reported by EWARM toolchain
     - lib/system/freertos/freertos_io.c

### V1.0.4/13-October-2021 ###
===============================
   + Fix compile error reported by EWARM toolchain
     - lib/system/freertos/freertos_io.c

### V1.0.3/15-September-2021 ###
===============================
   + Integrate official release v2021.04

   + Add support to CortexM MCU.
     - add file "lib/system/generic/cortexm/sys.c"
     - add file "lib/system/generic/cortexm/sys.h"
     - add file "lib/system/freertos/cortexm/sys.c"
     - add file "lib/system/freertos/cortexm/sys.h"

   + Add include file generated by cmake
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/atomic.h
     - lib/include/metal/cache.h
     - lib/include/metal/compiler.h
     - lib/include/metal/compiler/armcc/errno.h
     - lib/include/metal/compiler/gcc/atomic.h
     - lib/include/metal/compiler/gcc/compiler.h
     - lib/include/metal/compiler/iar/compiler.h
     - lib/include/metal/compiler/iar/errno.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/cpu.h
     - lib/include/metal/device.h
     - lib/include/metal/dma.h
     - lib/include/metal/errno.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/irq_controller.h
     - lib/include/metal/list.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/processor/arm/atomic.h
     - lib/include/metal/processor/arm/cpu.h
     - lib/include/metal/shmem.h
     - lib/include/metal/sleep.h
     - lib/include/metal/softirq.h
     - lib/include/metal/spinlock.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/generic/alloc.h
     - lib/include/metal/system/generic/assert.h
     - lib/include/metal/system/generic/cache.h
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/io.h
     - lib/include/metal/system/generic/irq.h
     - lib/include/metal/system/generic/log.h
     - lib/include/metal/system/generic/mutex.h
     - lib/include/metal/system/generic/sleep.h
     - lib/include/metal/system/generic/sys.h
     - .../metal/system/generic/template/sys.h
     - lib/include/metal/time.h
     - lib/include/metal/utilities.h
     - lib/include/metal/version.h

   + Rename files to avoid compile error in IAR EWARM:
     - lib/system/generic/device.c  --> lib/system/generic/generic_device.c
     - lib/system/generic/init.c    --> lib/system/generic/generic_init.c
     - lib/system/generic/io.c      --> lib/system/generic/generic_io.c
     - lib/system/generic/shmem.c   --> lib/system/generic/generic_shmem.c
     - lib/system/freertos/device.c --> lib/system/freertos/freertos_device.c
     - lib/system/freertos/init.c   --> lib/system/freertos/freertos_init.c
     - lib/system/freertos/io.c     --> lib/system/freertos/freertos_io.c
     - lib/system/freertos/shmem.c  --> lib/system/freertos/freertos_shmem.c

   + Revert "lib: system: freertos: mutex: change to use atomic_int instead of freertos construct":
     - lib/system/freertos/mutex.h

   + Reconfigure the libmetal for Freertos support:
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/cache.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/sleep.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/freertos/alloc.h
     - lib/include/metal/system/freertos/assert.h
     - lib/include/metal/system/freertos/cache.h
     - lib/include/metal/system/freertos/condition.h
     - lib/include/metal/system/freertos/io.h
     - lib/include/metal/system/freertos/irq.h
     - lib/include/metal/system/freertos/log.h
     - lib/include/metal/system/freertos/mutex.h
     - lib/include/metal/system/freertos/sleep.h
     - lib/include/metal/system/freertos/sys.h
     - .../metal/system/freertos/template/sys.h

### V1.0.2/11-November-2020 ###
===============================
   + Integrate official release v2020.10

   + Add support to CortexM MCU.
     - add file "lib/system/generic/cortexm/sys.c"
     - add file "lib/system/generic/cortexm/sys.h"

   + Fix compile error reported by EWARM or ARMCC toolchains
     - lib/system/generic/io.c
     - lib/system/generic/condition.h
     - lib/system/generic/sys.h

   + Make  MDK-ARM ARMCC use GCC atomic routines, the ARMCC can support GCC routines using the "--gnu" option.
     It is required to enable that option to get the project compile correctly.
     - lib/include/metal/atomic.h

   + Add specific "errno.h" per compiler, to fix build issues for IAR and MDK-ARM.
     Applications should use "metal/errno.h" instead of "errno.h".

     - examples/system/freertos/zynqmp_r5/zynqmp_amp_demo/common.h
     - examples/system/freertos/zynqmp_r5/zynqmp_amp_demo/ipi_shmem_demod.c
     - examples/system/generic/zynqmp_r5/zynqmp_amp_demo/common.h
     - examples/system/generic/zynqmp_r5/zynqmp_amp_demo/ipi_shmem_demod.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/ipi_latency_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/ipi_shmem_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_atomic_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_latency_demo.c
     - lib/device.c
     - lib/dma.c
     - lib/include/metal/compiler/iar/errno.h
     - lib/include/metal/compiler/armcc/errno.h
     - lib/include/metal/errno.h
     - lib/include/metal/processor/arm/atomic.h
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/sys.h
     - lib/io.c
     - lib/shmem.c
     - lib/system/freertos/irq.c
     - lib/system/generic/condition.h
     - lib/system/generic/irq.c
     - lib/system/generic/sys.h
     - lib/system/linux/condition.h
     - lib/system/linux/irq.c
     - lib/system/linux/sys.h
     - lib/system/zephyr/condition.h
     - lib/system/zephyr/irq.c
     - test/metal-test.c
     - test/system/freertos/alloc.c
     - test/system/freertos/atomic.c
     - test/system/freertos/irq.c
     - test/system/freertos/sleep.c
     - test/system/freertos/threads.c
     - test/system/generic/irq.c
     - test/system/linux/irq.c
     - test/system/zephyr/irq.c

   + Add header files tree as generated by cmake tool, applications can't include header file from source tree directly.
     - lib/metal/softirq.h
     - lib/metal/cpu.h
     - lib/metal/system
     - lib/metal/system/generic
     - lib/metal/system/generic/template
     - lib/metal/system/generic/template/sys.h
     - lib/metal/system/generic/mutex.h
     - lib/metal/system/generic/alloc.h
     - lib/metal/system/generic/sys.h
     - lib/metal/system/generic/log.h
     - lib/metal/system/generic/irq.h
     - lib/metal/system/generic/condition.h
     - lib/metal/system/generic/assert.h
     - lib/metal/system/generic/cache.h
     - lib/metal/system/generic/sleep.h
     - lib/metal/system/generic/io.h
     - lib/metal/irq_controller.h
     - lib/metal/compiler
     - lib/metal/compiler/gcc
     - lib/metal/compiler/gcc/compiler.h
     - lib/metal/compiler/gcc/atomic.h
     - lib/metal/compiler/iar
     - lib/metal/compiler/iar/compiler.h
     - lib/metal/compiler/iar/errno.h
     - lib/metal/compiler/armcc
     - lib/metal/compiler/armcc/errno.h
     - lib/metal/mutex.h
     - lib/metal/processor
     - lib/metal/processor/arm
     - lib/metal/processor/arm/cpu.h
     - lib/metal/processor/arm/atomic.h
     - lib/metal/alloc.h
     - lib/metal/dma.h
     - lib/metal/sys.h
     - lib/metal/utilities.h
     - lib/metal/device.h
     - lib/metal/log.h
     - lib/metal/irq.h
     - lib/metal/shmem.h
     - lib/metal/list.h
     - lib/metal/condition.h
     - lib/metal/version.h
     - lib/metal/compiler.h
     - lib/metal/config.h
     - lib/metal/errno.h
     - lib/metal/assert.h
     - lib/metal/cache.h
     - lib/metal/atomic.h
     - lib/metal/sleep.h
     - lib/metal/spinlock.h
     - lib/metal/io.h
     - lib/metal/time.h

### V1.0.1/11-October-2019 ###
===============================

   + Remove include files not used to fix compilation on IAR and KEIL
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/sys.h


### V1.0.0/29-March-2019 ###
===============================
   + Integrate official release v2018.10

   + Rename files to avoid compile error in IAR EWARM:
     - lib/system/generic/device.c  --> lib/system/generic/generic_device.c
     - lib/system/generic/init.c    --> lib/system/generic/generic_init.c
     - lib/system/generic/io.c      --> lib/system/generic/io.c
     - lib/system/generic/shmem.c   --> lib/system/generic/generic_shmem.c

   + Add support to CortexM MCU.
     - add file "lib/system/generic/cortexm/sys.c"
     - add file "lib/system/generic/cortexm/sys.h"

   + Fix errors when calling atomic functions, as implicit cast between integer and flags is not
       allowed by IAR, modified files are:
     - lib/spinlock.h
     - lib/system/generic/condition.c
     - lib/system/generic/mutex.h

   + Add header files tree as generated by cmake tool, applications can't include header file from source tree directly.
     - lib/include/metal/alloc.h
     - lib/include/metal/assert.h
     - lib/include/metal/atomic.h
     - lib/include/metal/cache.h
     - lib/include/metal/compiler.h
     - lib/include/metal/compiler/gcc/atomic.h
     - lib/include/metal/compiler/gcc/compiler.h
     - lib/include/metal/compiler/iar/compiler.h
     - lib/include/metal/condition.h
     - lib/include/metal/config.h
     - lib/include/metal/cpu.h
     - lib/include/metal/device.h
     - lib/include/metal/dma.h
     - lib/include/metal/io.h
     - lib/include/metal/irq.h
     - lib/include/metal/list.h
     - lib/include/metal/log.h
     - lib/include/metal/mutex.h
     - lib/include/metal/processor/arm/atomic.h
     - lib/include/metal/processor/arm/cpu.h
     - lib/include/metal/shmem.h
     - lib/include/metal/sleep.h
     - lib/include/metal/spinlock.h
     - lib/include/metal/sys.h
     - lib/include/metal/system/generic/alloc.h
     - lib/include/metal/system/generic/assert.h
     - lib/include/metal/system/generic/cache.h
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/cortexm/sys.h
     - lib/include/metal/system/generic/io.h
     - lib/include/metal/system/generic/irq.h
     - lib/include/metal/system/generic/log.h
     - lib/include/metal/system/generic/mutex.h
     - lib/include/metal/system/generic/sleep.h
     - lib/include/metal/system/generic/sys.h
     - lib/include/metal/time.h
     - lib/include/metal/utilities.h
     - lib/include/metal/version.h

   + Make  MDK-ARM ARMCC use GCC atomic routines, the ARMCC can support GCC routines using the "--gnu" option.
     It is required to enable that option to get the project compile correctly.
     - lib/include/metal/atomic.h


   + Add specific "errno.h" per compiler, to fix build issues for IAR and MDK-ARM.
     Applications should use "metal/errno.h" instead of "errno.h".

     - examples/system/freertos/zynqmp_r5/zynqmp_amp_demo/common.h
     - examples/system/freertos/zynqmp_r5/zynqmp_amp_demo/ipi_shmem_demod.c
     - examples/system/generic/zynqmp_r5/zynqmp_amp_demo/common.h
     - examples/system/generic/zynqmp_r5/zynqmp_amp_demo/ipi_shmem_demod.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/ipi_latency_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/ipi_shmem_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_atomic_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_demo.c
     - examples/system/linux/zynqmp/zynqmp_amp_demo/shmem_latency_demo.c
     - lib/device.c
     - lib/dma.c
     - lib/include/metal/compiler/iar/errno.h
     - lib/include/metal/compiler/mdk-arm/errno.h
     - lib/include/metal/errno.h
     - lib/include/metal/processor/arm/atomic.h
     - lib/include/metal/system/generic/condition.h
     - lib/include/metal/system/generic/sys.h
     - lib/io.c
     - lib/shmem.c
     - lib/system/freertos/irq.c
     - lib/system/generic/condition.h
     - lib/system/generic/irq.c
     - lib/system/generic/sys.h
     - lib/system/linux/condition.h
     - lib/system/linux/irq.c
     - lib/system/linux/sys.h
     - lib/system/zephyr/condition.h
     - lib/system/zephyr/irq.c
     - test/metal-test.c
     - test/system/freertos/alloc.c
     - test/system/freertos/atomic.c
     - test/system/freertos/irq.c
     - test/system/freertos/sleep.c
     - test/system/freertos/threads.c
     - test/system/generic/irq.c
     - test/system/linux/irq.c
     - test/system/zephyr/irq.c



 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
 */
