docs: the change log for the v2.11 release
Change-Id: Iaf5b4f0aa67bc8cee464fc66fccba0e9b38998c7
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/docs/change-log.md b/docs/change-log.md
index bfa13bf..2bd7e55 100644
--- a/docs/change-log.md
+++ b/docs/change-log.md
@@ -1,5 +1,119 @@
# Change Log
+## v2.11
+### Highlights
+
+* FF-A v1.2 (continued adoption):
+ * Direct messaging:
+ * New ABIs `FFA_MSG_SEND_DIRECT_REQ2` and `FFA_MSG_SEND_DIRECT_RESP2`.
+ * Support extended register set and use of service UUID.
+ * Memory management:
+ * ABIs support the impdef field in memory access descriptor.
+ * Lend device memory from an SP to another SP, and from a VM to an SP.
+ * Setup and discovery:
+ * Support multiple UUIDs per SP, both in manifest parsing and
+ `FFA_PARTITION_INFO_GET`.
+ * The `FFA_FEATURES` ABI reports RX/TX buffer max size.
+ * Support extended set of registers with `FFA_CONSOLE_LOG` for v1.2 SPs.
+
+* Runtime support:
+ * Trap SP access to AMU counters.
+ * SIMD context:
+ * Refactored Advanced SIMD/SVE save and restore operations.
+ * Introduce context save and restore of SME registers.
+ * Leverage the SMCCC SVE hint bit mask.
+ * Trap SP access to SVE/SME registers.
+ * Realm Management Extension support:
+ * On `FFA_MEM_DONATE` or `FFA_MEM_LEND` from VM/OS Kernel to SPs, change the physical
+ address space of the memory regions from non-secure to secure.
+ * On `FFA_MEM_RECLAIM`, if memory's address space was changed from non-secure to secure
+ address space, revert physical address space change (from secure to non-secure).
+ * The SPMC can handle a Granule Protection Fault: exception handler refactored
+ to trap the new `memcpy_trapped` function, which returns error if copy failed due to GPF.
+ * FFA_PARTITION_INFO_GET and FFA_MSG_SEND2 interfaces return FFA_ERROR(FFA_ABORTED) in case
+ of hitting a Granule Protection Fault.
+ * SMMUv3:
+ * Support for static DMA isolation of upstream devices.
+ * Access from DMA capable devices are only permitted to specific memory regions
+ via dedicated DMA properties in the memory region node of an partition manifest.
+ * SPMC saves and restores the NS-EL1 system registers context, to help reduce memory from
+ EL3 monitor.
+ * GICv3 driver to support two security states for interrupts.
+
+* Hardware architecture support:
+ * New platform build for RD fremont.
+ * TC platform remapped the UART devices.
+
+* Tests, scripts and testing framework:
+ * TF-A prebuilt image used in Hafnium tests updated to support v1.2 interfaces.
+ * S-EL0 partitions bumped to FF-A v1.2 version in general functionality tests.
+ * The `SERVICE_SELECT_MP` macro was added to allow for tests to target a different vCPU
+ than the primary vCPU.
+ * Various new tests added to cover the newly added functionalities.
+
+* Bug fixes:
+ * FF-A memory management:
+ * `FFA_MEM_RELINQUISH` returns `FFA_ERROR(FFA_DENIED)`, if clear memory flag is used
+ when borrower's permission is RO.
+ * `FFA_MEM_RETRIEVE_REQ` returns `FFA_ERROR(FFA_DENIED)` if sender ID is not correct in
+ memory region descriptor.
+ * Hypervisor retrieve request updated to support FF-A v1.2 descriptors and avoid
+ conflicting checks with normal retrieve requests from FF-A endpoints.
+ * `FFA_MEM_RETRIEVE_REQ` returns `FFA_ERROR(FFA_INVALID_PARAMETERS)` if receiver count
+ is zero in memory region descriptor.
+ * Interrupt handling:
+ * Secure interrupt implicit completion flag reset in the runtime model for `FFA_RUN`.
+ * Intercept `FFA_MSG_SEND_DIRECT_RESP/FFA_MSG_SEND_DIRECT_RESP2` and `FFA_MSG_WAIT` if SP
+ relinquishes CPU cycles with pending secure interrupts.
+ * Ignore spurious interrupt 1023 when SP is executing.
+ * Unwind call chain when intercepting a direct response, to avoid SPs crashing.
+ * Check that platform exists before building.
+ * `FFA_FEATURES` interface:
+ * SPMC returns `FFA_ERROR(FFA_NOT_SUPPORTED)` if func ID is `FFA_EL3_INTR_HANDLE`, and
+ call is from hyperviosr/OS kernel.
+ * SPMC returns `FFA_ERROR(FFA_NOT_SUPPORTED)` if feature ID is `SRI`, and call is from SP.
+ * SPMC returns `FFA_ERROR(FFA_NOT_SUPPORTED)` if feature ID is `NPI` or `ME`, and call is
+ from Hypervisor/OS Kernel.
+ * FF-A notifications:
+ * Return error code `FFA_INVALID_PARAMETERS` when provided invalid partition IDs
+ in `FFA_NOTIFICATION_BITMAP_CREATE/DESTROY` and `FFA_NOTIFICATION_BIND/UNBIND`.
+ * Return error `FFA_INVALID_PARAMETERS` to `FFA_NOTIFICATION_SET` if flags that
+ Must Be Zero are not.
+ * The vCPU argument must be zero in `FFA_NOTIFICATION_SET` for global notifications,
+ else return error `FFA_INVALID_PARAMETERS`.
+ * FF-A Indirect messaging:
+ * Fix the checks to messages offset and total size.
+ * Validate that SPMC has mapped the hypervisor/OS Kernel RX/TX buffers before
+ accessing the buffers.
+ * The handling of `FFA_MSG_WAIT` shall not change the SPMC's internal state of the
+ RX buffer.
+ * The interfaces `FFA_MEM_PERM_SET/GET` return error `FFA_DENIED` if used after
+ SP's initializing.
+ * The `kokoro/test_spmc.sh` terminates when hitting a failure for runs that are not
+ collecting coverage data.
+ * Device memory regions are mapped with attributes nGnRnE.
+
+* Misc:
+ * Building multiple targets with a single command with PLATFORM variable, providing
+ multiple targets separated by ','.
+ * Dropped the clang toolchain from the 'prebuilts' submodule to save repository space.
+ * Dropped implementation of `HF_INTERRUPT_INJECT` out of SPMC implementation, as it was
+ designed for Hypervisor and has no use in the SPMC.
+ * Code static checks were separated into a dedicated script.
+ * The interfaces `FFA_RXTX_MAP` and `FFA_RXTX_UNMAP` are restricted to NS memory provided
+ in the SPMC manifest.
+ * Improved handling of device region nodes in SP manifest:
+ * The ranges specified were restricted to those specified in the designated nodes of
+ the SPMC manifest.
+ * Check overlaps with other memory regions in the system, such as partitions address
+ space.
+ * Avoid tracking the sender ID and descriptor size for memory management ABIs, in
+ Hafnium's mailbox internal structures.
+ * Helpers to log the names of FF-A ABIs and FF-A error codes.
+ * Increase timeout for tests in `kokoro/test_spmc.sh` to cater for CI speed.
+ * Use bitfield structures for permissions and attributes from the FF-A memory access
+ descriptors.
+
## v2.10
### Highlights