docs(release): add change log for v2.5 release

Change log for trusted-firmware-a v2.5 release

Change-Id: I6ffc8a40d2cc3a18145b87f895acdc1400db485a
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
This commit is contained in:
Madhukar Pappireddy 2021-04-29 18:01:41 -05:00
parent 08532d75c0
commit b9a5706c07
1 changed files with 670 additions and 1 deletions

View File

@ -4,6 +4,675 @@ Change Log & Release Notes
This document contains a summary of the new features, changes, fixes and known
issues in each release of Trusted Firmware-A.
Version 2.5
-----------
New Features
^^^^^^^^^^^^
- Architecture support
- Added support for speculation barrier(``FEAT_SB``) for non-Armv8.5
platforms starting from Armv8.0
- Added support for Activity Monitors Extension version 1.1(``FEAT_AMUv1p1``)
- Added helper functions for Random number generator(``FEAT_RNG``) registers
- Added support for Armv8.6 Multi-threaded PMU extensions (``FEAT_MTPMU``)
- Added support for MTE Asymmetric Fault Handling extensions(``FEAT_MTE3``)
- Added support for Privileged Access Never extensions(``FEAT_PANx``)
- Bootloader images
- Added PIE support for AArch32 builds
- Enable Trusted Random Number Generator service for BL32(sp_min)
- Build System
- Added build option for Arm Feature Modifiers
- Drivers
- Added support for interrupts in TZC-400 driver
- Broadcom
- Added support for I2C, MDIO and USB drivers
- Marvell
- Added support for secure read/write of dfc register-set
- Added support for thermal sensor driver
- Implement a3700_core_getc API in console driver
- Added rx training on 10G port
- Marvell Mochi
- Added support for cn913x in PCIe mode
- Marvell Armada A8K
- Added support for TRNG-IP-76 driver and accessing RNG register
- Mediatek MT8192
- Added support for following drivers
- MPU configuration for SCP/PCIe
- SPM suspend
- Vcore DVFS
- LPM
- PTP3
- UART save and restore
- Power-off
- PMIC
- CPU hotplug and MCDI support
- SPMC
- MPU
- Mediatek MT8195
- Added support for following drivers
- GPIO, NCDI, SPMC drivers
- Power-off
- CPU hotplug, reboot and MCDI
- Delay timer and sys timer
- GIC
- NXP
- Added support for
- non-volatile storage API
- chain of trust and trusted board boot using two modes: MBEDTLS and CSF
- fip-handler necessary for DDR initialization
- SMMU and console drivers
- crypto hardware accelerator driver
- following drivers: SD, EMMC, QSPI, FLEXSPI, GPIO, GIC, CSU, PMU, DDR
- NXP Security Monitor and SFP driver
- interconnect config APIs using ARM CCN-CCI driver
- TZC APIs to configure DDR region
- generic timer driver
- Device configuration driver
- IMX
- Added support for image loading and io-storage driver for TBBR fip booting
- Renesas
- Added support for PFC and EMMC driver
- RZ Family:
- G2N, G2E and G2H SoCs
- Added support for watchdog, QoS, PFC and DRAM initialization
- RZG Family:
- G2M
- Added support for QoS and DRAM initialization
- Xilinx
- Added JTAG DCC support for Versal and ZynqMP SoC family.
- Libraries
- C standard library
- Added support to print ``%`` in ``snprintf()`` and ``printf()`` APIs
- Added support for strtoull, strtoll, strtoul, strtol APIs from FreeBSD project
- CPU support
- Added support for
- Cortex_A78C CPU
- Makalu ELP CPU
- Makalu CPU
- Matterhorn CPU
- Neoverse-N2 CPU
- CPU Errata
- Arm Cortex-A76: Added workaround for erratum 1946160
- Arm Cortex-A77: Added workaround for erratum 1946167
- Arm Cortex-A78: Added workaround for erratum 1941498 and 1951500
- Arm Neoverse-N1: Added workaround for erratum 1946160
- Flattened device tree(libfdt)
- Added support for wrapper function to read UUIDs in string format from dtb
- Platforms
- Added support for MediaTek MT8195
- Added support for Arm RD-N2 board
- Allwinner
- Added support for H616 SoC
- Arm
- Added support for GPT parser
- Protect GICR frames for fused/unused cores
- Arm Morello
- Added VirtIO network device to Morello FVP fdts
- Arm RD-N2
- Added support for variant 1 of RD-N2 platform
- Enable AMU support
- Arm RD-V1
- Enable AMU support
- Arm SGI
- Added support for platform variant build option
- Arm TC0
- Added Matterhorn ELP CPU support
- Added support for opteed
- Arm Juno
- Added support to use hw_config in BL31
- Use TRNG entropy source for SMCCC TRNG interface
- Condition Juno entropy source with CRC instructions
- Marvell Mochi
- Added support for detection of secure mode
- Marvell ARMADA
- Added support for new compile option A3720_DB_PM_WAKEUP_SRC
- Added support doing system reset via CM3 secure coprocessor
- Made several makefile enhancements required to build WTMI_MULTI_IMG and TIMDDRTOOL
- Added support for building DOIMAGETOOL tool
- Added new target mrvl_bootimage
- Mediatek MT8192
- Added support for rtc power off sequence
- Mediatek MT8195
- Added support for SiP service
- STM32MP1
- Added support for
- Seeed ODYSSEY SoM and board
- SDMMC2 and I2C2 pins in pinctrl
- I2C2 peripheral in DTS
- PIE for BL32
- TZC-400 interrupt managament
- Linux Automation MC-1 board
- Renesas RZG
- Added support for identifying EK874 RZ/G2E board
- Added support for identifying HopeRun HiHope RZ/G2H and RZ/G2H boards
- Rockchip
- Added support for stack protector
- QEMU
- Added support for ``max`` CPU
- Added Cortex-A72 support to ``virt`` platform
- Enabled trigger reboot from secure pl061
- QEMU SBSA
- Added support for sbsa-ref Embedded Controller
- NXP
- Added support for warm reset to retain ddr content
- Added support for image loader necessary for loading fip image
- lx2160a SoC Family
- Added support for
- new platform lx2160a-aqds
- new platform lx2160a-rdb
- new platform lx2162a-aqds
- errata handling
- IMX imx8mm
- Added support for trusted board boot
- TI K3
- Added support for lite device board
- Enabled Cortex-A72 erratum 1319367
- Enabled Cortex-A53 erratum 1530924
- Xilinx ZynqMP
- Added support for PS and system reset on WDT restart
- Added support for error management
- Enable support for log messages necessary for debug
- Added support for PM API SMC call for efuse and register access
- Processes
- Introduced process for platform deprecation
- Added documentation for TF-A threat model
- Provided a copy of the MIT license to comply with the license
requirements of the arm-gic.h source file (originating from the Linux
kernel project and re-distributed in TF-A).
- Services
- Added support for TRNG firmware interface service
- Arm
- Added SiP service to configure Ethos-N NPU
- SPMC
- Added documentation for SPM(Hafnium) SMMUv3 driver
- SPMD
- Added support for
- FFA_INTERRUPT forwading ABI
- FFA_SECONDARY_EP_REGISTER ABI
- FF-A v1.0 boot time power management, SPMC secondary core boot and
early run-time power management
- Tools
- FIPTool
- Added mechanism to allow platform specific image UUID
- git hooks
- Added support for conventional commits through commitlint hook,
commitizen hook and husky configuration files.
- NXP tool
- Added support for a tool that creates pbl file from BL2
- Renesas RZ/G2
- Added tool support for creating bootparam and cert_header images
- CertCreate
- Added support for platform-defined certificates, keys, and extensions using
the platform's makefile
- shared tools
- Added EFI_GUID representation to uuid helper data structure
Changed
^^^^^^^
- Common components
- Print newline after hex address in aarch64 el3_panic function
- Use proper ``#address-cells`` and ``#size-cells`` for reserved-memory in dtbs
- Drivers
- Move SCMI driver from ST platform directory and make it common to all platforms
- Arm GICv3
- Shift eSPI register offset in GICD_OFFSET_64()
- Use mpidr to probe GICR for current CPU
- Arm TZC-400
- Adjust filter tag if it set to FILTER_BIT_ALL
- Cadence
- Enhance UART driver APIs to put characters to fifo
- Mediatek MT8192
- Move timer driver to common folder
- Enhanced sys_cirq driver to add more IC services
- Renesas
- Move ddr and delay driver to common directory
- Renesas rcar
- Treat log as device memory in console driver
- Renesas RZ Family:
- G2N and G2H SoCs
- Select MMC_CH1 for eMMC channel
- Marvell
- Added support for checking if TRNG unit is present
- Marvell A3K
- Set TXDCLK_2X_SEL bit during PCIe initialization
- Set mask parameter for every reg_set call
- Marvell Mochi
- Added missing stream IDs configurations
- MbedTLS
- Migrated to Mbed TLS v2.26.0
- IMX imx8mp
- Change the bl31 physical load address
- QEMU SBSA
- Enable secure variable storage
- SCMI
- Update power domain protocol version to 2.0
- STM32
- Remove dead code from nand FMC driver
- Libraries
- C Standard Library
- Use macros to reduce duplicated code between snprintf and printf
- CPU support
- Sanity check pointers before use in AArch32 builds
- Arm Cortex-A78
- Remove rainier cpu workaround for errata 1542319
- Arm Makalu ELP
- Added "_arm" suffix to Makalu ELP CPU lib
- Miscellaneous
- Editorconfig
- set max line length to 100
- Platforms
- Allwinner
- Added reserved-memory node to DT
- Express memmap more dynamically
- Move SEPARATE_NOBITS_REGION to platforms
- Limit FDT checks to reduce code size
- Use CPUIDLE hardware when available
- Allow conditional compilation of SCPI and native PSCI ops
- Always use a 3MHz RSB bus clock
- Enable workaround for Cortex-A53 erratum 1530924
- Fixed non-default PRELOADED_BL33_BASE
- Leave CPU power alone during BL31 setup
- Added several psci hooks enhancements to improve system shutdown/reset
sequence
- Return the PMIC to I2C mode after use
- Separate code to power off self and other CPUs
- Split native and SCPI-based PSCI implementations
- Allwinner H6
- Added R_PRCM security setup for H6 board
- Added SPC security setup for H6 board
- Use RSB for the PMIC connection on H6
- Arm
- Store UUID as a string, rather than ints
- Replace FIP base and size macro with a generic name
- Move compile time switch from source to dt file
- Don't provide NT_FW_CONFIG when booting hafnium
- Do not setup 'disabled' regulator
- Increase SP max size
- Remove false dependency of ARM_LINUX_KERNEL_AS_BL33 on RESET_TO_BL31
and allow it to be enabled independently
- Arm FVP
- Do not map GIC region in BL1 and BL2
- Arm Juno
- Refactor juno_getentropy() to return 64 bits on each call
- Arm Morello
- Remove "virtio-rng" from Morello FVP
- Enable virtIO P9 device for Morello fvp
- Arm RDV1
- Allow all PSCI callbacks on RD-V1
- Rename rddaniel to rdv1
- Arm RDV1MC
- Rename rddanielxlr to rdv1mc
- Initialize TZC-400 controllers
- Arm TC0
- Updated GICR base address
- Use scmi_dvfs clock index 1 for cores 4-7 through fdt
- Added reserved-memory node for OP-TEE fdts
- Enabled Theodul DSU in TC platform
- OP-TEE as S-EL1 SP with SPMC at S-EL2
- Update Matterhorm ELP DVFS clock index
- Arm SGI
- Allow access to TZC controller on all chips
- Define memory regions for multi-chip platforms
- Allow access to nor2 flash and system registers from S-EL0
- Define default list of memory regions for DMC-620 TZC
- Improve macros defining cper buffer memory region
- Refactor DMC-620 error handling SMC function id
- Refactor SDEI specific macros
- Added platform id value for RDN2 platform
- Refactored header file inclusions and inclusion of memory mapping
- Arm RDN2
- Allow usage of secure partitions on RDN2 platform
- Update GIC redistributor and TZC base address
- Arm SGM775
- Deprecate Arm sgm775 FVP platform
- Marvell
- Increase TX FIFO EMPTY timeout from 2ms to 3ms
- Update delay code to be compatible with 1200 MHz CPU
- Marvell ARMADA
- Postpone MSS CPU startup to BL31 stage
- Allow builds without MSS support
- Use MSS SRAM in secure mode
- Added missing FORCE, .PHONY and clean targets
- Cleanup MSS SRAM if used for copy
- Move definition of mrvl_flash target to common marvell_common.mk file
- Show informative build messages and blank lines
- Marvell ARMADA A3K
- Added a new target mrvl_uart which builds UART image
- Added checks that WTP, MV_DDR_PATH and CRYPTOPP_PATH are correctly defined
- Allow use of the system Crypto++ library
- Build $(WTMI_ENC_IMG) in $(BUILD_PLAT) directory
- Build intermediate files in $(BUILD_PLAT) directory
- Build UART image files directly in $(BUILD_UART) subdirectory
- Correctly set DDR_TOPOLOGY and CLOCKSPRESET for WTMI
- Do not use 'echo -e' in Makefile
- Improve 4GB DRAM usage from 3.375 GB to 3.75 GB
- Remove unused variable WTMI_SYSINIT_IMG from Makefile
- Simplify check if WTP variable is defined
- Split building $(WTMI_MULTI_IMG) and $(TIMDDRTOOL)
- Marvell ARMADA A8K
- Allow CP1/CP2 mapping at BLE stage
- Mediatek MT8183
- Added timer V20 compensation
- Nvidia Tegra
- Rename SMC API
- TI K3
- Make plat_get_syscnt_freq2 helper check CNT_FID0 register
- Fill non-message data fields in sec_proxy with 0x0
- Update ti_sci_msg_req_reboot ABI to include domain
- Enable USE_COHERENT_MEM only for the generic board
- Explicitly map SEC_SRAM_BASE to 0x0
- Use BL31_SIZE instead of computing
- Define the correct number of max table entries and increase SRAM size
to account for additional table
- Raspberry Pi4
- Switch to gicv2.mk and GICV2_SOURCES
- Renesas
- Move headers and assembly files to common folder
- Renesas rzg
- Added device tree memory node enhancements
- Rockchip
- Switch to using common gicv3.mk
- STM32MP1
- Set BL sizes regardless of flags
- QEMU
- Include gicv2.mk for compiling GICv2 source files
- Change DEVICE2 definition for MMU
- Added helper to calculate the position shift from MPIDR
- QEMU SBSA
- Include libraries for Cortex-A72
- Increase SHARED_RAM_SIZE
- Addes support in spm_mm for upto 512 cores
- Added support for topology handling
- QTI
- Mandate SMC implementation
- Xilinx
- Rename the IPI CRC checksum macro
- Use fno-jump-tables flag in CPPFLAGS
- Xilinx versal
- Added the IPI CRC checksum macro support
- Mark IPI calls secure/non-secure
- Enable sgi to communicate with linux using IPI
- Remove Cortex-A53 compilation
- Xilinx ZynqMP
- Configure counter frequency during initialization
- Filter errors related to clock gate permissions
- Implement pinctrl request/release EEMI API
- Reimplement pinctrl get/set config parameter EEMI API calls
- Reimplement pinctrl set/get function EEMI API
- Update error codes to match Linux and PMU Firmware
- Update PM version and support PM version check
- Update return type in query functions
- Added missing ids for 43/46/47dr devices
- Checked for DLL status before doing reset
- Disable ITAPDLYENA bit for zero ITAP delay
- Include GICv2 makefile
- Remove the custom crash implementation
- Services
- SPMD
- Lock the g_spmd_pm structure
- Declare third cactus instance as UP SP
- Provide number of vCPUs and VM size for first SP
- Remove ``chosen`` node from SPMC manifests
- Move OP-TEE SP manifest DTS to FVP platform
- Update OP-TEE SP manifest with device-regions node
- Remove device-memory node from SPMC manifests
- SPM_MM
- Use sp_boot_info to set SP context
- SDEI
- Updata the affinity of shared event
- Tools
- FIPtool
- Do not print duplicate verbose lines about building fiptool
- CertCreate
- Updated tool for platform defined certs, keys & extensions
- Create only requested certificates
- Avoid duplicates in extension stack
Resolved Issues
^^^^^^^^^^^^^^^
- Several fixes for typos and mis-spellings in documentation
- Build system
- Fixed ${FIP_NAME} to be rebuilt only when needed in Makefile
- Do not mark file targets as .PHONY target in Makefile
- Drivers
- Authorization
- Avoid NV counter upgrade without certificate validation
- Arm GICv3
- Fixed logical issue for num_eints
- Limit SPI ID to avoid misjudgement in GICD_OFFSET()
- Fixed potential GICD context override with ESPI enabled
- Marvell A3700
- Fixed configuring polarity invert bits
- Arm TZC-400
- Correct FAIL_CONTROL Privileged bit
- Fixed logical error in FILTER_BIT definitions
- Renesas rcar
- Fixed several coding style violations reported by checkpatch
- Libraries
- Arch helpers
- Fixed assertions in processing dynamic relocations for AArch64 builds
- C standard library
- Fixed MISRA issues in memset() ABI
- RAS
- Fixed bug of binary search in RAS interrupt handler
- Platforms
- Arm
- Fixed missing copyrights in arm-gic.h file
- Fixed the order of header files in several dts files
- Fixed error message printing in board makefile
- Fixed bug of overriding the last node in image load helper API
- Fixed stdout-path in fdts files of TC0 and N1SDP platforms
- Turn ON/OFF redistributor in sync with GIC CPU interface ON/OFF for css platforms
- Arm FVP
- Fixed Generic Timer interrupt types in platform dts files
- Arm Juno
- Fixed parallel build issue for romlib config
- Arm SGI
- Fixed bug in SDEI receive event of RAS handler
- Intel Agilex
- Fixed PLAT_MAX_PWR_LVL value
- Marvell
- Fixed SPD handling in dram port
- Marvell ARMADA
- Fixed TRNG return SMC handling
- Fixed the logic used for LD selector mask
- Fixed MSS firmware loader for A8K family
- ST
- Fixed few violations reported by coverity static checks
- STM32MP1
- Fixed SELFREF_TO_X32 mask in ddr driver
- Do not keep mmc_device_info in stack
- Correct plat_crash_console_flush()
- QEMU SBSA
- Fixed memory type of secure NOR flash
- QTI
- Fixed NUM_APID and REG_APID_MAP() argument in SPMI driver
- Intel
- Do not keep mmc_device_info in stack
- Hisilicon
- Do not keep mmc_device_info in stack
- Services
- EL3 runtime
- Fixed the EL2 context save/restore routine by removing EL2 generic
timer system registers
- Added fix for exception handler in BL31 by synchronizing pending EA
using DSB barrier
- SPMD
- Fixed error codes to use int32_t type
- TSPD
- Added bug fix in tspd interrupt handling when TSP_NS_INTR_ASYNC_PREEMPT is enabled
- TRNG
- Fixed compilation errors with -O0 compile option
- DebugFS
- Checked channel index before calling clone function
- PSCI
- Fixed limit of 256 CPUs caused by cast to unsigned char
- TSP
- Fixed compilation erros when built with GCC 11.0.0 toolchain
- Tools
- FIPtool
- Do not call ``make clean`` for ``all`` target
- CertCreate
- Fixed bug to avoid cleaning when building the binary
- Used preallocated parts of the HASH struct to avoid leaking HASH struct fields
- Free arguments copied with strdup
- Free keys after use
- Free X509_EXTENSION structures on stack to avoid leaking them
- Optimized the code to avoid unnecessary attempts to create non-requested
certificates
Version 2.4
-----------
@ -89,7 +758,7 @@ New Features
- Added workaround for erratum 1800714
- Added workaround for erratum 1925769
- Arm Neoverse N1
- Arm Neoverse-N1
- Added workaround for erratum 1868343
- EL3 Runtime