diff options
author | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2021-04-29 18:01:41 -0500 |
---|---|---|
committer | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2021-05-07 10:35:36 -0500 |
commit | b9a5706c07bc8e170827ba0b89089b0449baf505 (patch) | |
tree | ff137a5d09f2a2fc52e9d22d05f3f7934eea413a | |
parent | 08532d75c076a994dd63c4c341babbfb23393eed (diff) | |
download | arm-trusted-firmware-b9a5706c07bc8e170827ba0b89089b0449baf505.tar.gz |
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>
-rw-r--r-- | docs/change-log.rst | 671 |
1 files changed, 670 insertions, 1 deletions
diff --git a/docs/change-log.rst b/docs/change-log.rst index ec88df921..4e7c96f6a 100644 --- a/docs/change-log.rst +++ b/docs/change-log.rst @@ -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 |