1c4e8edabSChris Kay# Change Log & Release Notes 2c4e8edabSChris Kay 3c4e8edabSChris KayThis document contains a summary of the new features, changes, fixes and known 4c4e8edabSChris Kayissues in each release of Trusted Firmware-A. 5c4e8edabSChris Kay 663d2e960SManish V Badarkhe## 2.6 (2021-11-22) 763d2e960SManish V Badarkhe 863d2e960SManish V Badarkhe### ⚠ BREAKING CHANGES 963d2e960SManish V Badarkhe 1063d2e960SManish V Badarkhe- **Architecture** 1163d2e960SManish V Badarkhe 1263d2e960SManish V Badarkhe - **Activity Monitors Extension (FEAT_AMU)** 1363d2e960SManish V Badarkhe 1463d2e960SManish V Badarkhe - The public AMU API has been reduced to enablement only 1563d2e960SManish V Badarkhe to facilitate refactoring work. These APIs were not previously used. 1663d2e960SManish V Badarkhe 1763d2e960SManish V Badarkhe **See:** privatize unused AMU APIs ([b4b726e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b4b726ea868359cf683c07337b69fe91a2a6929a)) 1863d2e960SManish V Badarkhe 1963d2e960SManish V Badarkhe - The `PLAT_AMU_GROUP1_COUNTERS_MASK` platform definition 2063d2e960SManish V Badarkhe has been removed. Platforms should specify per-core AMU counter masks 2163d2e960SManish V Badarkhe via FCONF or a platform-specific mechanism going forward. 2263d2e960SManish V Badarkhe 2363d2e960SManish V Badarkhe **See:** remove `PLAT_AMU_GROUP1_COUNTERS_MASK` ([6c8dda1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6c8dda19e5f484f8544365fd71d965f0afc39244)) 2463d2e960SManish V Badarkhe 2563d2e960SManish V Badarkhe- **Libraries** 2663d2e960SManish V Badarkhe 2763d2e960SManish V Badarkhe - **FCONF** 2863d2e960SManish V Badarkhe 2963d2e960SManish V Badarkhe - FCONF is no longer added to BL1 and BL2 automatically 3063d2e960SManish V Badarkhe when the FCONF Makefile (`fconf.mk`) is included. When including this 3163d2e960SManish V Badarkhe Makefile, consider whether you need to add `${FCONF_SOURCES}` and 3263d2e960SManish V Badarkhe `${FCONF_DYN_SOURCES}` to `BL1_SOURCES` and `BL2_SOURCES`. 3363d2e960SManish V Badarkhe 3463d2e960SManish V Badarkhe **See:** clean up source collection ([e04da4c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e04da4c8e132f43218f18ad3b41479ca54bb9263)) 3563d2e960SManish V Badarkhe 3663d2e960SManish V Badarkhe- **Drivers** 3763d2e960SManish V Badarkhe 3863d2e960SManish V Badarkhe - **Arm** 3963d2e960SManish V Badarkhe 4063d2e960SManish V Badarkhe - **Ethos-N** 4163d2e960SManish V Badarkhe 4263d2e960SManish V Badarkhe - multi-device support 4363d2e960SManish V Badarkhe 4463d2e960SManish V Badarkhe **See:** multi-device support ([1c65989](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1c65989e70c9734defc666e824628620b2060b92)) 4563d2e960SManish V Badarkhe 4663d2e960SManish V Badarkhe### New Features 4763d2e960SManish V Badarkhe 4863d2e960SManish V Badarkhe- **Architecture** 4963d2e960SManish V Badarkhe 5063d2e960SManish V Badarkhe - **Activity Monitors Extension (FEAT_AMU)** 5163d2e960SManish V Badarkhe 5263d2e960SManish V Badarkhe - enable per-core AMU auxiliary counters ([742ca23](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/742ca2307f4e9f82cb2c21518819425e5bcc0f90)) 5363d2e960SManish V Badarkhe 5463d2e960SManish V Badarkhe - **Support for the `HCRX_EL2` register (FEAT_HCX)** 5563d2e960SManish V Badarkhe 5663d2e960SManish V Badarkhe - add build option to enable FEAT_HCX ([cb4ec47](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cb4ec47b5c73e04472984acf821e6be41b98064f)) 5763d2e960SManish V Badarkhe 5863d2e960SManish V Badarkhe - **Scalable Matrix Extension (FEAT_SME)** 5963d2e960SManish V Badarkhe 6063d2e960SManish V Badarkhe - enable SME functionality ([dc78e62](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/dc78e62d80e64bf4fe5d5bf4844a7bd1696b7c92)) 6163d2e960SManish V Badarkhe 6263d2e960SManish V Badarkhe - **Scalable Vector Extension (FEAT_SVE)** 6363d2e960SManish V Badarkhe 6463d2e960SManish V Badarkhe - enable SVE for the secure world ([0c5e7d1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0c5e7d1ce376cabcebebc43dbf238fe4482ab2dc)) 6563d2e960SManish V Badarkhe 66*8b3e2cc7SManish V Badarkhe - **System Register Trace Extensions (FEAT_ETMv4, FEAT_ETE and FEAT_ETEv1.1)** 67*8b3e2cc7SManish V Badarkhe 68*8b3e2cc7SManish V Badarkhe - enable trace system registers access from lower NS ELs ([d4582d3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d4582d30885673987240cf01fd4f5d2e6780e84c)) 69*8b3e2cc7SManish V Badarkhe - initialize trap settings of trace system registers access ([2031d61](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2031d6166a58623ae59034bc2353fcd2fabe9c30)) 70*8b3e2cc7SManish V Badarkhe 7163d2e960SManish V Badarkhe - **Trace Buffer Extension (FEAT_TRBE)** 7263d2e960SManish V Badarkhe 7363d2e960SManish V Badarkhe - enable access to trace buffer control registers from lower NS EL ([813524e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/813524ea9d2e4138246b8f77a772299e52fb33bc)) 7463d2e960SManish V Badarkhe - initialize trap settings of trace buffer control registers access ([40ff907](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/40ff90747098ed9d2a09894d1a886c10ca76cee6)) 7563d2e960SManish V Badarkhe 76*8b3e2cc7SManish V Badarkhe - **Self-hosted Trace Extension (FEAT_TRF)** 7763d2e960SManish V Badarkhe 7863d2e960SManish V Badarkhe - enable trace filter control register access from lower NS EL ([8fcd3d9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8fcd3d9600bb2cb6809c6fc68f945ce3ad89633d)) 7963d2e960SManish V Badarkhe - initialize trap settings of trace filter control registers access ([5de20ec](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5de20ece38f782c8459f546a08c6a97b9e0f5bc5)) 8063d2e960SManish V Badarkhe 8163d2e960SManish V Badarkhe - **RME** 8263d2e960SManish V Badarkhe 8363d2e960SManish V Badarkhe - add context management changes for FEAT_RME ([c5ea4f8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c5ea4f8a6679131010636eb524d2a15b709d0196)) 8463d2e960SManish V Badarkhe - add ENABLE_RME build option and support for RMM image ([5b18de0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5b18de09e80f87963df9a2e451c47e2321b8643a)) 8563d2e960SManish V Badarkhe - add GPT Library ([1839012](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1839012d5b5d431f7ec307230eae9890a5fe7477)) 8663d2e960SManish V Badarkhe - add Realm security state definition ([4693ff7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4693ff7225faadc5ad1bcd1c2fb3fbbb8fe1aed0)) 8763d2e960SManish V Badarkhe - add register definitions and helper functions for FEAT_RME ([81c272b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/81c272b3b71af38bc5cfb10bbe5722e328a1578e)) 8863d2e960SManish V Badarkhe - add RMM dispatcher (RMMD) ([77c2775](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/77c2775323a5ff8b77230f05c0cc57f830e9f153)) 8963d2e960SManish V Badarkhe - add Test Realm Payload (TRP) ([50a3056](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/50a3056a3cd33d395e8712e1d1e67a8840bf3db1)) 9063d2e960SManish V Badarkhe - add xlat table library changes for FEAT_RME ([3621823](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/362182386bafbda9e6671be921fa30cc20610d30)) 9163d2e960SManish V Badarkhe - disable Watchdog for Arm platforms if FEAT_RME enabled ([07e96d1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/07e96d1d2958b6f121476fd391ac67bf8c2c4735)) 9263d2e960SManish V Badarkhe - run BL2 in root world when FEAT_RME is enabled ([6c09af9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6c09af9f8b36cdfa1dc4d5052f7e4792f63fa88a)) 9363d2e960SManish V Badarkhe 9463d2e960SManish V Badarkhe- **Platforms** 9563d2e960SManish V Badarkhe 9663d2e960SManish V Badarkhe - **Allwinner** 9763d2e960SManish V Badarkhe 9863d2e960SManish V Badarkhe - add R329 support ([13bacd3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/13bacd3bc3e6b76009adf9183e5396b6457eb12c)) 9963d2e960SManish V Badarkhe 10063d2e960SManish V Badarkhe - **Arm** 10163d2e960SManish V Badarkhe 10263d2e960SManish V Badarkhe - add FWU support in Arm platforms ([2f1177b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2f1177b2b9ebec3b2fe92607cd771bda1dc9cbfc)) 10363d2e960SManish V Badarkhe - add GPT initialization code for Arm platforms ([deb4b3a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/deb4b3a63e3a52f2e9823865a1932f6289ccb7ac)) 10463d2e960SManish V Badarkhe - add GPT parser support ([ef1daa4](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ef1daa420f7b2920b2ee35379de2aefed6ab2605)) 10563d2e960SManish V Badarkhe - enable PIE when RESET_TO_SP_MIN=1 ([7285fd5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7285fd5f9aa6d9cc0e0f1dc9c71785b46a88d999)) 10663d2e960SManish V Badarkhe 10763d2e960SManish V Badarkhe - **FPGA** 10863d2e960SManish V Badarkhe 10963d2e960SManish V Badarkhe - add ITS autodetection ([d7e39c4](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d7e39c43f2f58aabb085ed7b8f461f9ece6002d0)) 11063d2e960SManish V Badarkhe - add kernel trampoline ([de9fdb9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/de9fdb9b5925ae08137d4212a85e9a1d319509c9)) 11163d2e960SManish V Badarkhe - determine GICR base by probing ([93b785f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/93b785f5ae66a6418581c304c83a346e8baa5aa3)) 11263d2e960SManish V Badarkhe - query PL011 to learn system frequency ([d850169](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d850169c9c233c4bc413d8319196557b54683688)) 11363d2e960SManish V Badarkhe - support GICv4 images ([c69f815](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c69f815b09ab85d3ace8fd2979ffafb1184ec76c)) 11463d2e960SManish V Badarkhe - write UART baud base clock frequency into DTB ([422b44f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/422b44fb56db7ca8b1a2f9f706733d7d4c2fdeb1)) 11563d2e960SManish V Badarkhe 11663d2e960SManish V Badarkhe - **FVP** 11763d2e960SManish V Badarkhe 11863d2e960SManish V Badarkhe - enable external SP images in BL2 config ([33993a3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/33993a3737737a03ee5a9d386d0a027bdc947c9c)) 11963d2e960SManish V Badarkhe - add memory map for FVP platform for FEAT_RME ([c872072](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c8720729726faffc39ec64f3a02440a48c8c305a)) 12063d2e960SManish V Badarkhe - add RMM image support for FVP platform ([9d870b7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9d870b79c16ef09b0c4a9db18e071c2fa235d1ad)) 12163d2e960SManish V Badarkhe - enable trace extension features by default ([cd3f0ae](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cd3f0ae6f855b2998bc09e5c3a458528c92acb90)) 12263d2e960SManish V Badarkhe - pass Event Log addr and size from BL1 to BL2 ([0500f44](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0500f4479eb1d0d5ab9e83dac42b633a5ff677dd)) 12363d2e960SManish V Badarkhe 12463d2e960SManish V Badarkhe - **FVP-R** 12563d2e960SManish V Badarkhe 12663d2e960SManish V Badarkhe - support for TB-R has been added 12763d2e960SManish V Badarkhe - configure system registers to boot rich OS ([28bbbf3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/28bbbf3bf583e0c85004727e694455dfcabd50a4)) 12863d2e960SManish V Badarkhe 12963d2e960SManish V Badarkhe - **RD** 13063d2e960SManish V Badarkhe 13163d2e960SManish V Badarkhe - **RD-N2** 13263d2e960SManish V Badarkhe 13363d2e960SManish V Badarkhe - add support for variant 1 of rd-n2 platform ([fe5d5bb](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fe5d5bbfe6bd0f386f92bdc419a7e04d885d5b43)) 13463d2e960SManish V Badarkhe - add tzc master source ids for soc dma ([3139270](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3139270693ab0fc6d66fed4fe11e183829b47e2e)) 13563d2e960SManish V Badarkhe 13663d2e960SManish V Badarkhe - **SGI** 13763d2e960SManish V Badarkhe 13863d2e960SManish V Badarkhe - add CPU specific handler for Neoverse N2 ([d932a58](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d932a5831e26620d61d171d0fd8bc2f14938e6f1)) 13963d2e960SManish V Badarkhe - add CPU specific handler for Neoverse V1 ([cbee43e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cbee43ebd69377bce1c4fa8d40c6fd67f2be2ee4)) 14063d2e960SManish V Badarkhe - increase max BL2 size ([7186a29](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7186a29bbfe3044d5e8001ddfe1d9238578e0944)) 14163d2e960SManish V Badarkhe - enable AMU for RD-V1-MC ([e8b119e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e8b119e03ad9de5fc440e5929287c94c22fc3946)) 14263d2e960SManish V Badarkhe - enable use of PSCI extended state ID format ([7bd64c7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7bd64c70e91f73a236b84fb51d5045e308479b5a)) 14363d2e960SManish V Badarkhe - introduce platform variant build option ([cfe1506](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cfe1506ee8303d9e0714b3a5b2cd165f76ad5d11)) 14463d2e960SManish V Badarkhe 14563d2e960SManish V Badarkhe - **TC** 14663d2e960SManish V Badarkhe 14763d2e960SManish V Badarkhe - enable MPMM ([c19a82b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c19a82bef08df58350f1b6668e0604ff8a5bd46d)) 14863d2e960SManish V Badarkhe - Enable SVE for both secure and non-secure world ([10198ea](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/10198eab3aa7b0eeba10d9667197816b052ba3e4)) 14963d2e960SManish V Badarkhe - populate HW_CONFIG in BL31 ([34a87d7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/34a87d74d9fbbe8037431ea5101110a9f1cf30e1)) 15063d2e960SManish V Badarkhe - introduce TC1 platform ([6ec0c65](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6ec0c65b09745fd0f4cee44ee3aa99870303f448)) 15163d2e960SManish V Badarkhe - add DRAM2 to TZC non-secure region ([76b4a6b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/76b4a6bb208c22b1c5971964a209ff7d54982348)) 15263d2e960SManish V Badarkhe 15363d2e960SManish V Badarkhe - add bootargs node ([4a840f2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4a840f27cd7a05d8e3687aa325adcd019c0d22ee)) 15463d2e960SManish V Badarkhe - add cpu capacity to provide scheduling information ([309f593](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/309f5938e610c73cb51b3ba175fed971f49d0888)) 15563d2e960SManish V Badarkhe - add Ivy partition ([a19bd32](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a19bd32ed14c33571f3715198d47bac9d0f2808e)) 15663d2e960SManish V Badarkhe - add support for trusted services ([ca93248](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ca9324819ee308f9b3a4bb004f02a512c8f301f6)) 15763d2e960SManish V Badarkhe - update Matterhorn ELP DVFS clock index ([a2f6294](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a2f6294c98935895d4592ef7e30058ca6e995f4b)) 15863d2e960SManish V Badarkhe - update mhuv2 dts node to align with upstream driver ([63067ce](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/63067ce87e4afa193b2c7f6a4917d1e54b61b000)) 15963d2e960SManish V Badarkhe 16063d2e960SManish V Badarkhe - **Diphda** 16163d2e960SManish V Badarkhe 16263d2e960SManish V Badarkhe - adding the diphda platform ([bf3ce99](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bf3ce9937182e5d8d91e058baabb8213acedacdb)) 16363d2e960SManish V Badarkhe - disabling non volatile counters in diphda ([7f70cd2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7f70cd29235cc5e96ff6b5f509c7e4260bec5610)) 16463d2e960SManish V Badarkhe - enabling stack protector for diphda ([c7e4f1c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c7e4f1cfb84136a7521f26e403a6635ffdce4a2b)) 16563d2e960SManish V Badarkhe 16663d2e960SManish V Badarkhe - **Marvell** 16763d2e960SManish V Badarkhe 16863d2e960SManish V Badarkhe - introduce t9130_cex7_eval ([d01139f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d01139f3b59a1bc6542e74f52ff3fb26eea23c69)) 16963d2e960SManish V Badarkhe 17063d2e960SManish V Badarkhe - **Armada** 17163d2e960SManish V Badarkhe 17263d2e960SManish V Badarkhe - **A8K** 17363d2e960SManish V Badarkhe 17463d2e960SManish V Badarkhe - allow overriding default paths ([0b702af](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0b702afc3aabc349a513a5b00397b58a62fea634)) 17563d2e960SManish V Badarkhe 17663d2e960SManish V Badarkhe - **MediaTek** 17763d2e960SManish V Badarkhe 17863d2e960SManish V Badarkhe - enable software reset for CIRQ ([b3b162f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b3b162f3b48e087f6656513862a6f9e1fa0757b1)) 17963d2e960SManish V Badarkhe 18063d2e960SManish V Badarkhe - **MT8192** 18163d2e960SManish V Badarkhe 18263d2e960SManish V Badarkhe - add DFD control in SiP service ([5183e63](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5183e637a0496ad8dfbd8c892bc874ac6a1531bf)) 18363d2e960SManish V Badarkhe 18463d2e960SManish V Badarkhe - **MT8195** 18563d2e960SManish V Badarkhe 18663d2e960SManish V Badarkhe - add DFD control in SiP service ([3b994a7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3b994a75306cc487144dd8e2e15433799e62e6f2)) 18763d2e960SManish V Badarkhe - add display port control in SiP service ([7eb4223](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7eb42237575eb3f241c9b22efc5fe91368470aa6)) 18863d2e960SManish V Badarkhe - remove adsp event from wakeup source ([c260b32](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c260b3246b6be27c7463d36ce7f76368c94a8540)) 18963d2e960SManish V Badarkhe - add DCM driver ([49d3bd8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/49d3bd8c4c80ecd19ecfd74812ff1eaa01478cdd)) 19063d2e960SManish V Badarkhe - add EMI MPU basic drivers ([75edd34](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/75edd34ade8efaa8a76c5fd59103454023632989)) 19163d2e960SManish V Badarkhe - add SPM suspend driver ([859e346](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/859e346b89461f31df17b76ef25ce9e8d2a7279d)) 19263d2e960SManish V Badarkhe - add support for PTP3 ([0481896](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/048189637ead887787bd5bc47b1dfab98f321705)) 19363d2e960SManish V Badarkhe - add vcore-dvfs support ([d562130](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d562130ea9637b885135a5efe41cb98f2365754f)) 19463d2e960SManish V Badarkhe - support MCUSYS off when system suspend ([d336e09](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d336e093dd9ec917ce69484eae8914d98efa328d)) 19563d2e960SManish V Badarkhe 19663d2e960SManish V Badarkhe - **NXP** 19763d2e960SManish V Badarkhe 19863d2e960SManish V Badarkhe - add build macro for BOOT_MODE validation checking ([cd1280e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cd1280ea2e5c8be6f28485a2d5054d06e54e74c1)) 19963d2e960SManish V Badarkhe - add CCI and EPU address definition ([6cad59c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6cad59c429b4382ad62aee3a67fa1b3fd4ad38b7)) 20063d2e960SManish V Badarkhe - add EESR register definition ([8bfb168](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8bfb16813aff9b3dcbeaa2f77027d44b97f04b6d)) 20163d2e960SManish V Badarkhe - add SecMon register definition for ch_3_2 ([66f7884](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/66f7884b5229b1d2977d73d105af1c34cb55f95d)) 20263d2e960SManish V Badarkhe - define common macro for ARM registers ([35efe7a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/35efe7a4cea4b3c55b661aac49ef1a85ca8feaa9)) 20363d2e960SManish V Badarkhe - define default PSCI features if not defined ([a204785](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a2047853224083328ef67cacbc17a2001ba14701)) 20463d2e960SManish V Badarkhe - define default SD buffer ([4225ce8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4225ce8b87635287ecf5cd3baaf31ea703a2640b)) 20563d2e960SManish V Badarkhe 20663d2e960SManish V Badarkhe - **i.MX** 20763d2e960SManish V Badarkhe 20863d2e960SManish V Badarkhe - **i.MX 8M** 20963d2e960SManish V Badarkhe 21063d2e960SManish V Badarkhe - add sdei support for i.MX8MN ([ce2be32](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ce2be321e8a5865871810b36c580181ea95a1a64)) 21163d2e960SManish V Badarkhe - add sdei support for i.MX8MP ([6b63125](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6b63125c415491417e1c389e4015be5ebdee2841)) 21263d2e960SManish V Badarkhe - add SiP call for secondary boot ([9ce232f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9ce232fe985a0bb308af459ede8a22629255d4e7)) 21363d2e960SManish V Badarkhe - add system_reset2 implementation ([60a0dde](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/60a0dde91bd03f4011c1d52d4d3aea8166e939a0)) 21463d2e960SManish V Badarkhe 21563d2e960SManish V Badarkhe - **i.MX 8M Mini** 21663d2e960SManish V Badarkhe 21763d2e960SManish V Badarkhe - enlarge BL33 (U-boot) size in FIP ([d53c9db](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d53c9dbf9ff9c435552b62f47fb95bfe86d025e3)) 21863d2e960SManish V Badarkhe 21963d2e960SManish V Badarkhe - **i.MX 8M Plus** 22063d2e960SManish V Badarkhe 22163d2e960SManish V Badarkhe - add imx8mp_private.h to the build ([91566d6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/91566d663b26434813fa674412bb695be1965557)) 22263d2e960SManish V Badarkhe - add in BL2 with FIP ([75fbf55](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/75fbf5546b7beca93e4782bc35906f9536392e04)) 22363d2e960SManish V Badarkhe - add initial definition to facilitate FIP layout ([f696843](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f696843eab5cf0547b6c6307eaccea25678654c4)) 22463d2e960SManish V Badarkhe - enable Trusted Boot ([a16ecd2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a16ecd2cff36b3a8a76d223f4e272e165c941b31)) 22563d2e960SManish V Badarkhe 22663d2e960SManish V Badarkhe - **Layerscape** 22763d2e960SManish V Badarkhe 22863d2e960SManish V Badarkhe - add ls1028a soc and board support ([52a1e9f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/52a1e9ff37251987b71b743951038cd8d1fa0ba4)) 22963d2e960SManish V Badarkhe 23063d2e960SManish V Badarkhe - **LX2** 23163d2e960SManish V Badarkhe 23263d2e960SManish V Badarkhe - add SUPPORTED_BOOT_MODE definition ([28b3221](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/28b3221aebdd48577e2288a75cd2f7547da514e9)) 23363d2e960SManish V Badarkhe 23463d2e960SManish V Badarkhe - **LS1028A** 23563d2e960SManish V Badarkhe 23663d2e960SManish V Badarkhe - add ls1028a soc support ([9d250f0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9d250f03d7a38cac86655495879b2151b877db0d)) 23763d2e960SManish V Badarkhe 23863d2e960SManish V Badarkhe - **LS1028ARDB** 23963d2e960SManish V Badarkhe 24063d2e960SManish V Badarkhe - add ls1028ardb board support ([34e2112](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/34e2112d1a3a8e4ea33a24bdc6505518266333a9)) 24163d2e960SManish V Badarkhe 24263d2e960SManish V Badarkhe - **QTI** 24363d2e960SManish V Badarkhe 24463d2e960SManish V Badarkhe - **SC7280** 24563d2e960SManish V Badarkhe 24663d2e960SManish V Badarkhe - add support for pmk7325 ([b8a0511](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b8a05116ed2a87a9689c4f9be6218a4bce88034a)) 24763d2e960SManish V Badarkhe - support for qti sc7280 plat ([46ee50e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/46ee50e0b34e19d383a28bc3b3dadbfb4c07b270)) 24863d2e960SManish V Badarkhe 24963d2e960SManish V Badarkhe - **Renesas** 25063d2e960SManish V Badarkhe 25163d2e960SManish V Badarkhe - **R-Car** 25263d2e960SManish V Badarkhe 25363d2e960SManish V Badarkhe - change process for Suspend To RAM ([731aa26](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/731aa26f38d76645b6d50077c28dffb9b02dd08a)) 25463d2e960SManish V Badarkhe 25563d2e960SManish V Badarkhe - **R-Car 3** 25663d2e960SManish V Badarkhe 25763d2e960SManish V Badarkhe - add a DRAM size setting for M3N ([f95d551](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f95d551217a287bd909aa3c82f4ade4986ad7244)) 25863d2e960SManish V Badarkhe - add new board revision for Salvator-XS/H3ULCB ([4379a3e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4379a3e9744cf3b0844446335aca40357a889b9a)) 25963d2e960SManish V Badarkhe - add optional support for gzip-compressed BL33 ([ddf2ca0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ddf2ca03979ea9fad305b1bc59beb6e27f0e1c02)) 26063d2e960SManish V Badarkhe - add process of SSCG setting for R-Car D3 ([14f0a08](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/14f0a0817297905c03ddf2c4c6040482ef71d744)) 26163d2e960SManish V Badarkhe - add process to back up X6 and X7 register's value ([7d58aed](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7d58aed3b05fa8c677a7c823c1ca5017a462a3d3)) 26263d2e960SManish V Badarkhe - add SYSCEXTMASK bit set/clear in scu_power_up ([63a7a34](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/63a7a34706eedba4d13ce6fc661a634801cf8909)) 26363d2e960SManish V Badarkhe - apply ERRATA_A53_1530924 and ERRATA_A57_1319537 ([2892fed](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2892fedaf27d8bbc68780a4a2c506c768e81b9f1)) 26463d2e960SManish V Badarkhe - change the memory map for OP-TEE ([a4d821a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a4d821a5a625d941f95ec39fb51ac4fc07c46c5c)) 26563d2e960SManish V Badarkhe - emit RPC status to DT fragment if RPC unlocked ([12c75c8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/12c75c8886a0ee69d7e279a48cbeb8d1602826b3)) 26663d2e960SManish V Badarkhe - keep RWDT enabled ([8991086](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/899108601a0c3b08ead5e686d92ea0794700ff35)) 26763d2e960SManish V Badarkhe - modify LifeC register setting for R-Car D3 ([5460f82](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5460f82806752e419fdd6862e8ca9c5fefbee3f2)) 26863d2e960SManish V Badarkhe - modify operation register from SYSCISR to SYSCISCR ([d10f876](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d10f87674ecee54cffe1ab554cc05733fd16c7f0)) 26963d2e960SManish V Badarkhe - modify SWDT counter setting for R-Car D3 ([053c134](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/053c134683cf74fbf4efad311815b806821f1436)) 27063d2e960SManish V Badarkhe - remove access to RMSTPCRn registers in R-Car D3 ([71f2239](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/71f2239f53cd3137ad6abdaf0334dc53f2f21cb1)) 27163d2e960SManish V Badarkhe - update DDR setting for R-Car D3 ([042d710](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/042d710d1d917357c5142b340c79978264d3afb1)) 27263d2e960SManish V Badarkhe - update IPL and Secure Monitor Rev.3.0.0 ([c5f5bb1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c5f5bb17abfcf6c0eeb3e6c3d70499de0bd6abc0)) 27363d2e960SManish V Badarkhe - use PRR cut to determine DRAM size on M3 ([42ffd27](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/42ffd279dd1a686b19e2f1b69d2e35413d5efeba)) 27463d2e960SManish V Badarkhe 27563d2e960SManish V Badarkhe - **ST** 27663d2e960SManish V Badarkhe 27763d2e960SManish V Badarkhe - add a new DDR firewall management ([4584e01](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4584e01dc643665038004f6c8a4f8bd64e14dacb)) 27863d2e960SManish V Badarkhe - add a USB DFU stack ([efbd65f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/efbd65fa7b5cf70f20d6b18152741ccdf8a65bb6)) 27963d2e960SManish V Badarkhe - add helper to save boot interface ([7e87ba2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7e87ba2598a07facdeb73237dcb350a261ac17b6)) 28063d2e960SManish V Badarkhe - add STM32CubeProgrammer support on USB ([afad521](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/afad5214a79259f56bc2003b00859abfe8a18d4d)) 28163d2e960SManish V Badarkhe - add STM32MP_EMMC_BOOT option ([214c8a8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/214c8a8d08b2b3c24f12cbc69f497f44851ca524)) 28263d2e960SManish V Badarkhe - create new helper for DT access ([ea97bbf](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ea97bbf6a001b270fd0a25b4b0d0c382e277f3f8)) 28363d2e960SManish V Badarkhe - implement platform functions for SMCCC_ARCH_SOC_ID ([3d20178](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3d201787e8246022b1f193283c12e7cb4bfc83ff)) 28463d2e960SManish V Badarkhe - improve FIP image loading from MMC ([18b415b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/18b415be9d631b3e0c3a3caacc5f02edb9413f6b)) 28563d2e960SManish V Badarkhe - manage io_policies with FCONF ([d5a84ee](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d5a84eeaac2c8ce14d3f2662dc9523b4abf41516)) 28663d2e960SManish V Badarkhe - use FCONF to configure platform ([29332bc](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/29332bcd680ce7e5f864813d9a900360f5e35d41)) 28763d2e960SManish V Badarkhe - use FIP to load images ([1d204ee](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1d204ee4ab12893fceb12097bd4f0a074be253b2)) 28863d2e960SManish V Badarkhe 28963d2e960SManish V Badarkhe - **ST32MP1** 29063d2e960SManish V Badarkhe 29163d2e960SManish V Badarkhe - add STM32MP_USB_PROGRAMMER target ([fa92fef](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fa92fef0a024cdb537fe56c84a0156cc48c1ac2d)) 29263d2e960SManish V Badarkhe - add USB DFU support for STM32MP1 ([942f6be](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/942f6be211d4816ad2568d30d807b8fd53d7f981)) 29363d2e960SManish V Badarkhe 29463d2e960SManish V Badarkhe - **Xilinx** 29563d2e960SManish V Badarkhe 29663d2e960SManish V Badarkhe - **Versal** 29763d2e960SManish V Badarkhe 29863d2e960SManish V Badarkhe - add support for SLS mitigation ([302b4df](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/302b4dfb8fb0041959b8593a098ccae6c61e3238)) 29963d2e960SManish V Badarkhe 30063d2e960SManish V Badarkhe - **ZynqMP** 30163d2e960SManish V Badarkhe 30263d2e960SManish V Badarkhe - add support for runtime feature config ([578f468](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/578f468ac058bbb60b08f78e2aa2c20cdc601620)) 30363d2e960SManish V Badarkhe - sync IOCTL IDs ([38c0b25](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/38c0b2521a0ea0951f4e1ee678ccdbce5fc07a98)) 30463d2e960SManish V Badarkhe - add SDEI support ([4143268](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4143268a5ca8f91f1014e0d83edf766946ffff76)) 30563d2e960SManish V Badarkhe - add support for XCK26 silicon ([7a30e08](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7a30e08b70e7fbb745554d500182bb6e258c5ab8)) 30663d2e960SManish V Badarkhe - extend DT description by TF-A ([0a8143d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0a8143dd636d4234dd2e79d32cb49dc80675c68f)) 30763d2e960SManish V Badarkhe 30863d2e960SManish V Badarkhe- **Bootloader Images** 30963d2e960SManish V Badarkhe 31063d2e960SManish V Badarkhe - import BL_NOBITS_{BASE,END} when defined ([9aedca0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9aedca021d917c7435aa2a0405972aa9d44493a2)) 31163d2e960SManish V Badarkhe 31263d2e960SManish V Badarkhe- **Services** 31363d2e960SManish V Badarkhe 31463d2e960SManish V Badarkhe - **FF-A** 31563d2e960SManish V Badarkhe 31663d2e960SManish V Badarkhe - adding notifications SMC IDs ([fc3f480](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fc3f480023e3a52460add25f18dd550dde44d9ff)) 31763d2e960SManish V Badarkhe - change manifest messaging method ([bb320db](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bb320dbc4751f7ea0c37ffba07d14628e58081d0)) 31863d2e960SManish V Badarkhe - feature retrieval through FFA_FEATURES call ([96b71eb](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/96b71eb9597efbf4857216cac1caeefc9e8bbf3e)) 31963d2e960SManish V Badarkhe - update FF-A version to v1.1 ([e1c732d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e1c732d46fa91231b39209621ead1e5a5fb2c497)) 32063d2e960SManish V Badarkhe - add Ivy partition to tb fw config ([1bc02c2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1bc02c2e0f63b6a7863e10cf6189292d42e693db)) 32163d2e960SManish V Badarkhe - add support for FFA_SPM_ID_GET ([70c121a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/70c121a258e43dc2462ed528b44d92594ffb27b3)) 32263d2e960SManish V Badarkhe - route secure interrupts to SPMC ([8cb99c3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8cb99c3fc3539bb9926e73a1c33fd72f424fc453)) 32363d2e960SManish V Badarkhe 32463d2e960SManish V Badarkhe- **Libraries** 32563d2e960SManish V Badarkhe 32663d2e960SManish V Badarkhe - **CPU Support** 32763d2e960SManish V Badarkhe 32863d2e960SManish V Badarkhe - add support for Hayes CPU ([7bd8dfb](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7bd8dfb85a8bf5c22d6a39f4538b89cc748090d1)) 32963d2e960SManish V Badarkhe - add support for Hunter CPU ([fb9e5f7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fb9e5f7bb76e9764b3ecd7973668c851015fa1b4)) 330*8b3e2cc7SManish V Badarkhe - add support for Demeter CPU ([f4616ef](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f4616efafbc1004f1330f515b898e7617e338875)) 33163d2e960SManish V Badarkhe - workaround for Cortex A78 AE erratum 1941500 ([47d6f5f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/47d6f5ff16d1f2ad009d630a381054b10fa0a06f)) 33263d2e960SManish V Badarkhe - workaround for Cortex A78 AE erratum 1951502 ([8913047](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8913047a52e646877812617a2d98cff99494487b)) 33363d2e960SManish V Badarkhe 33463d2e960SManish V Badarkhe - **MPMM** 33563d2e960SManish V Badarkhe 33663d2e960SManish V Badarkhe - add support for MPMM ([6812078](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/68120783d6d6f99c605e9f746ee0e91e2908feb1)) 33763d2e960SManish V Badarkhe 33863d2e960SManish V Badarkhe - **OP-TEE** 33963d2e960SManish V Badarkhe 34063d2e960SManish V Badarkhe - introduce optee_header_is_valid() ([b84a850](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b84a850864c05fef587fcbb301f955428966de64)) 34163d2e960SManish V Badarkhe 34263d2e960SManish V Badarkhe - **PSCI** 34363d2e960SManish V Badarkhe 34463d2e960SManish V Badarkhe - require validate_power_state to expose CPU_SUSPEND ([a1d5ac6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a1d5ac6a5aa5d9d18a481de20d272f64a71391f7)) 34563d2e960SManish V Badarkhe 34663d2e960SManish V Badarkhe - **SMCCC** 34763d2e960SManish V Badarkhe 34863d2e960SManish V Badarkhe - add bit definition for SMCCC_ARCH_SOC_ID ([96b0596](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/96b0596ea25e1f03b862a5bfaa92add6c3e51a33)) 34963d2e960SManish V Badarkhe 35063d2e960SManish V Badarkhe- **Drivers** 35163d2e960SManish V Badarkhe 35263d2e960SManish V Badarkhe - **FWU** 35363d2e960SManish V Badarkhe 35463d2e960SManish V Badarkhe - add FWU metadata header and build options ([5357f83](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5357f83d4ee89fb831d7e4f6149ae2f652e1b9af)) 35563d2e960SManish V Badarkhe - add FWU driver ([0ec3ac6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0ec3ac60d86b75d132e7a63fc09ea47e67f90bbd)) 35663d2e960SManish V Badarkhe - avoid booting with an alternate boot source ([4b48f7b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4b48f7b56577a78cdc9a2b47280cb62cbae0f7c3)) 35763d2e960SManish V Badarkhe - avoid NV counter upgrade in trial run state ([c0bfc88](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c0bfc88f8e8e03974834cbcacbbfbd5f202a2857)) 35863d2e960SManish V Badarkhe - initialize FWU driver in BL2 ([396b339](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/396b339dc20b97ddd75146e03467a255e28f31b9)) 35963d2e960SManish V Badarkhe - introduce FWU platform-specific functions declarations ([efb2ced](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/efb2ced256dacbab71ca11cbc87f70f413ca6729)) 36063d2e960SManish V Badarkhe 36163d2e960SManish V Badarkhe - **I/O** 36263d2e960SManish V Badarkhe 36363d2e960SManish V Badarkhe - **MTD** 36463d2e960SManish V Badarkhe 36563d2e960SManish V Badarkhe - offset management for FIP usage ([9a9ea82](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9a9ea82948fd2f1459b6351cb0641f3f77b4e6de)) 36663d2e960SManish V Badarkhe 36763d2e960SManish V Badarkhe - **Measured Boot** 36863d2e960SManish V Badarkhe 36963d2e960SManish V Badarkhe - add documentation to build and run PoC ([a125c55](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a125c556230501ee0f5ec9f8b0b721625d484a41)) 37063d2e960SManish V Badarkhe - move init and teardown functions to platform layer ([47bf3ac](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/47bf3ac31ec84d4b221fdef760c04b5f4416cba4)) 37163d2e960SManish V Badarkhe - image hash measurement and recording in BL1 ([48ba034](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/48ba0345f7b42880ec4442d7e90e3e1af95feadd)) 37263d2e960SManish V Badarkhe - update tb_fw_config with event log properties ([e742bcd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e742bcdae0d28dc14a2aa0b4ca30f50420bb5ebe)) 37363d2e960SManish V Badarkhe 37463d2e960SManish V Badarkhe - **MMC** 37563d2e960SManish V Badarkhe 37663d2e960SManish V Badarkhe - boot partition read support ([5014b52](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5014b52dec0c2527ca85c0fbe9c9281a24cc7b10)) 37763d2e960SManish V Badarkhe 37863d2e960SManish V Badarkhe - **MTD** 37963d2e960SManish V Badarkhe 38063d2e960SManish V Badarkhe - **NAND** 38163d2e960SManish V Badarkhe 38263d2e960SManish V Badarkhe - count bad blocks before a given offset ([bc3eebb](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bc3eebb25d5ee340e56047d0e46b81d5af85ff17)) 38363d2e960SManish V Badarkhe 38463d2e960SManish V Badarkhe - **SCMI** 38563d2e960SManish V Badarkhe 38663d2e960SManish V Badarkhe - add power domain protocol ([7e4833c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7e4833cdde8235d228f1f1c40f52b989ad5aa98a)) 38763d2e960SManish V Badarkhe 38863d2e960SManish V Badarkhe - **Arm** 38963d2e960SManish V Badarkhe 39063d2e960SManish V Badarkhe - **Ethos-N** 39163d2e960SManish V Badarkhe 39263d2e960SManish V Badarkhe - multi-device support ([1c65989](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1c65989e70c9734defc666e824628620b2060b92)) 39363d2e960SManish V Badarkhe 39463d2e960SManish V Badarkhe - **GIC** 39563d2e960SManish V Badarkhe 39663d2e960SManish V Badarkhe - **GICv3** 39763d2e960SManish V Badarkhe 39863d2e960SManish V Badarkhe - detect GICv4 feature at runtime ([858f40e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/858f40e379684fefc8b52c7b9e60576bc3794a69)) 39963d2e960SManish V Badarkhe - introduce GIC component identification ([73a643e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/73a643eed9d88910a09ca666bc7ab7f5e532324e)) 40063d2e960SManish V Badarkhe - multichip: detect GIC-700 at runtime ([feb7081](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/feb7081863f454b9e465efc074ca669f7a4c783d)) 40163d2e960SManish V Badarkhe 40263d2e960SManish V Badarkhe - **GIC-600AE** 40363d2e960SManish V Badarkhe 40463d2e960SManish V Badarkhe - introduce support for Fault Management Unit ([2c248ad](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2c248ade2e958eed33127b4ea767fbb7499f31a7)) 40563d2e960SManish V Badarkhe 40663d2e960SManish V Badarkhe - **TZC** 40763d2e960SManish V Badarkhe 40863d2e960SManish V Badarkhe - **TZC-400** 40963d2e960SManish V Badarkhe 41063d2e960SManish V Badarkhe - update filters by region ([ce7ef9d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ce7ef9d146ce5ca6b9be5ef049377b3817d53d10)) 41163d2e960SManish V Badarkhe 41263d2e960SManish V Badarkhe - **MediaTek** 41363d2e960SManish V Badarkhe 41463d2e960SManish V Badarkhe - **APU** 41563d2e960SManish V Badarkhe 41663d2e960SManish V Badarkhe - add mt8192 APU device apc driver ([f46e1f1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f46e1f18539d6d992c82ae605c2cd2a1d0757fa4)) 41763d2e960SManish V Badarkhe - add mt8192 APU iommap regions ([2671f31](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2671f3187249d641c55929c812d6691aeeff502a)) 41863d2e960SManish V Badarkhe - add mt8192 APU SiP call support ([ca4c0c2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ca4c0c2e78eb19d442de4608d9096a755b540a37)) 41963d2e960SManish V Badarkhe - setup mt8192 APU_S_S_4 and APU_S_S_5 permission ([77b6801](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/77b6801966d203e09ca118fad42543e934d73e6f)) 42063d2e960SManish V Badarkhe 42163d2e960SManish V Badarkhe - **EMI MPU** 42263d2e960SManish V Badarkhe 42363d2e960SManish V Badarkhe - add MPU support for DSP ([6c4973b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6c4973b0a9a75aa83233b696c97d573426eebd98)) 42463d2e960SManish V Badarkhe 42563d2e960SManish V Badarkhe - **NXP** 42663d2e960SManish V Badarkhe 42763d2e960SManish V Badarkhe - **DCFG** 42863d2e960SManish V Badarkhe 42963d2e960SManish V Badarkhe - define RSTCR_RESET_REQ ([6c5d140](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6c5d140ed99cfec47b239acc242c0f3db1e3bf7c)) 43063d2e960SManish V Badarkhe 43163d2e960SManish V Badarkhe - **FLEXSPI** 43263d2e960SManish V Badarkhe 43363d2e960SManish V Badarkhe - add MT35XU02G flash info ([a4f5015](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a4f5015a0080134251e9272719f5dad1ce2aa842)) 43463d2e960SManish V Badarkhe 43563d2e960SManish V Badarkhe - **Renesas** 43663d2e960SManish V Badarkhe 43763d2e960SManish V Badarkhe - **R-Car3** 43863d2e960SManish V Badarkhe 43963d2e960SManish V Badarkhe - add extra offset if booting B-side ([993d809](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/993d809cc115ce23dd2df1df19dc8bb548cc19cd)) 44063d2e960SManish V Badarkhe - add function to judge a DDR rank ([726050b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/726050b8e2d2ee2234e103e2df55f9c7f262c851)) 44163d2e960SManish V Badarkhe 44263d2e960SManish V Badarkhe - **ST** 44363d2e960SManish V Badarkhe 44463d2e960SManish V Badarkhe - manage boot part in io_mmc ([f3d2750](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f3d2750aa2293c0279bc447a85771827ca8b74c1)) 44563d2e960SManish V Badarkhe 44663d2e960SManish V Badarkhe - **USB** 44763d2e960SManish V Badarkhe 44863d2e960SManish V Badarkhe - add device driver for STM32MP1 ([9a138eb](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9a138eb5f29f6747e181a1b3b4199ad57721a3e0)) 44963d2e960SManish V Badarkhe 45063d2e960SManish V Badarkhe - **USB** 45163d2e960SManish V Badarkhe 45263d2e960SManish V Badarkhe - add a USB device stack ([859bfd8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/859bfd8d42341c6dea2b193db79dc4828e074ad7)) 45363d2e960SManish V Badarkhe 45463d2e960SManish V Badarkhe- **Miscellaneous** 45563d2e960SManish V Badarkhe 45663d2e960SManish V Badarkhe - **Debug** 45763d2e960SManish V Badarkhe 45863d2e960SManish V Badarkhe - add new macro ERROR_NL() to print just a newline ([fd1360a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fd1360a339e84ccd49f8a2d8a42e4c131a681b3c)) 45963d2e960SManish V Badarkhe 46063d2e960SManish V Badarkhe - **CRC32** 46163d2e960SManish V Badarkhe 46263d2e960SManish V Badarkhe - **Hardware CRC32** 46363d2e960SManish V Badarkhe 46463d2e960SManish V Badarkhe - add support for HW computed CRC ([a1cedad](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a1cedadf73863ff103fecd64fa188334e1541337)) 46563d2e960SManish V Badarkhe 46663d2e960SManish V Badarkhe - **Software CRC32** 46763d2e960SManish V Badarkhe 46863d2e960SManish V Badarkhe - add software CRC32 support ([f216937](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f21693704a7bac275e12b44ae30fd210bc317175)) 46963d2e960SManish V Badarkhe 47063d2e960SManish V Badarkhe - **DT Bindings** 47163d2e960SManish V Badarkhe 47263d2e960SManish V Badarkhe - add STM32MP1 TZC400 bindings ([43de546](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/43de546b909947ab44f104aaee02b98fba70f44c)) 47363d2e960SManish V Badarkhe 47463d2e960SManish V Badarkhe - **FDT Wrappers** 47563d2e960SManish V Badarkhe 47663d2e960SManish V Badarkhe - add CPU enumeration utility function ([2d9ea36](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2d9ea360350303e37a8dd39f3599ac88aaef0ff9)) 47763d2e960SManish V Badarkhe 47863d2e960SManish V Badarkhe - **FDTs** 47963d2e960SManish V Badarkhe 48063d2e960SManish V Badarkhe - add for_each_compatible_node macro ([ff76614](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ff766148b52bfecf09728a83fc3becc7941d943c)) 48163d2e960SManish V Badarkhe - introduce wrapper function to read DT UUIDs ([d13dbb6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d13dbb6f1d5e28737a3319af035a6cb991bc6f8f)) 48263d2e960SManish V Badarkhe - add firewall regions into STM32MP1 DT ([86b43c5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/86b43c58a4105c8cef13d860dd73fa9bd560526a)) 48363d2e960SManish V Badarkhe - add IO policies for STM32MP1 ([21e002f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/21e002fb777fad9d02a94dc961f077fb444517fa)) 48463d2e960SManish V Badarkhe - add STM32MP1 fw-config DT files ([d9e0586](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d9e0586b619b331eb2db75911ca82f927e20bd1c)) 48563d2e960SManish V Badarkhe 48663d2e960SManish V Badarkhe - **STM32MP1** 48763d2e960SManish V Badarkhe 48863d2e960SManish V Badarkhe - align DT with latest kernel ([e8a953a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e8a953a9b85806f7324c8c7245435d5b9226c279)) 48963d2e960SManish V Badarkhe - delete nodes for non-used boot devices ([4357db5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4357db5b17ce6ba7357dd99276f34ab497ce60ef)) 49063d2e960SManish V Badarkhe 49163d2e960SManish V Badarkhe - **NXP** 49263d2e960SManish V Badarkhe 49363d2e960SManish V Badarkhe - **OCRAM** 49463d2e960SManish V Badarkhe 49563d2e960SManish V Badarkhe - add driver for OCRAM initialization ([10b1e13](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/10b1e13bd200849ff134dd8d2fde341a8526f563)) 49663d2e960SManish V Badarkhe 49763d2e960SManish V Badarkhe - **PSCI** 49863d2e960SManish V Badarkhe 49963d2e960SManish V Badarkhe - define CPUECTLR_TIMER_2TICKS ([3a2cc2e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3a2cc2e262890cffee1fc46835e85be6055189e8)) 50063d2e960SManish V Badarkhe 50163d2e960SManish V Badarkhe- **Dependencies** 50263d2e960SManish V Badarkhe 50363d2e960SManish V Badarkhe - **libfdt** 50463d2e960SManish V Badarkhe 50563d2e960SManish V Badarkhe - also allow changing base address ([4d585fe](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4d585fe52feb231d5e73ec50a505122d5e9bf450)) 50663d2e960SManish V Badarkhe 50763d2e960SManish V Badarkhe### Resolved Issues 50863d2e960SManish V Badarkhe 50963d2e960SManish V Badarkhe- **Architecture** 51063d2e960SManish V Badarkhe 51163d2e960SManish V Badarkhe- **Platforms** 51263d2e960SManish V Badarkhe 51363d2e960SManish V Badarkhe - print newline before fatal abort error message ([a5fea81](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a5fea8105887d0dd15edf94aebd591b1b6b5ef05)) 51463d2e960SManish V Badarkhe 51563d2e960SManish V Badarkhe - **Allwinner** 51663d2e960SManish V Badarkhe 51763d2e960SManish V Badarkhe - delay after enabling CPU power ([86a7429](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/86a7429e477786dad6fab002538aef825f4ca35a)) 51863d2e960SManish V Badarkhe 51963d2e960SManish V Badarkhe - **Arm** 52063d2e960SManish V Badarkhe 52163d2e960SManish V Badarkhe - correct UUID strings in FVP DT ([748bdd1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/748bdd19aa27c15438d829bdba42fe4062a265a1)) 52263d2e960SManish V Badarkhe - fix a VERBOSE trace ([5869ebd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5869ebd0e87f1de987e51994103440fa8c77b26f)) 52363d2e960SManish V Badarkhe - remove unused memory node ([be42c4b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/be42c4b4bf3c44f2970b7a1658c46b8d5863cad1)) 52463d2e960SManish V Badarkhe 52563d2e960SManish V Badarkhe - **FPGA** 52663d2e960SManish V Badarkhe 52763d2e960SManish V Badarkhe - allow build after MAKE_* changes ([9d38a3e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9d38a3e698331e3c8192cc3e0cc8584e6ed987d9)) 52863d2e960SManish V Badarkhe - avoid re-linking from executable ELF file ([a67ac76](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a67ac7648cd814ed8f8d4ece1b265c6d48c6dc81)) 52963d2e960SManish V Badarkhe - Change PL011 UART IRQ ([195381a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/195381a91313bc0bce2cfa087f3c55136a9e8496)) 53063d2e960SManish V Badarkhe - limit BL31 memory usage ([d457230](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d4572303ed45faceffed859955b0e71724fddfd2)) 53163d2e960SManish V Badarkhe - reserve BL31 memory ([13e16fe](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/13e16fee86451e2f871c2aac757b32299fe5ead6)) 53263d2e960SManish V Badarkhe - streamline generated axf file ([9177e4f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9177e4fd9356b0f249be8b6fe14f222e10f1e6cd)) 53363d2e960SManish V Badarkhe - enable AMU extension ([d810e30](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d810e30dd6b47e0725dccbcb42ca0a0c5215ee34)) 53463d2e960SManish V Badarkhe - increase initrd size ([c3ce73b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c3ce73be0bfe31fa28805fe92b3e727232ffd37a)) 53563d2e960SManish V Badarkhe 53663d2e960SManish V Badarkhe - **FVP** 53763d2e960SManish V Badarkhe 53863d2e960SManish V Badarkhe - fix fvp_cpu_standby() function ([3202ce8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3202ce8bbb4af8580736d2a1634ad45c3f89d931)) 53963d2e960SManish V Badarkhe - spmc optee manifest remove SMC allowlist ([183725b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/183725b39d75e362a32b3c5d0be110c255c56bdd)) 54063d2e960SManish V Badarkhe - allow changing the kernel DTB load address ([672d669](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/672d669d6c72f92c6b81464d1d421e392bc1aa3e)) 54163d2e960SManish V Badarkhe - bump BL2 stack size ([d22f1d3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d22f1d358731f0f55f2f392fa587f0fa8d315aa5)) 54263d2e960SManish V Badarkhe - provide boot files via semihosting ([749d0fa](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/749d0fa80d1c7ca30b4092a381a06deeeaf1747f)) 54363d2e960SManish V Badarkhe - OP-TEE SP manifest per latest SPMC changes ([b7bc51a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b7bc51a7a747bf40d219b2041e5b3ce56737a71b)) 54463d2e960SManish V Badarkhe 54563d2e960SManish V Badarkhe - **FVP-R** 54663d2e960SManish V Badarkhe 54763d2e960SManish V Badarkhe - fix compilation error in release mode ([7d96e79](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7d96e79a1a2efdf85f1ed46cdd5c577b58054f53)) 54863d2e960SManish V Badarkhe 54963d2e960SManish V Badarkhe - **Morello** 55063d2e960SManish V Badarkhe 55163d2e960SManish V Badarkhe - initialise CNTFRQ in Non Secure CNTBaseN ([7f2d23d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7f2d23d9d790df90021de6c5165ef10fe5cc5590)) 55263d2e960SManish V Badarkhe 55363d2e960SManish V Badarkhe - **TC** 55463d2e960SManish V Badarkhe 55563d2e960SManish V Badarkhe - enable AMU extension ([b5863ca](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b5863cab9adb3fed0c1e4dfb92cf906794e7bdb4)) 55663d2e960SManish V Badarkhe - change UUID to string format ([1c19536](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1c1953653c20b4a8c61a7deb3fc493d496d8c478)) 55763d2e960SManish V Badarkhe - remove "arm,psci" from psci node ([814646b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/814646b4cb792ab14df04e28360fefd168399b3c)) 55863d2e960SManish V Badarkhe - remove ffa and optee device tree node ([f1b44a9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f1b44a9050fbc12e8c260107bfff2930476df062)) 55963d2e960SManish V Badarkhe - set cactus-tertiary vcpu count to 1 ([05f667f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/05f667f0c670ba9682050714561309f00210c282)) 56063d2e960SManish V Badarkhe 56163d2e960SManish V Badarkhe - **SGI** 56263d2e960SManish V Badarkhe 56363d2e960SManish V Badarkhe - avoid redefinition of 'efi_guid' structure ([f34322c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f34322c1cea1e355aeb4133df6aa601d719be5a3)) 56463d2e960SManish V Badarkhe 56563d2e960SManish V Badarkhe - **Marvell** 56663d2e960SManish V Badarkhe 56763d2e960SManish V Badarkhe - Check the required libraries before building doimage ([dd47809](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/dd47809e9ea75188060bf8b294efa8578d255c63)) 56863d2e960SManish V Badarkhe 56963d2e960SManish V Badarkhe - **Armada** 57063d2e960SManish V Badarkhe 57163d2e960SManish V Badarkhe - select correct pcie reference clock source ([371648e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/371648e1c76b5230bf8e153629064c02086365c9)) 57263d2e960SManish V Badarkhe - fix MSS loader for A8K family ([dceac43](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/dceac436f620e60cd0149194377871b225216079)) 57363d2e960SManish V Badarkhe 57463d2e960SManish V Badarkhe - **A3K** 57563d2e960SManish V Badarkhe 57663d2e960SManish V Badarkhe - disable HANDLE_EA_EL3_FIRST by default ([3017e93](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3017e932768c7357a1a41493c58323419e9a1ec9)) 57763d2e960SManish V Badarkhe - enable workaround for erratum 1530924 ([975563d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/975563dbfc012b6e8a7765dd8e48220e1bc53dec)) 57863d2e960SManish V Badarkhe - Fix building uart-images.tgz.bin archive ([d3f8db0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d3f8db07b618e79c05805a1598e5e834e42fea98)) 57963d2e960SManish V Badarkhe - Fix check for external dependences ([2baf503](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2baf50385ba2b460afef4a7919b13b3a350fd03a)) 58063d2e960SManish V Badarkhe - fix printing info messages on output ([9f6d154](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9f6d15408340af07ed3c2500202b147189eaa7ef)) 58163d2e960SManish V Badarkhe - update information about PCIe abort hack ([068fe91](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/068fe919613197bf221c00fb84a1d94c66a7a8ca)) 58263d2e960SManish V Badarkhe - Remove encryption password ([076374c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/076374c9b97d47b10ba5c6034817866c08d66ed4)) 58363d2e960SManish V Badarkhe 58463d2e960SManish V Badarkhe - **A8K** 58563d2e960SManish V Badarkhe 58663d2e960SManish V Badarkhe - Add missing build dependency for BLE target ([04738e6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/04738e69917f8e8790bf4cf83ceb05f85e1f45bb)) 58763d2e960SManish V Badarkhe - Correctly set include directories for individual targets ([559ab2d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/559ab2df4a35cd82b2a67a0bebeb3028544a6766)) 58863d2e960SManish V Badarkhe - Require that MV_DDR_PATH is correctly set ([528dafc](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/528dafc367c4f49d4904c4335422502dacf469bf)) 58963d2e960SManish V Badarkhe - fix number of CPU power switches. ([5cf6faf](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5cf6fafe223da89c60e2323c242ea188b17e98c3)) 59063d2e960SManish V Badarkhe 59163d2e960SManish V Badarkhe - **MediaTek** 59263d2e960SManish V Badarkhe 59363d2e960SManish V Badarkhe - **MT8183** 59463d2e960SManish V Badarkhe 59563d2e960SManish V Badarkhe - fix out-of-bound access ([420c26b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/420c26b33a29c8328a1806ccb2f5a5885041fdfc)) 59663d2e960SManish V Badarkhe 59763d2e960SManish V Badarkhe - **MT8195** 59863d2e960SManish V Badarkhe 59963d2e960SManish V Badarkhe - use correct print format for uint64_t ([964ee4e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/964ee4e6be70ef638d6c875a761ab5ca359d84fe)) 60063d2e960SManish V Badarkhe - fix error setting for SPM ([1f81ccc](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1f81cccedd40cb397813b0fa826ea1d793b02089)) 60163d2e960SManish V Badarkhe - extend MMU region size ([9ff8b8c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9ff8b8ca9393e31e790eb2c8e7ea5c5f41f45198)) 60263d2e960SManish V Badarkhe - fix coverity fail ([85e4d14](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/85e4d14df157b5641421ea2b844c146ddc230152)) 60363d2e960SManish V Badarkhe 60463d2e960SManish V Badarkhe - **NXP** 60563d2e960SManish V Badarkhe 60663d2e960SManish V Badarkhe - **i.MX** 60763d2e960SManish V Badarkhe 60863d2e960SManish V Badarkhe - do not keep mmc_device_info in stack ([99d37c8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/99d37c8cb8196a7296311fb4f97f80f086021c74)) 60963d2e960SManish V Badarkhe 61063d2e960SManish V Badarkhe - **i.MX 8M** 61163d2e960SManish V Badarkhe 61263d2e960SManish V Badarkhe - **i.MX 8M Mini** 61363d2e960SManish V Badarkhe 61463d2e960SManish V Badarkhe - fix FTBFS on SPD=opteed ([10bfc77](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/10bfc77e7b3afce17185114ac66361a0914f7784)) 61563d2e960SManish V Badarkhe 61663d2e960SManish V Badarkhe - **Layerscape** 61763d2e960SManish V Badarkhe 61863d2e960SManish V Badarkhe - **LX2** 61963d2e960SManish V Badarkhe 62063d2e960SManish V Badarkhe - **LS1028A** 62163d2e960SManish V Badarkhe 62263d2e960SManish V Badarkhe - define endianness of scfg and gpio ([2475f63](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2475f63bdec6c24c13f7d6ec7f70275b1bde5c15)) 62363d2e960SManish V Badarkhe - fix compile error when enable fuse provision ([a0da9c4](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a0da9c4bd296ec1a47683a1ee05f5d1ed71828c7)) 62463d2e960SManish V Badarkhe 62563d2e960SManish V Badarkhe - **QEMU** 62663d2e960SManish V Badarkhe 62763d2e960SManish V Badarkhe - (NS_DRAM0_BASE + NS_DRAM0_SIZE) ADDR overflow 32bit ([325716c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/325716c97b7835b8d249f12c1461556bab8c53a0)) 62863d2e960SManish V Badarkhe - reboot/shutdown with low to high gpio ([bd2ad12](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bd2ad12ef10f558a5b15f5768b66e7b2606c6498)) 62963d2e960SManish V Badarkhe 63063d2e960SManish V Badarkhe - **QTI** 63163d2e960SManish V Badarkhe 63263d2e960SManish V Badarkhe - **SC1780** 63363d2e960SManish V Badarkhe 63463d2e960SManish V Badarkhe - qti smc addition ([cc35a37](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cc35a3771d28a96906f8d0f393ff664924a2d4dc)) 63563d2e960SManish V Badarkhe 63663d2e960SManish V Badarkhe - **Raspberry Pi** 63763d2e960SManish V Badarkhe 63863d2e960SManish V Badarkhe - **Raspberry Pi 4** 63963d2e960SManish V Badarkhe 64063d2e960SManish V Badarkhe - drop /memreserve/ region ([5d2793a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5d2793a61aded9602af86e90a571f64ff07f93b3)) 64163d2e960SManish V Badarkhe 64263d2e960SManish V Badarkhe - **Renesas** 64363d2e960SManish V Badarkhe 64463d2e960SManish V Badarkhe - **R-Car** 64563d2e960SManish V Badarkhe 64663d2e960SManish V Badarkhe - change process that copy code to system ram ([49593cc](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/49593cc1ce0d0471aeef7ca24a5415da2dd55bea)) 64763d2e960SManish V Badarkhe - fix cache maintenance process of reading cert header ([c77ab18](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c77ab18ec7c8e0f3d953177b835e004a9b53515f)) 64863d2e960SManish V Badarkhe - fix to load image when option BL2_DCACHE_ENABLE is enabled ([d2ece8d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d2ece8dba2f31091b1fa6c302d4255495bb15705)) 64963d2e960SManish V Badarkhe 65063d2e960SManish V Badarkhe - **R-Car 3** 65163d2e960SManish V Badarkhe 65263d2e960SManish V Badarkhe - fix disabling MFIS write protection for R-Car D3 ([a8c0c3e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a8c0c3e9d0df2215ed3b9ef66f4596787d957566)) 65363d2e960SManish V Badarkhe - fix eMMC boot support for R-Car D3 ([77ab366](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/77ab3661e55c39694c7ee81de2d1615775711b64)) 65463d2e960SManish V Badarkhe - fix source file to make about GICv2 ([fb3406b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fb3406b6b573cb0b35138ca3c89c5641d3d7b790)) 65563d2e960SManish V Badarkhe - fix version judgment for R-Car D3 ([c3d192b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c3d192b8e52823dcbc32e21e47c30693d38bb49f)) 65663d2e960SManish V Badarkhe - generate two memory nodes for larger than 2 GiB channel 0 ([21924f2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/21924f2466b9b5e1243c142932e6f498da5633e9)) 65763d2e960SManish V Badarkhe 65863d2e960SManish V Badarkhe - **Rockchip** 65963d2e960SManish V Badarkhe 66063d2e960SManish V Badarkhe - **RK3399** 66163d2e960SManish V Badarkhe 66263d2e960SManish V Badarkhe - correct LPDDR4 resume sequence ([2c4b0c0](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2c4b0c05c6546e24eb7209ffb3bb465d4feed164)) 66363d2e960SManish V Badarkhe - fix dram section placement ([f943b7c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f943b7c8e292e3aad2fcbdd0a37505f62b3b4c87)) 66463d2e960SManish V Badarkhe 66563d2e960SManish V Badarkhe - **Socionext** 66663d2e960SManish V Badarkhe 66763d2e960SManish V Badarkhe - **Synquacer** 66863d2e960SManish V Badarkhe 66963d2e960SManish V Badarkhe - update scmi power domain off handling ([f7f5d2c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f7f5d2c4cd209c2d21244da4fa442050eb4531ab)) 67063d2e960SManish V Badarkhe 67163d2e960SManish V Badarkhe - **ST** 67263d2e960SManish V Badarkhe 67363d2e960SManish V Badarkhe - add STM32IMAGE_SRC ([f223505](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f22350583c2e26ea291eae3dc54db867fdf0d9af)) 67463d2e960SManish V Badarkhe - add UART reset in crash console init ([b38e2ed](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b38e2ed29ef791dad0cb61fed81b74d612f58b01)) 67563d2e960SManish V Badarkhe - apply security at the end of BL2 ([99080bd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/99080bd1273331007f0b2d6f64fed51ac6861bcd)) 67663d2e960SManish V Badarkhe - correct BSEC error code management ([72c7884](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/72c7884092684af4cc3c49e08f913b3ffed783ba)) 67763d2e960SManish V Badarkhe - correct IO compensation disabling ([c2d18ca](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c2d18ca80f4bd32f58ba07f53d9bb2586df18fc0)) 67863d2e960SManish V Badarkhe - correct signedness comparison issue ([5657dec](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5657decc7ffa1376c0a97b6d14ea1428877f5af4)) 67963d2e960SManish V Badarkhe - improve DDR get size function ([91ffc1d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/91ffc1deffa2c1c64efe4dfaf27b78f2621a8b0b)) 68063d2e960SManish V Badarkhe - only check header major when booting ([8ce8918](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8ce89187459ec77dd9ffdffba3a2b77838d51b6d)) 68163d2e960SManish V Badarkhe - panic if boot interface is wrong ([71693a6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/71693a66341e7d9d683ef32981243cb4c4439351)) 68263d2e960SManish V Badarkhe - remove double space ([306dcd6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/306dcd6b0d1981b75e103c560a4034bdaa6862d5)) 68363d2e960SManish V Badarkhe 68463d2e960SManish V Badarkhe - **ST32MP1** 68563d2e960SManish V Badarkhe 68663d2e960SManish V Badarkhe - add bl prefix for internal linker script ([7684ddd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7684dddcfb14c45bad33b091410a0bf14a3a9830)) 68763d2e960SManish V Badarkhe 68863d2e960SManish V Badarkhe - **Xilinx** 68963d2e960SManish V Badarkhe 69063d2e960SManish V Badarkhe - **Versal** 69163d2e960SManish V Badarkhe 69263d2e960SManish V Badarkhe - correct IPI buffer offset ([e1e5b13](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e1e5b1339b9f73f7f1893d8a6d4dfe4b19ba0ad1)) 69363d2e960SManish V Badarkhe - use sync method for blocking calls ([fa58171](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fa58171534976f94b93a44184afd050d8225e404)) 69463d2e960SManish V Badarkhe 69563d2e960SManish V Badarkhe - **ZynqMP** 69663d2e960SManish V Badarkhe 69763d2e960SManish V Badarkhe - use sync method for blocking calls ([c063c5a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c063c5a4f92d5787536e595ca4906b458b0f26cb)) 69863d2e960SManish V Badarkhe 69963d2e960SManish V Badarkhe- **Services** 70063d2e960SManish V Badarkhe 70163d2e960SManish V Badarkhe - drop warning on unimplemented calls ([67fad51](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/67fad514ee974dcf0252fa0e9219eb3c580eb714)) 70263d2e960SManish V Badarkhe 70363d2e960SManish V Badarkhe - **RME** 70463d2e960SManish V Badarkhe 70563d2e960SManish V Badarkhe - fixes a shift by 64 bits bug in the RME GPT library ([322b344](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/322b344e30cb87b9293060d5946b3c17fe3b9133)) 70663d2e960SManish V Badarkhe 70763d2e960SManish V Badarkhe - **SPM** 70863d2e960SManish V Badarkhe 70963d2e960SManish V Badarkhe - do not compile if SVE/SME is enabled ([4333f95](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4333f95bedb5f2b53dcb62e0e9c563794ec33c07)) 71063d2e960SManish V Badarkhe - error macro to use correct print format ([0c23e6f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0c23e6f44d41593b6e7f97594c12b5791bd75189)) 71163d2e960SManish V Badarkhe - revert workaround hafnium as hypervisor ([3221fce](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3221fce842c0b5aea984bb8dbc1393082bd88a58)) 71263d2e960SManish V Badarkhe - fixing coverity issue for SPM Core. ([f7fb0bf](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/f7fb0bf77f3434bfb67411cad65e704fdef27f76)) 71363d2e960SManish V Badarkhe 71463d2e960SManish V Badarkhe- **Libraries** 71563d2e960SManish V Badarkhe 71663d2e960SManish V Badarkhe - **LIBC** 71763d2e960SManish V Badarkhe 71863d2e960SManish V Badarkhe - use long for 64-bit types on aarch64 ([4ce3e99](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4ce3e99a336b74611349595ea7fd5ed0277c3eeb)) 71963d2e960SManish V Badarkhe 72063d2e960SManish V Badarkhe - **CPU Support** 72163d2e960SManish V Badarkhe 72263d2e960SManish V Badarkhe - correct Demeter CPU name ([4cb576a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4cb576a0c5bd2e7669606996a9f79602596df07c)) 72363d2e960SManish V Badarkhe - workaround for Cortex A78 erratum 2242635 ([1ea9190](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1ea9190c6a4d2299c6dc19adc0bbe93d4f051eff)) 72463d2e960SManish V Badarkhe - workaround for Cortex-A710 erratum 2058056 ([744bdbf](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/744bdbf732ffd2abf84b2431624051e93bc29f7b)) 72563d2e960SManish V Badarkhe - workaround for Neoverse V1 erratum 2216392 ([4c8fe6b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4c8fe6b17fa994a630b2a30f8666df103f2e370d)) 72663d2e960SManish V Badarkhe - workaround for Neoverse-N2 erratum 2138953 ([ef8f0c5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ef8f0c52ddf83e815a029319971682d7a26b6a6f)) 72763d2e960SManish V Badarkhe - workaround for Neoverse-N2 erratum 2138958 ([c948185](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c948185c973c13df36c62c4bcb50e22b14d6e06a)) 72863d2e960SManish V Badarkhe - workaround for Neoverse-N2 erratum 2242400 ([603806d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/603806d1376c4b18211fb1d4cc338153de026c32)) 72963d2e960SManish V Badarkhe - workaround for Neoverse-N2 erratum 2242415 ([5819e23](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5819e23bc47c860872141caf42bddddb1b8679a5)) 73063d2e960SManish V Badarkhe - workaround for Neoverse-N2 erratum 2280757 ([0d2d999](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0d2d99924e1be548e75c46cfd536f7503cf863e0)) 73163d2e960SManish V Badarkhe - rename Matterhorn, Matterhorn ELP, and Klein CPUs ([c6ac4df](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c6ac4df622befb5bb42ac136745094e1498c91d8)) 73263d2e960SManish V Badarkhe 73363d2e960SManish V Badarkhe - **EL3 Runtime** 73463d2e960SManish V Badarkhe 73563d2e960SManish V Badarkhe - correct CASSERT for pauth ([b4f8d44](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b4f8d44597faf641177134ee08db7c3fcef5aa14)) 73663d2e960SManish V Badarkhe - fix SVE and AMU extension enablement flags ([68ac5ed](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/68ac5ed0493b24e6a0a178171a47db75a31cc423)) 73763d2e960SManish V Badarkhe - random typos in tf-a code base ([2e61d68](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2e61d6871cc310e9404fe5cfa10b9828f1c869a7)) 73863d2e960SManish V Badarkhe - Remove save/restore of EL2 timer registers ([a7cf274](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a7cf2743f3eb487912302aafc748c81bbd1fc603)) 73963d2e960SManish V Badarkhe 74063d2e960SManish V Badarkhe - **OP-TEE** 74163d2e960SManish V Badarkhe 74263d2e960SManish V Badarkhe - correct signedness comparison ([21d2be8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/21d2be83a2eabb328071e857e538ced3c8351874)) 74363d2e960SManish V Badarkhe 74463d2e960SManish V Badarkhe - **GPT** 74563d2e960SManish V Badarkhe 74663d2e960SManish V Badarkhe - add necessary barriers and remove cache clean ([77612b9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/77612b90acaffc82cea712f4a431c727bbb968ec)) 74763d2e960SManish V Badarkhe - use correct print format for uint64_t ([2461bd3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/2461bd3a89f7f2cdf4a7302536746733970cfe53)) 74863d2e960SManish V Badarkhe 74963d2e960SManish V Badarkhe - **Translation Tables** 75063d2e960SManish V Badarkhe 75163d2e960SManish V Badarkhe - remove always true check in assert ([74d720a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/74d720a026735263d2f290fd05370dad0d4c7219)) 75263d2e960SManish V Badarkhe 75363d2e960SManish V Badarkhe- **Drivers** 75463d2e960SManish V Badarkhe 75563d2e960SManish V Badarkhe - **Authentication** 75663d2e960SManish V Badarkhe 75763d2e960SManish V Badarkhe - avoid NV counter upgrade without certificate validation ([a2a5a94](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a2a5a9456969266dc68d5845f31e05be0c3ff2e3)) 75863d2e960SManish V Badarkhe 75963d2e960SManish V Badarkhe - **CryptoCell-713** 76063d2e960SManish V Badarkhe 76163d2e960SManish V Badarkhe - fix a build failure with CC-713 library ([e5fbee5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e5fbee5085c682ac3438e6f66c8bdaffb6076fa2)) 76263d2e960SManish V Badarkhe 76363d2e960SManish V Badarkhe - **MTD** 76463d2e960SManish V Badarkhe 76563d2e960SManish V Badarkhe - fix MISRA issues and logic improvement ([5130ad1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5130ad14d52a0196422fed8a7d08e25659890b15)) 76663d2e960SManish V Badarkhe - macronix quad enable bit issue ([c332740](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c3327408eb4b5852c0ed9d8933c35aaa6de34c21)) 76763d2e960SManish V Badarkhe 76863d2e960SManish V Badarkhe - **NAND** 76963d2e960SManish V Badarkhe 77063d2e960SManish V Badarkhe - **SPI NAND** 77163d2e960SManish V Badarkhe 77263d2e960SManish V Badarkhe - check correct manufacturer id ([4490b79](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4490b7963303fbe59b07a66c8498a803eb5c239c)) 77363d2e960SManish V Badarkhe - check that parameters have been set ([bc453ab](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bc453ab1b2fd4267d34f2b9587f73b8940ee1538)) 77463d2e960SManish V Badarkhe 77563d2e960SManish V Badarkhe - **SCMI** 77663d2e960SManish V Badarkhe 77763d2e960SManish V Badarkhe - entry: add weak functions ([b3c8fd5](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b3c8fd5d778144340d289ad4825123106aac4a96)) 77863d2e960SManish V Badarkhe - smt: fix build for aarch64 ([0e223c6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0e223c6a9e5a2d92cae00fdd16a02a3f8971b114)) 77963d2e960SManish V Badarkhe - mention "SCMI" in driver initialisation message ([e0baae7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/e0baae7316bfdf3e49e5e158f79eb80cd51fc700)) 78063d2e960SManish V Badarkhe - relax requirement for exact protocol version ([125868c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/125868c94150f52ff85cdb59aee623ab1f9f259d)) 78163d2e960SManish V Badarkhe 78263d2e960SManish V Badarkhe - **UFS** 78363d2e960SManish V Badarkhe 78463d2e960SManish V Badarkhe - add reset before DME_LINKSTARTUP ([905635d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/905635d5e74e3c7b7b2412a673009c8aaabb73e1)) 78563d2e960SManish V Badarkhe 78663d2e960SManish V Badarkhe - **Arm** 78763d2e960SManish V Badarkhe 78863d2e960SManish V Badarkhe - **GIC** 78963d2e960SManish V Badarkhe 79063d2e960SManish V Badarkhe - **GICv3** 79163d2e960SManish V Badarkhe 79263d2e960SManish V Badarkhe - add dsb in both disable and enable function of gicv3_cpuif ([5a5e0aa](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5a5e0aac398989536dc4be790820af89da3d093a)) 79363d2e960SManish V Badarkhe 79463d2e960SManish V Badarkhe - **GIC-600AE** 79563d2e960SManish V Badarkhe 79663d2e960SManish V Badarkhe - fix timeout calculation ([7f322f2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7f322f228e76caa5480f827af0aa6751f00fc1c4)) 79763d2e960SManish V Badarkhe 79863d2e960SManish V Badarkhe - **TZC** 79963d2e960SManish V Badarkhe 80063d2e960SManish V Badarkhe - **TZC-400** 80163d2e960SManish V Badarkhe 80263d2e960SManish V Badarkhe - never disable filter 0 ([ef378d3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ef378d3ec1ef9d7c28baef32ed409688e962542b)) 80363d2e960SManish V Badarkhe 80463d2e960SManish V Badarkhe - **Marvell** 80563d2e960SManish V Badarkhe 80663d2e960SManish V Badarkhe - **COMPHY** 80763d2e960SManish V Badarkhe 80863d2e960SManish V Badarkhe - fix name of 3.125G SerDes mode ([a669983](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a669983c78828e3f4a4f14b9e5a6ee79dcfde20f)) 80963d2e960SManish V Badarkhe 81063d2e960SManish V Badarkhe - **Armada 3700** 81163d2e960SManish V Badarkhe 81263d2e960SManish V Badarkhe - configure phy selector also for PCIe ([0f3a122](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0f3a1221093256999af5f2a80e9b3d7231b9f5fb)) 81363d2e960SManish V Badarkhe - fix address overflow ([c074f70](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c074f70ce5d85e1735b589b323fac99d7eb988b5)) 81463d2e960SManish V Badarkhe - handle failures in power functions ([49b664e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/49b664e75f43fda08dddef4f0510d346bdd25565)) 81563d2e960SManish V Badarkhe 81663d2e960SManish V Badarkhe - **CP110** 81763d2e960SManish V Badarkhe 81863d2e960SManish V Badarkhe - fix error code in pcie power on ([c0a909c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c0a909cdcce2d9a2ceefe672ad2fc1cae7e39ec4)) 81963d2e960SManish V Badarkhe 82063d2e960SManish V Badarkhe - **Armada** 82163d2e960SManish V Badarkhe 82263d2e960SManish V Badarkhe - **A3K** 82363d2e960SManish V Badarkhe 82463d2e960SManish V Badarkhe - **A3720** 82563d2e960SManish V Badarkhe 82663d2e960SManish V Badarkhe - fix configuring UART clock ([b9185c7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b9185c75f7ec2b600ebe0d49281e216a2456b764)) 82763d2e960SManish V Badarkhe - fix UART clock rate value and divisor calculation ([66a7752](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/66a7752834382595d26214783ae4698fd1f00bd6)) 82863d2e960SManish V Badarkhe - fix UART parent clock rate determination ([5a91c43](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5a91c439cbeb1f64b8b9830de91efad5113d3c89)) 82963d2e960SManish V Badarkhe 83063d2e960SManish V Badarkhe - **MediaTek** 83163d2e960SManish V Badarkhe 83263d2e960SManish V Badarkhe - **PMIC Wrapper** 83363d2e960SManish V Badarkhe 83463d2e960SManish V Badarkhe - update idle flow ([9ed4e6f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/9ed4e6fb669b8fcafc4e8acfa6a36db305d27ac8)) 83563d2e960SManish V Badarkhe 83663d2e960SManish V Badarkhe - **MT8192** 83763d2e960SManish V Badarkhe 83863d2e960SManish V Badarkhe - **SPM** 83963d2e960SManish V Badarkhe 84063d2e960SManish V Badarkhe - add missing bit define for debug purpose ([310c3a2](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/310c3a26e17d99aafc73b3504d0b6dfbdb97fd4c)) 84163d2e960SManish V Badarkhe 84263d2e960SManish V Badarkhe - **NXP** 84363d2e960SManish V Badarkhe 84463d2e960SManish V Badarkhe - **FLEXSPI** 84563d2e960SManish V Badarkhe 84663d2e960SManish V Badarkhe - fix warm boot wait time for MT35XU512A ([1ff7e46](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/1ff7e46b092b74891bc2dc7263e4dfae947b2223)) 84763d2e960SManish V Badarkhe 84863d2e960SManish V Badarkhe - **SCFG** 84963d2e960SManish V Badarkhe 85063d2e960SManish V Badarkhe - fix endianness checking ([fb90cfd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/fb90cfd4eee504f1d16aa143728af427dc6e0ed8)) 85163d2e960SManish V Badarkhe 85263d2e960SManish V Badarkhe - **SFP** 85363d2e960SManish V Badarkhe 85463d2e960SManish V Badarkhe - fix compile warning ([3239a17](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3239a17561c124df7095391c0d64e86910660cdc)) 85563d2e960SManish V Badarkhe 85663d2e960SManish V Badarkhe - **Renesas** 85763d2e960SManish V Badarkhe 85863d2e960SManish V Badarkhe - **R-Car3** 85963d2e960SManish V Badarkhe 86063d2e960SManish V Badarkhe - console: fix a return value of console_rcar_init ([bb273e3](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bb273e3be1c4f1cddeac9ceaac95fb56e41e6b98)) 86163d2e960SManish V Badarkhe - ddr: update DDR setting for H3, M3, M3N ([ec767c1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ec767c1b99675fbb50ef1b2fdb2d38e881e4789d)) 86263d2e960SManish V Badarkhe - emmc: remove CPG_CPGWPR redefinition ([36d5645](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/36d5645aec947ab00b925b21141e59e58e1efd8c)) 86363d2e960SManish V Badarkhe - fix CPG registers redefinition ([0dae56b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0dae56bb2f0aa1f89ec98ebe3931fb19751a5c72)) 86463d2e960SManish V Badarkhe - i2c_dvfs: fix I2C operation ([b757d3a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b757d3a1d901bee9b7ad430702575adba04889ba)) 86563d2e960SManish V Badarkhe 86663d2e960SManish V Badarkhe - **ST** 86763d2e960SManish V Badarkhe 86863d2e960SManish V Badarkhe - **Clock** 86963d2e960SManish V Badarkhe 87063d2e960SManish V Badarkhe - use correct return value ([8f97c4f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8f97c4fab1769b3f7f37a2a7a01ade36e5c94eaa)) 87163d2e960SManish V Badarkhe - correctly manage RTC clock source ([1550909](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/15509093f0ba9a10f97c6f92bc3bb9fcf79a48ce)) 87263d2e960SManish V Badarkhe - fix MCU/AXI parent clock ([b8fe48b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/b8fe48b6f2b07fce49363cb3c0f8dac9e286439b)) 87363d2e960SManish V Badarkhe - fix MPU clock rate ([602ae2f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/602ae2f23c2bc9d79a9ab2b7c5dde1932fffc984)) 87463d2e960SManish V Badarkhe - fix RTC clock rating ([cbd2e8a](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cbd2e8a6afdd05c4b404d7998134a3f60cc15518)) 87563d2e960SManish V Badarkhe - keep RTC clock always on ([5b111c7](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/5b111c74795ea5e9c8a12d0e6b18d77e431311ed)) 87663d2e960SManish V Badarkhe - keep RTCAPB clock always on ([373f06b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/373f06be4ee1114369b96763481b58885623aea4)) 87763d2e960SManish V Badarkhe - set other clocks as always on ([bf39318](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/bf39318d93c270ff72bda4b46e4771aba7aea313)) 87863d2e960SManish V Badarkhe 87963d2e960SManish V Badarkhe - **I/O** 88063d2e960SManish V Badarkhe 88163d2e960SManish V Badarkhe - **STM32 Image** 88263d2e960SManish V Badarkhe 88363d2e960SManish V Badarkhe - invalidate cache on local buf ([a5bcf82](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a5bcf82402ff415326b4dba42aae95c499821e94)) 88463d2e960SManish V Badarkhe - uninitialized variable warning ([c1d732d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c1d732d0db2463998036c678619007da79a25b3f)) 88563d2e960SManish V Badarkhe 88663d2e960SManish V Badarkhe - **ST PMIC** 88763d2e960SManish V Badarkhe 88863d2e960SManish V Badarkhe - initialize i2c_state ([4282284](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/42822844bfed2e9ffaeae850cc60f5c3d4d9d654)) 88963d2e960SManish V Badarkhe - missing error check ([a4bcfe9](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a4bcfe94e73db89ce2ebbb23c8e33e51eea5026a)) 89063d2e960SManish V Badarkhe 89163d2e960SManish V Badarkhe - **STPMIC1** 89263d2e960SManish V Badarkhe 89363d2e960SManish V Badarkhe - fix power switches activation ([0161991](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0161991184e5feacacc679bdb9c92681b85235eb)) 89463d2e960SManish V Badarkhe - update error cases return ([ed6a852](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/ed6a85234653c5ee2520389b769ff47e321df8a4)) 89563d2e960SManish V Badarkhe 89663d2e960SManish V Badarkhe - **UART** 89763d2e960SManish V Badarkhe 89863d2e960SManish V Badarkhe - **STM32 Console** 89963d2e960SManish V Badarkhe 90063d2e960SManish V Badarkhe - do not skip init for crash console ([49c7f0c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/49c7f0cef4cc864185828750f1f61f3f33f284f7)) 90163d2e960SManish V Badarkhe 90263d2e960SManish V Badarkhe - **USB** 90363d2e960SManish V Badarkhe 90463d2e960SManish V Badarkhe - add a optional ops get_other_speed_config_desc ([216c122](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/216c1223c2c65bd1c119a28b9406f70a9ee7b063)) 90563d2e960SManish V Badarkhe - fix Null pointer dereferences in usb_core_set_config ([0cb9870](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0cb9870ddfa1b2fec50debe6d6333cbcb3df1e7e)) 90663d2e960SManish V Badarkhe - remove deadcode when USBD_EP_NB = 1 ([7ca4928](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7ca49284be083b03ae11aa348b40358876ee5d4b)) 90763d2e960SManish V Badarkhe - remove unnecessary cast ([025f5ef](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/025f5ef201a39ba7285f368139e690bbd7a44653)) 90863d2e960SManish V Badarkhe 90963d2e960SManish V Badarkhe- **Miscellaneous** 91063d2e960SManish V Badarkhe 91163d2e960SManish V Badarkhe - use correct printf format for uint64_t ([4ef449c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4ef449c15a4055d92632cb7e72267f525a7e2fca)) 91263d2e960SManish V Badarkhe 91363d2e960SManish V Badarkhe - **DT Bindings** 91463d2e960SManish V Badarkhe 91563d2e960SManish V Badarkhe - fix static checks ([0861fcd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/0861fcdd3e3f2625e133de3dae9c548de7c1ee48)) 91663d2e960SManish V Badarkhe 91763d2e960SManish V Badarkhe - **FDTs** 91863d2e960SManish V Badarkhe 91963d2e960SManish V Badarkhe - avoid output on missing DT property ([49e789e](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/49e789e353efaf97f84eca016c6a1b8a2b3e3d98)) 92063d2e960SManish V Badarkhe - fix OOB write in uuid parsing function ([d0d6424](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d0d642450f1f3a0f43e0e156ef57a0c460dd48cf)) 92163d2e960SManish V Badarkhe 92263d2e960SManish V Badarkhe - **Morello** 92363d2e960SManish V Badarkhe 92463d2e960SManish V Badarkhe - fix scmi clock specifier to cluster mappings ([387a906](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/387a9065a271ecde0e47dc5a9f9d037637502beb)) 92563d2e960SManish V Badarkhe 92663d2e960SManish V Badarkhe - **STM32MP1** 92763d2e960SManish V Badarkhe 92863d2e960SManish V Badarkhe - correct copyright dates ([8d26029](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8d26029168fe70a86de524ed68c56e8666823714)) 92963d2e960SManish V Badarkhe - set ETH clock on PLL4P on ST boards ([3e881a8](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/3e881a8834a955f1e552300bdbf1dafd02ea8f1c)) 93063d2e960SManish V Badarkhe - update PLL nodes for ED1/EV1 boards ([cdbbb9f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/cdbbb9f7ecd4687fa52e1c655b631377c24862b9)) 93163d2e960SManish V Badarkhe - use 'kHz' as kilohertz abbreviation ([4955d08](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/4955d08de7aa664387d2e5f690e78b85ac23a402)) 93263d2e960SManish V Badarkhe 93363d2e960SManish V Badarkhe - **PIE** 93463d2e960SManish V Badarkhe 93563d2e960SManish V Badarkhe - invalidate data cache in the entire image range if PIE is enabled ([596d20d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/596d20d9e4d50c02b5a0cce8cad2a1c205cd687a)) 93663d2e960SManish V Badarkhe 93763d2e960SManish V Badarkhe - **Security** 93863d2e960SManish V Badarkhe 93963d2e960SManish V Badarkhe - Set MDCR_EL3.MCCD bit ([12f6c06](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/12f6c0649732a35a7ed45ba350a963f09a5710ca)) 94063d2e960SManish V Badarkhe 94163d2e960SManish V Badarkhe - **SDEI** 94263d2e960SManish V Badarkhe 94363d2e960SManish V Badarkhe - fix assert while kdump issue ([d39db26](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d39db2695ba626b9c0ee38652fe160b4e84b15d9)) 94463d2e960SManish V Badarkhe - print event number in hex format ([6b94356](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6b94356b577744d425476a029c47bd35eb13c148)) 94563d2e960SManish V Badarkhe - set SPSR for SDEI based on TakeException ([37596fc](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/37596fcb43e34ed4bcf1bd3e86d8dec1011edab8)) 94663d2e960SManish V Badarkhe 94763d2e960SManish V Badarkhe- **Documentation** 94863d2e960SManish V Badarkhe 94963d2e960SManish V Badarkhe - fix TF-A v2.6 release date in the release information page ([c90fa47](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/c90fa47202b762fe8f54e9c0561e94d37907b6ad)) 95063d2e960SManish V Badarkhe - fix `FF-A` substitution ([a61940c](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/a61940ca739eb89be7c1bb2408a9178c2da5cb70)) 95163d2e960SManish V Badarkhe - fix typos in v2.5 release documentation ([481c7b6](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/481c7b6b9107a3f71ee750f89cacdd8f9c729838)) 95263d2e960SManish V Badarkhe - remove "experimental" tag for stable features ([700e768](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/700e7685dd4682a929645a79de39f503c9140b2d)) 95363d2e960SManish V Badarkhe 95463d2e960SManish V Badarkhe - **Contribution Guidelines** 95563d2e960SManish V Badarkhe 95663d2e960SManish V Badarkhe - fix formatting for code snippet ([d0bbe81](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/d0bbe8150eb35fe2bac1567751bf84a8f073dd39)) 95763d2e960SManish V Badarkhe 95863d2e960SManish V Badarkhe- **Build System** 95963d2e960SManish V Badarkhe 96063d2e960SManish V Badarkhe - use space in WARNINGS list ([34b508b](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/34b508be9f021831423a8a14f56dff547e24c743)) 96163d2e960SManish V Badarkhe 96263d2e960SManish V Badarkhe - **Git Hooks** 96363d2e960SManish V Badarkhe 96463d2e960SManish V Badarkhe - downgrade `package-lock.json` version ([7434b65](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/7434b65208175bdf3f44e0e62aaaeabc9c494ee3)) 96563d2e960SManish V Badarkhe 96663d2e960SManish V Badarkhe- **Tools** 96763d2e960SManish V Badarkhe 96863d2e960SManish V Badarkhe - **STM32 Image** 96963d2e960SManish V Badarkhe 97063d2e960SManish V Badarkhe - improve the tool ([8d0036d](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/8d0036d3d8c8ac1524539ea90382acafb1e524c0)) 97163d2e960SManish V Badarkhe 97263d2e960SManish V Badarkhe - **SPTOOL** 97363d2e960SManish V Badarkhe 97463d2e960SManish V Badarkhe - SP UUID little to big endian in TF-A build ([dcdbcdd](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/dcdbcddebdee8d4d2c6c8316f615b428758b22ac)) 97563d2e960SManish V Badarkhe 97663d2e960SManish V Badarkhe - **DOIMAGE** 97763d2e960SManish V Badarkhe 97863d2e960SManish V Badarkhe - Fix doimage syntax breaking secure mode build ([6d55ef1](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/6d55ef1a24dc92a3b737aaa02141f550caaace06)) 97963d2e960SManish V Badarkhe 98063d2e960SManish V Badarkhe- **Dependencies** 98163d2e960SManish V Badarkhe 98263d2e960SManish V Badarkhe - **checkpatch** 98363d2e960SManish V Badarkhe 98463d2e960SManish V Badarkhe - do not check merge commits ([77a0a7f](https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/+/77a0a7f1d96b188849d1d8d8884b3c93857d3f69)) 98563d2e960SManish V Badarkhe 986c4e8edabSChris Kay## 2.5.0 (2021-05-17) 987c4e8edabSChris Kay 988c4e8edabSChris Kay### New Features 989c4e8edabSChris Kay 990c4e8edabSChris Kay- Architecture support 991c4e8edabSChris Kay 992c4e8edabSChris Kay - Added support for speculation barrier(`FEAT_SB`) for non-Armv8.5 platforms 993c4e8edabSChris Kay starting from Armv8.0 994c4e8edabSChris Kay - Added support for Activity Monitors Extension version 1.1(`FEAT_AMUv1p1`) 995c4e8edabSChris Kay - Added helper functions for Random number generator(`FEAT_RNG`) registers 996c4e8edabSChris Kay - Added support for Armv8.6 Multi-threaded PMU extensions (`FEAT_MTPMU`) 997c4e8edabSChris Kay - Added support for MTE Asymmetric Fault Handling extensions(`FEAT_MTE3`) 998c4e8edabSChris Kay - Added support for Privileged Access Never extensions(`FEAT_PANx`) 999c4e8edabSChris Kay 1000c4e8edabSChris Kay- Bootloader images 1001c4e8edabSChris Kay 1002c4e8edabSChris Kay - Added PIE support for AArch32 builds 1003c4e8edabSChris Kay - Enable Trusted Random Number Generator service for BL32(sp_min) 1004c4e8edabSChris Kay 1005c4e8edabSChris Kay- Build System 1006c4e8edabSChris Kay 1007c4e8edabSChris Kay - Added build option for Arm Feature Modifiers 1008c4e8edabSChris Kay 1009c4e8edabSChris Kay- Drivers 1010c4e8edabSChris Kay 1011c4e8edabSChris Kay - Added support for interrupts in TZC-400 driver 1012c4e8edabSChris Kay - Broadcom 1013c4e8edabSChris Kay - Added support for I2C, MDIO and USB drivers 1014c4e8edabSChris Kay - Marvell 1015c4e8edabSChris Kay - Added support for secure read/write of dfc register-set 1016c4e8edabSChris Kay - Added support for thermal sensor driver 1017c4e8edabSChris Kay - Implement a3700_core_getc API in console driver 1018c4e8edabSChris Kay - Added rx training on 10G port 1019c4e8edabSChris Kay - Marvell Mochi 1020c4e8edabSChris Kay - Added support for cn913x in PCIe mode 1021c4e8edabSChris Kay - Marvell Armada A8K 1022c4e8edabSChris Kay - Added support for TRNG-IP-76 driver and accessing RNG register 1023c4e8edabSChris Kay - Mediatek MT8192 1024c4e8edabSChris Kay - Added support for following drivers 1025c4e8edabSChris Kay - MPU configuration for SCP/PCIe 1026c4e8edabSChris Kay - SPM suspend 1027c4e8edabSChris Kay - Vcore DVFS 1028c4e8edabSChris Kay - LPM 1029c4e8edabSChris Kay - PTP3 1030c4e8edabSChris Kay - UART save and restore 1031c4e8edabSChris Kay - Power-off 1032c4e8edabSChris Kay - PMIC 1033c4e8edabSChris Kay - CPU hotplug and MCDI support 1034c4e8edabSChris Kay - SPMC 1035c4e8edabSChris Kay - MPU 1036c4e8edabSChris Kay - Mediatek MT8195 1037c4e8edabSChris Kay - Added support for following drivers 1038c4e8edabSChris Kay - GPIO, NCDI, SPMC drivers 1039c4e8edabSChris Kay - Power-off 1040c4e8edabSChris Kay - CPU hotplug, reboot and MCDI 1041c4e8edabSChris Kay - Delay timer and sys timer 1042c4e8edabSChris Kay - GIC 1043c4e8edabSChris Kay - NXP 1044c4e8edabSChris Kay - Added support for 1045c4e8edabSChris Kay - non-volatile storage API 1046c4e8edabSChris Kay - chain of trust and trusted board boot using two modes: MBEDTLS and CSF 1047c4e8edabSChris Kay - fip-handler necessary for DDR initialization 1048c4e8edabSChris Kay - SMMU and console drivers 1049c4e8edabSChris Kay - crypto hardware accelerator driver 1050c4e8edabSChris Kay - following drivers: SD, EMMC, QSPI, FLEXSPI, GPIO, GIC, CSU, PMU, DDR 1051c4e8edabSChris Kay - NXP Security Monitor and SFP driver 1052c4e8edabSChris Kay - interconnect config APIs using ARM CCN-CCI driver 1053c4e8edabSChris Kay - TZC APIs to configure DDR region 1054c4e8edabSChris Kay - generic timer driver 1055c4e8edabSChris Kay - Device configuration driver 1056c4e8edabSChris Kay - IMX 1057c4e8edabSChris Kay - Added support for image loading and io-storage driver for TBBR fip booting 1058c4e8edabSChris Kay - Renesas 1059c4e8edabSChris Kay - Added support for PFC and EMMC driver 1060c4e8edabSChris Kay - RZ Family: 1061c4e8edabSChris Kay - G2N, G2E and G2H SoCs 1062c4e8edabSChris Kay - Added support for watchdog, QoS, PFC and DRAM initialization 1063c4e8edabSChris Kay - RZG Family: 1064c4e8edabSChris Kay - G2M 1065c4e8edabSChris Kay - Added support for QoS and DRAM initialization 1066c4e8edabSChris Kay - Xilinx 1067c4e8edabSChris Kay - Added JTAG DCC support for Versal and ZynqMP SoC family. 1068c4e8edabSChris Kay 1069c4e8edabSChris Kay- Libraries 1070c4e8edabSChris Kay 1071c4e8edabSChris Kay - C standard library 1072c4e8edabSChris Kay - Added support to print `%` in `snprintf()` and `printf()` APIs 1073c4e8edabSChris Kay - Added support for strtoull, strtoll, strtoul, strtol APIs from FreeBSD 1074c4e8edabSChris Kay project 1075c4e8edabSChris Kay - CPU support 1076c4e8edabSChris Kay - Added support for 1077c4e8edabSChris Kay - Cortex_A78C CPU 1078c4e8edabSChris Kay - Makalu ELP CPU 1079c4e8edabSChris Kay - Makalu CPU 1080c4e8edabSChris Kay - Matterhorn ELP CPU 1081c4e8edabSChris Kay - Neoverse-N2 CPU 1082c4e8edabSChris Kay - CPU Errata 1083c4e8edabSChris Kay - Arm Cortex-A76: Added workaround for erratum 1946160 1084c4e8edabSChris Kay - Arm Cortex-A77: Added workaround for erratum 1946167 1085c4e8edabSChris Kay - Arm Cortex-A78: Added workaround for erratum 1941498 and 1951500 1086c4e8edabSChris Kay - Arm Neoverse-N1: Added workaround for erratum 1946160 1087c4e8edabSChris Kay - Flattened device tree(libfdt) 1088c4e8edabSChris Kay - Added support for wrapper function to read UUIDs in string format from dtb 1089c4e8edabSChris Kay 1090c4e8edabSChris Kay- Platforms 1091c4e8edabSChris Kay 1092c4e8edabSChris Kay - Added support for MediaTek MT8195 1093c4e8edabSChris Kay - Added support for Arm RD-N2 board 1094c4e8edabSChris Kay - Allwinner 1095c4e8edabSChris Kay - Added support for H616 SoC 1096c4e8edabSChris Kay - Arm 1097c4e8edabSChris Kay - Added support for GPT parser 1098c4e8edabSChris Kay - Protect GICR frames for fused/unused cores 1099c4e8edabSChris Kay - Arm Morello 1100c4e8edabSChris Kay - Added VirtIO network device to Morello FVP fdts 1101c4e8edabSChris Kay - Arm RD-N2 1102c4e8edabSChris Kay - Added support for variant 1 of RD-N2 platform 1103c4e8edabSChris Kay - Enable AMU support 1104c4e8edabSChris Kay - Arm RD-V1 1105c4e8edabSChris Kay - Enable AMU support 1106c4e8edabSChris Kay - Arm SGI 1107c4e8edabSChris Kay - Added support for platform variant build option 1108c4e8edabSChris Kay - Arm TC0 1109c4e8edabSChris Kay - Added Matterhorn ELP CPU support 1110c4e8edabSChris Kay - Added support for opteed 1111c4e8edabSChris Kay - Arm Juno 1112c4e8edabSChris Kay - Added support to use hw_config in BL31 1113c4e8edabSChris Kay - Use TRNG entropy source for SMCCC TRNG interface 1114c4e8edabSChris Kay - Condition Juno entropy source with CRC instructions 1115c4e8edabSChris Kay - Marvell Mochi 1116c4e8edabSChris Kay - Added support for detection of secure mode 1117c4e8edabSChris Kay - Marvell ARMADA 1118c4e8edabSChris Kay - Added support for new compile option A3720_DB_PM_WAKEUP_SRC 1119c4e8edabSChris Kay - Added support doing system reset via CM3 secure coprocessor 1120c4e8edabSChris Kay - Made several makefile enhancements required to build WTMI_MULTI_IMG and 1121c4e8edabSChris Kay TIMDDRTOOL 1122c4e8edabSChris Kay - Added support for building DOIMAGETOOL tool 1123c4e8edabSChris Kay - Added new target mrvl_bootimage 1124c4e8edabSChris Kay - Mediatek MT8192 1125c4e8edabSChris Kay - Added support for rtc power off sequence 1126c4e8edabSChris Kay - Mediatek MT8195 1127c4e8edabSChris Kay - Added support for SiP service 1128c4e8edabSChris Kay - STM32MP1 1129c4e8edabSChris Kay - Added support for 1130c4e8edabSChris Kay - Seeed ODYSSEY SoM and board 1131c4e8edabSChris Kay - SDMMC2 and I2C2 pins in pinctrl 1132c4e8edabSChris Kay - I2C2 peripheral in DTS 1133c4e8edabSChris Kay - PIE for BL32 1134c4e8edabSChris Kay - TZC-400 interrupt managament 1135c4e8edabSChris Kay - Linux Automation MC-1 board 1136c4e8edabSChris Kay - Renesas RZG 1137c4e8edabSChris Kay - Added support for identifying EK874 RZ/G2E board 1138c4e8edabSChris Kay - Added support for identifying HopeRun HiHope RZ/G2H and RZ/G2H boards 1139c4e8edabSChris Kay - Rockchip 1140c4e8edabSChris Kay - Added support for stack protector 1141c4e8edabSChris Kay - QEMU 1142c4e8edabSChris Kay - Added support for `max` CPU 1143c4e8edabSChris Kay - Added Cortex-A72 support to `virt` platform 1144c4e8edabSChris Kay - Enabled trigger reboot from secure pl061 1145c4e8edabSChris Kay - QEMU SBSA 1146c4e8edabSChris Kay - Added support for sbsa-ref Embedded Controller 1147c4e8edabSChris Kay - NXP 1148c4e8edabSChris Kay - Added support for warm reset to retain ddr content 1149c4e8edabSChris Kay - Added support for image loader necessary for loading fip image 1150c4e8edabSChris Kay - lx2160a SoC Family 1151c4e8edabSChris Kay - Added support for 1152c4e8edabSChris Kay - new platform lx2160a-aqds 1153c4e8edabSChris Kay - new platform lx2160a-rdb 1154c4e8edabSChris Kay - new platform lx2162a-aqds 1155c4e8edabSChris Kay - errata handling 1156c4e8edabSChris Kay - IMX imx8mm 1157c4e8edabSChris Kay - Added support for trusted board boot 1158c4e8edabSChris Kay - TI K3 1159c4e8edabSChris Kay - Added support for lite device board 1160c4e8edabSChris Kay - Enabled Cortex-A72 erratum 1319367 1161c4e8edabSChris Kay - Enabled Cortex-A53 erratum 1530924 1162c4e8edabSChris Kay - Xilinx ZynqMP 1163c4e8edabSChris Kay - Added support for PS and system reset on WDT restart 1164c4e8edabSChris Kay - Added support for error management 1165c4e8edabSChris Kay - Enable support for log messages necessary for debug 1166c4e8edabSChris Kay - Added support for PM API SMC call for efuse and register access 1167c4e8edabSChris Kay 1168c4e8edabSChris Kay- Processes 1169c4e8edabSChris Kay 1170c4e8edabSChris Kay - Introduced process for platform deprecation 1171c4e8edabSChris Kay - Added documentation for TF-A threat model 1172c4e8edabSChris Kay - Provided a copy of the MIT license to comply with the license requirements 1173c4e8edabSChris Kay of the arm-gic.h source file (originating from the Linux kernel project and 1174c4e8edabSChris Kay re-distributed in TF-A). 1175c4e8edabSChris Kay 1176c4e8edabSChris Kay- Services 1177c4e8edabSChris Kay 1178c4e8edabSChris Kay - Added support for TRNG firmware interface service 1179c4e8edabSChris Kay - Arm 1180c4e8edabSChris Kay - Added SiP service to configure Ethos-N NPU 1181c4e8edabSChris Kay - SPMC 1182c4e8edabSChris Kay - Added documentation for SPM(Hafnium) SMMUv3 driver 1183c4e8edabSChris Kay - SPMD 1184c4e8edabSChris Kay - Added support for 1185c4e8edabSChris Kay - FFA_INTERRUPT forwading ABI 1186c4e8edabSChris Kay - FFA_SECONDARY_EP_REGISTER ABI 1187c4e8edabSChris Kay - FF-A v1.0 boot time power management, SPMC secondary core boot and early 1188c4e8edabSChris Kay run-time power management 1189c4e8edabSChris Kay 1190c4e8edabSChris Kay- Tools 1191c4e8edabSChris Kay 1192c4e8edabSChris Kay - FIPTool 1193c4e8edabSChris Kay - Added mechanism to allow platform specific image UUID 1194c4e8edabSChris Kay - git hooks 1195c4e8edabSChris Kay - Added support for conventional commits through commitlint hook, commitizen 1196c4e8edabSChris Kay hook and husky configuration files. 1197c4e8edabSChris Kay - NXP tool 1198c4e8edabSChris Kay - Added support for a tool that creates pbl file from BL2 1199c4e8edabSChris Kay - Renesas RZ/G2 1200c4e8edabSChris Kay - Added tool support for creating bootparam and cert_header images 1201c4e8edabSChris Kay - CertCreate 1202c4e8edabSChris Kay - Added support for platform-defined certificates, keys, and extensions 1203c4e8edabSChris Kay using the platform's makefile 1204c4e8edabSChris Kay - shared tools 1205c4e8edabSChris Kay - Added EFI_GUID representation to uuid helper data structure 1206c4e8edabSChris Kay 1207c4e8edabSChris Kay### Changed 1208c4e8edabSChris Kay 1209c4e8edabSChris Kay- Common components 1210c4e8edabSChris Kay 1211c4e8edabSChris Kay - Print newline after hex address in aarch64 el3_panic function 1212c4e8edabSChris Kay - Use proper `#address-cells` and `#size-cells` for reserved-memory in dtbs 1213c4e8edabSChris Kay 1214c4e8edabSChris Kay- Drivers 1215c4e8edabSChris Kay 1216c4e8edabSChris Kay - Move SCMI driver from ST platform directory and make it common to all 1217c4e8edabSChris Kay platforms 1218c4e8edabSChris Kay - Arm GICv3 1219c4e8edabSChris Kay - Shift eSPI register offset in GICD_OFFSET_64() 1220c4e8edabSChris Kay - Use mpidr to probe GICR for current CPU 1221c4e8edabSChris Kay - Arm TZC-400 1222c4e8edabSChris Kay - Adjust filter tag if it set to FILTER_BIT_ALL 1223c4e8edabSChris Kay - Cadence 1224c4e8edabSChris Kay - Enhance UART driver APIs to put characters to fifo 1225c4e8edabSChris Kay - Mediatek MT8192 1226c4e8edabSChris Kay - Move timer driver to common folder 1227c4e8edabSChris Kay - Enhanced sys_cirq driver to add more IC services 1228c4e8edabSChris Kay - Renesas 1229c4e8edabSChris Kay - Move ddr and delay driver to common directory 1230c4e8edabSChris Kay - Renesas rcar 1231c4e8edabSChris Kay - Treat log as device memory in console driver 1232c4e8edabSChris Kay - Renesas RZ Family: 1233c4e8edabSChris Kay - G2N and G2H SoCs 1234c4e8edabSChris Kay - Select MMC_CH1 for eMMC channel 1235c4e8edabSChris Kay - Marvell 1236c4e8edabSChris Kay - Added support for checking if TRNG unit is present 1237c4e8edabSChris Kay - Marvell A3K 1238c4e8edabSChris Kay - Set TXDCLK_2X_SEL bit during PCIe initialization 1239c4e8edabSChris Kay - Set mask parameter for every reg_set call 1240c4e8edabSChris Kay - Marvell Mochi 1241c4e8edabSChris Kay - Added missing stream IDs configurations 1242c4e8edabSChris Kay - MbedTLS 1243c4e8edabSChris Kay - Migrated to Mbed TLS v2.26.0 1244c4e8edabSChris Kay - IMX imx8mp 1245c4e8edabSChris Kay - Change the bl31 physical load address 1246c4e8edabSChris Kay - QEMU SBSA 1247c4e8edabSChris Kay - Enable secure variable storage 1248c4e8edabSChris Kay - SCMI 1249c4e8edabSChris Kay - Update power domain protocol version to 2.0 1250c4e8edabSChris Kay - STM32 1251c4e8edabSChris Kay - Remove dead code from nand FMC driver 1252c4e8edabSChris Kay 1253c4e8edabSChris Kay- Libraries 1254c4e8edabSChris Kay 1255c4e8edabSChris Kay - C Standard Library 1256c4e8edabSChris Kay - Use macros to reduce duplicated code between snprintf and printf 1257c4e8edabSChris Kay - CPU support 1258c4e8edabSChris Kay - Sanity check pointers before use in AArch32 builds 1259c4e8edabSChris Kay - Arm Cortex-A78 1260c4e8edabSChris Kay - Remove rainier cpu workaround for errata 1542319 1261c4e8edabSChris Kay - Arm Makalu ELP 1262c4e8edabSChris Kay - Added "\_arm" suffix to Makalu ELP CPU lib 1263c4e8edabSChris Kay 1264c4e8edabSChris Kay- Miscellaneous 1265c4e8edabSChris Kay 1266c4e8edabSChris Kay - Editorconfig 1267c4e8edabSChris Kay - set max line length to 100 1268c4e8edabSChris Kay 1269c4e8edabSChris Kay- Platforms 1270c4e8edabSChris Kay 1271c4e8edabSChris Kay - Allwinner 1272c4e8edabSChris Kay - Added reserved-memory node to DT 1273c4e8edabSChris Kay - Express memmap more dynamically 1274c4e8edabSChris Kay - Move SEPARATE_NOBITS_REGION to platforms 1275c4e8edabSChris Kay - Limit FDT checks to reduce code size 1276c4e8edabSChris Kay - Use CPUIDLE hardware when available 1277c4e8edabSChris Kay - Allow conditional compilation of SCPI and native PSCI ops 1278c4e8edabSChris Kay - Always use a 3MHz RSB bus clock 1279c4e8edabSChris Kay - Enable workaround for Cortex-A53 erratum 1530924 1280c4e8edabSChris Kay - Fixed non-default PRELOADED_BL33_BASE 1281c4e8edabSChris Kay - Leave CPU power alone during BL31 setup 1282c4e8edabSChris Kay - Added several psci hooks enhancements to improve system shutdown/reset 1283c4e8edabSChris Kay sequence 1284c4e8edabSChris Kay - Return the PMIC to I2C mode after use 1285c4e8edabSChris Kay - Separate code to power off self and other CPUs 1286c4e8edabSChris Kay - Split native and SCPI-based PSCI implementations 1287c4e8edabSChris Kay - Allwinner H6 1288c4e8edabSChris Kay - Added R_PRCM security setup for H6 board 1289c4e8edabSChris Kay - Added SPC security setup for H6 board 1290c4e8edabSChris Kay - Use RSB for the PMIC connection on H6 1291c4e8edabSChris Kay - Arm 1292c4e8edabSChris Kay - Store UUID as a string, rather than ints 1293c4e8edabSChris Kay - Replace FIP base and size macro with a generic name 1294c4e8edabSChris Kay - Move compile time switch from source to dt file 1295c4e8edabSChris Kay - Don't provide NT_FW_CONFIG when booting hafnium 1296c4e8edabSChris Kay - Do not setup 'disabled' regulator 1297c4e8edabSChris Kay - Increase SP max size 1298c4e8edabSChris Kay - Remove false dependency of ARM_LINUX_KERNEL_AS_BL33 on RESET_TO_BL31 and 1299c4e8edabSChris Kay allow it to be enabled independently 1300c4e8edabSChris Kay - Arm FVP 1301c4e8edabSChris Kay - Do not map GIC region in BL1 and BL2 1302c4e8edabSChris Kay - Arm Juno 1303c4e8edabSChris Kay - Refactor juno_getentropy() to return 64 bits on each call 1304c4e8edabSChris Kay - Arm Morello 1305c4e8edabSChris Kay - Remove "virtio-rng" from Morello FVP 1306c4e8edabSChris Kay - Enable virtIO P9 device for Morello fvp 1307c4e8edabSChris Kay - Arm RDV1 1308c4e8edabSChris Kay - Allow all PSCI callbacks on RD-V1 1309c4e8edabSChris Kay - Rename rddaniel to rdv1 1310c4e8edabSChris Kay - Arm RDV1MC 1311c4e8edabSChris Kay - Rename rddanielxlr to rdv1mc 1312c4e8edabSChris Kay - Initialize TZC-400 controllers 1313c4e8edabSChris Kay - Arm TC0 1314c4e8edabSChris Kay - Updated GICR base address 1315c4e8edabSChris Kay - Use scmi_dvfs clock index 1 for cores 4-7 through fdt 1316c4e8edabSChris Kay - Added reserved-memory node for OP-TEE fdts 1317c4e8edabSChris Kay - Enabled Theodul DSU in TC platform 1318c4e8edabSChris Kay - OP-TEE as S-EL1 SP with SPMC at S-EL2 1319c4e8edabSChris Kay - Update Matterhorm ELP DVFS clock index 1320c4e8edabSChris Kay - Arm SGI 1321c4e8edabSChris Kay - Allow access to TZC controller on all chips 1322c4e8edabSChris Kay - Define memory regions for multi-chip platforms 1323c4e8edabSChris Kay - Allow access to nor2 flash and system registers from S-EL0 1324c4e8edabSChris Kay - Define default list of memory regions for DMC-620 TZC 1325c4e8edabSChris Kay - Improve macros defining cper buffer memory region 1326c4e8edabSChris Kay - Refactor DMC-620 error handling SMC function id 1327c4e8edabSChris Kay - Refactor SDEI specific macros 1328c4e8edabSChris Kay - Added platform id value for RDN2 platform 1329c4e8edabSChris Kay - Refactored header file inclusions and inclusion of memory mapping 1330c4e8edabSChris Kay - Arm RDN2 1331c4e8edabSChris Kay - Allow usage of secure partitions on RDN2 platform 1332c4e8edabSChris Kay - Update GIC redistributor and TZC base address 1333c4e8edabSChris Kay - Arm SGM775 1334c4e8edabSChris Kay - Deprecate Arm sgm775 FVP platform 1335c4e8edabSChris Kay - Marvell 1336c4e8edabSChris Kay - Increase TX FIFO EMPTY timeout from 2ms to 3ms 1337c4e8edabSChris Kay - Update delay code to be compatible with 1200 MHz CPU 1338c4e8edabSChris Kay - Marvell ARMADA 1339c4e8edabSChris Kay - Postpone MSS CPU startup to BL31 stage 1340c4e8edabSChris Kay - Allow builds without MSS support 1341c4e8edabSChris Kay - Use MSS SRAM in secure mode 1342c4e8edabSChris Kay - Added missing FORCE, .PHONY and clean targets 1343c4e8edabSChris Kay - Cleanup MSS SRAM if used for copy 1344c4e8edabSChris Kay - Move definition of mrvl_flash target to common marvell_common.mk file 1345c4e8edabSChris Kay - Show informative build messages and blank lines 1346c4e8edabSChris Kay - Marvell ARMADA A3K 1347c4e8edabSChris Kay - Added a new target mrvl_uart which builds UART image 1348c4e8edabSChris Kay - Added checks that WTP, MV_DDR_PATH and CRYPTOPP_PATH are correctly defined 1349c4e8edabSChris Kay - Allow use of the system Crypto++ library 1350c4e8edabSChris Kay - Build \$(WTMI_ENC_IMG) in \$(BUILD_PLAT) directory 1351c4e8edabSChris Kay - Build intermediate files in \$(BUILD_PLAT) directory 1352c4e8edabSChris Kay - Build UART image files directly in \$(BUILD_UART) subdirectory 1353c4e8edabSChris Kay - Correctly set DDR_TOPOLOGY and CLOCKSPRESET for WTMI 1354c4e8edabSChris Kay - Do not use 'echo -e' in Makefile 1355c4e8edabSChris Kay - Improve 4GB DRAM usage from 3.375 GB to 3.75 GB 1356c4e8edabSChris Kay - Remove unused variable WTMI_SYSINIT_IMG from Makefile 1357c4e8edabSChris Kay - Simplify check if WTP variable is defined 1358c4e8edabSChris Kay - Split building \$(WTMI_MULTI_IMG) and \$(TIMDDRTOOL) 1359c4e8edabSChris Kay - Marvell ARMADA A8K 1360c4e8edabSChris Kay - Allow CP1/CP2 mapping at BLE stage 1361c4e8edabSChris Kay - Mediatek MT8183 1362c4e8edabSChris Kay - Added timer V20 compensation 1363c4e8edabSChris Kay - Nvidia Tegra 1364c4e8edabSChris Kay - Rename SMC API 1365c4e8edabSChris Kay - TI K3 1366c4e8edabSChris Kay - Make plat_get_syscnt_freq2 helper check CNT_FID0 register 1367c4e8edabSChris Kay - Fill non-message data fields in sec_proxy with 0x0 1368c4e8edabSChris Kay - Update ti_sci_msg_req_reboot ABI to include domain 1369c4e8edabSChris Kay - Enable USE_COHERENT_MEM only for the generic board 1370c4e8edabSChris Kay - Explicitly map SEC_SRAM_BASE to 0x0 1371c4e8edabSChris Kay - Use BL31_SIZE instead of computing 1372c4e8edabSChris Kay - Define the correct number of max table entries and increase SRAM size to 1373c4e8edabSChris Kay account for additional table 1374c4e8edabSChris Kay - Raspberry Pi4 1375c4e8edabSChris Kay - Switch to gicv2.mk and GICV2_SOURCES 1376c4e8edabSChris Kay - Renesas 1377c4e8edabSChris Kay - Move headers and assembly files to common folder 1378c4e8edabSChris Kay - Renesas rzg 1379c4e8edabSChris Kay - Added device tree memory node enhancements 1380c4e8edabSChris Kay - Rockchip 1381c4e8edabSChris Kay - Switch to using common gicv3.mk 1382c4e8edabSChris Kay - STM32MP1 1383c4e8edabSChris Kay - Set BL sizes regardless of flags 1384c4e8edabSChris Kay - QEMU 1385c4e8edabSChris Kay - Include gicv2.mk for compiling GICv2 source files 1386c4e8edabSChris Kay - Change DEVICE2 definition for MMU 1387c4e8edabSChris Kay - Added helper to calculate the position shift from MPIDR 1388c4e8edabSChris Kay - QEMU SBSA 1389c4e8edabSChris Kay - Include libraries for Cortex-A72 1390c4e8edabSChris Kay - Increase SHARED_RAM_SIZE 1391c4e8edabSChris Kay - Addes support in spm_mm for upto 512 cores 1392c4e8edabSChris Kay - Added support for topology handling 1393c4e8edabSChris Kay - QTI 1394c4e8edabSChris Kay - Mandate SMC implementation 1395c4e8edabSChris Kay - Xilinx 1396c4e8edabSChris Kay - Rename the IPI CRC checksum macro 1397c4e8edabSChris Kay - Use fno-jump-tables flag in CPPFLAGS 1398c4e8edabSChris Kay - Xilinx versal 1399c4e8edabSChris Kay - Added the IPI CRC checksum macro support 1400c4e8edabSChris Kay - Mark IPI calls secure/non-secure 1401c4e8edabSChris Kay - Enable sgi to communicate with linux using IPI 1402c4e8edabSChris Kay - Remove Cortex-A53 compilation 1403c4e8edabSChris Kay - Xilinx ZynqMP 1404c4e8edabSChris Kay - Configure counter frequency during initialization 1405c4e8edabSChris Kay - Filter errors related to clock gate permissions 1406c4e8edabSChris Kay - Implement pinctrl request/release EEMI API 1407c4e8edabSChris Kay - Reimplement pinctrl get/set config parameter EEMI API calls 1408c4e8edabSChris Kay - Reimplement pinctrl set/get function EEMI API 1409c4e8edabSChris Kay - Update error codes to match Linux and PMU Firmware 1410c4e8edabSChris Kay - Update PM version and support PM version check 1411c4e8edabSChris Kay - Update return type in query functions 1412c4e8edabSChris Kay - Added missing ids for 43/46/47dr devices 1413c4e8edabSChris Kay - Checked for DLL status before doing reset 1414c4e8edabSChris Kay - Disable ITAPDLYENA bit for zero ITAP delay 1415c4e8edabSChris Kay - Include GICv2 makefile 1416c4e8edabSChris Kay - Remove the custom crash implementation 1417c4e8edabSChris Kay 1418c4e8edabSChris Kay- Services 1419c4e8edabSChris Kay 1420c4e8edabSChris Kay - SPMD 1421c4e8edabSChris Kay - Lock the g_spmd_pm structure 1422c4e8edabSChris Kay - Declare third cactus instance as UP SP 1423c4e8edabSChris Kay - Provide number of vCPUs and VM size for first SP 1424c4e8edabSChris Kay - Remove `chosen` node from SPMC manifests 1425c4e8edabSChris Kay - Move OP-TEE SP manifest DTS to FVP platform 1426c4e8edabSChris Kay - Update OP-TEE SP manifest with device-regions node 1427c4e8edabSChris Kay - Remove device-memory node from SPMC manifests 1428c4e8edabSChris Kay - SPM_MM 1429c4e8edabSChris Kay - Use sp_boot_info to set SP context 1430c4e8edabSChris Kay - SDEI 1431c4e8edabSChris Kay - Updata the affinity of shared event 1432c4e8edabSChris Kay 1433c4e8edabSChris Kay- Tools 1434c4e8edabSChris Kay 1435c4e8edabSChris Kay - FIPtool 1436c4e8edabSChris Kay - Do not print duplicate verbose lines about building fiptool 1437c4e8edabSChris Kay - CertCreate 1438c4e8edabSChris Kay - Updated tool for platform defined certs, keys & extensions 1439c4e8edabSChris Kay - Create only requested certificates 1440c4e8edabSChris Kay - Avoid duplicates in extension stack 1441c4e8edabSChris Kay 1442c4e8edabSChris Kay### Resolved Issues 1443c4e8edabSChris Kay 1444c4e8edabSChris Kay- Several fixes for typos and mis-spellings in documentation 1445c4e8edabSChris Kay 1446c4e8edabSChris Kay- Build system 1447c4e8edabSChris Kay 1448c4e8edabSChris Kay - Fixed \$\{FIP_NAME} to be rebuilt only when needed in Makefile 1449c4e8edabSChris Kay - Do not mark file targets as .PHONY target in Makefile 1450c4e8edabSChris Kay 1451c4e8edabSChris Kay- Drivers 1452c4e8edabSChris Kay 1453c4e8edabSChris Kay - Authorization 1454c4e8edabSChris Kay - Avoid NV counter upgrade without certificate validation 1455c4e8edabSChris Kay - Arm GICv3 1456c4e8edabSChris Kay - Fixed logical issue for num_eints 1457c4e8edabSChris Kay - Limit SPI ID to avoid misjudgement in GICD_OFFSET() 1458c4e8edabSChris Kay - Fixed potential GICD context override with ESPI enabled 1459c4e8edabSChris Kay - Marvell A3700 1460c4e8edabSChris Kay - Fixed configuring polarity invert bits 1461c4e8edabSChris Kay - Arm TZC-400 1462c4e8edabSChris Kay - Correct FAIL_CONTROL Privileged bit 1463c4e8edabSChris Kay - Fixed logical error in FILTER_BIT definitions 1464c4e8edabSChris Kay - Renesas rcar 1465c4e8edabSChris Kay - Fixed several coding style violations reported by checkpatch 1466c4e8edabSChris Kay 1467c4e8edabSChris Kay- Libraries 1468c4e8edabSChris Kay 1469c4e8edabSChris Kay - Arch helpers 1470c4e8edabSChris Kay - Fixed assertions in processing dynamic relocations for AArch64 builds 1471c4e8edabSChris Kay - C standard library 1472c4e8edabSChris Kay - Fixed MISRA issues in memset() ABI 1473c4e8edabSChris Kay - RAS 1474c4e8edabSChris Kay - Fixed bug of binary search in RAS interrupt handler 1475c4e8edabSChris Kay 1476c4e8edabSChris Kay- Platforms 1477c4e8edabSChris Kay 1478c4e8edabSChris Kay - Arm 1479c4e8edabSChris Kay - Fixed missing copyrights in arm-gic.h file 1480c4e8edabSChris Kay - Fixed the order of header files in several dts files 1481c4e8edabSChris Kay - Fixed error message printing in board makefile 1482c4e8edabSChris Kay - Fixed bug of overriding the last node in image load helper API 1483c4e8edabSChris Kay - Fixed stdout-path in fdts files of TC0 and N1SDP platforms 1484c4e8edabSChris Kay - Turn ON/OFF redistributor in sync with GIC CPU interface ON/OFF for css 1485c4e8edabSChris Kay platforms 1486c4e8edabSChris Kay - Arm FVP 1487c4e8edabSChris Kay - Fixed Generic Timer interrupt types in platform dts files 1488c4e8edabSChris Kay - Arm Juno 1489c4e8edabSChris Kay - Fixed parallel build issue for romlib config 1490c4e8edabSChris Kay - Arm SGI 1491c4e8edabSChris Kay - Fixed bug in SDEI receive event of RAS handler 1492c4e8edabSChris Kay - Intel Agilex 1493c4e8edabSChris Kay - Fixed PLAT_MAX_PWR_LVL value 1494c4e8edabSChris Kay - Marvell 1495c4e8edabSChris Kay - Fixed SPD handling in dram port 1496c4e8edabSChris Kay - Marvell ARMADA 1497c4e8edabSChris Kay - Fixed TRNG return SMC handling 1498c4e8edabSChris Kay - Fixed the logic used for LD selector mask 1499c4e8edabSChris Kay - Fixed MSS firmware loader for A8K family 1500c4e8edabSChris Kay - ST 1501c4e8edabSChris Kay - Fixed few violations reported by coverity static checks 1502c4e8edabSChris Kay - STM32MP1 1503c4e8edabSChris Kay - Fixed SELFREF_TO_X32 mask in ddr driver 1504c4e8edabSChris Kay - Do not keep mmc_device_info in stack 1505c4e8edabSChris Kay - Correct plat_crash_console_flush() 1506c4e8edabSChris Kay - QEMU SBSA 1507c4e8edabSChris Kay - Fixed memory type of secure NOR flash 1508c4e8edabSChris Kay - QTI 1509c4e8edabSChris Kay - Fixed NUM_APID and REG_APID_MAP() argument in SPMI driver 1510c4e8edabSChris Kay - Intel 1511c4e8edabSChris Kay - Do not keep mmc_device_info in stack 1512c4e8edabSChris Kay - Hisilicon 1513c4e8edabSChris Kay - Do not keep mmc_device_info in stack 1514c4e8edabSChris Kay 1515c4e8edabSChris Kay- Services 1516c4e8edabSChris Kay 1517c4e8edabSChris Kay - EL3 runtime 1518c4e8edabSChris Kay - Fixed the EL2 context save/restore routine by removing EL2 generic timer 1519c4e8edabSChris Kay system registers 1520c4e8edabSChris Kay - Added fix for exception handler in BL31 by synchronizing pending EA using 1521c4e8edabSChris Kay DSB barrier 1522c4e8edabSChris Kay - SPMD 1523c4e8edabSChris Kay - Fixed error codes to use int32_t type 1524c4e8edabSChris Kay - TSPD 1525c4e8edabSChris Kay - Added bug fix in tspd interrupt handling when TSP_NS_INTR_ASYNC_PREEMPT is 1526c4e8edabSChris Kay enabled 1527c4e8edabSChris Kay - TRNG 1528c4e8edabSChris Kay - Fixed compilation errors with -O0 compile option 1529c4e8edabSChris Kay - DebugFS 1530c4e8edabSChris Kay - Checked channel index before calling clone function 1531c4e8edabSChris Kay - PSCI 1532c4e8edabSChris Kay - Fixed limit of 256 CPUs caused by cast to unsigned char 1533c4e8edabSChris Kay - TSP 1534c4e8edabSChris Kay - Fixed compilation erros when built with GCC 11.0.0 toolchain 1535c4e8edabSChris Kay 1536c4e8edabSChris Kay- Tools 1537c4e8edabSChris Kay 1538c4e8edabSChris Kay - FIPtool 1539c4e8edabSChris Kay - Do not call `make clean` for `all` target 1540c4e8edabSChris Kay - CertCreate 1541c4e8edabSChris Kay - Fixed bug to avoid cleaning when building the binary 1542c4e8edabSChris Kay - Used preallocated parts of the HASH struct to avoid leaking HASH struct 1543c4e8edabSChris Kay fields 1544c4e8edabSChris Kay - Free arguments copied with strdup 1545c4e8edabSChris Kay - Free keys after use 1546c4e8edabSChris Kay - Free X509_EXTENSION structures on stack to avoid leaking them 1547c4e8edabSChris Kay - Optimized the code to avoid unnecessary attempts to create non-requested 1548c4e8edabSChris Kay certificates 1549c4e8edabSChris Kay 1550c4e8edabSChris Kay## 2.4.0 (2020-11-17) 1551c4e8edabSChris Kay 1552c4e8edabSChris Kay### New Features 1553c4e8edabSChris Kay 1554c4e8edabSChris Kay- Architecture support 1555c4e8edabSChris Kay - Armv8.6-A 1556c4e8edabSChris Kay - Added support for Armv8.6 Enhanced Counter Virtualization (ECV) 1557c4e8edabSChris Kay - Added support for Armv8.6 Fine Grained Traps (FGT) 1558c4e8edabSChris Kay - Added support for Armv8.6 WFE trap delays 1559c4e8edabSChris Kay- Bootloader images 1560c4e8edabSChris Kay - Added support for Measured Boot 1561c4e8edabSChris Kay- Build System 1562c4e8edabSChris Kay - Added build option `COT_DESC_IN_DTB` to create Chain of Trust at runtime 1563c4e8edabSChris Kay - Added build option `OPENSSL_DIR` to direct tools to OpenSSL libraries 1564c4e8edabSChris Kay - Added build option `RAS_TRAP_LOWER_EL_ERR_ACCESS` to enable trapping RAS 1565c4e8edabSChris Kay register accesses from EL1/EL2 to EL3 1566c4e8edabSChris Kay - Extended build option `BRANCH_PROTECTION` to support branch target 1567c4e8edabSChris Kay identification 1568c4e8edabSChris Kay- Common components 1569c4e8edabSChris Kay - Added support for exporting CPU nodes to the device tree 1570c4e8edabSChris Kay - Added support for single and dual-root Chains of Trust in secure partitions 1571c4e8edabSChris Kay- Drivers 1572c4e8edabSChris Kay - Added Broadcom RNG driver 1573c4e8edabSChris Kay - Added Marvell `mg_conf_cm3` driver 1574c4e8edabSChris Kay - Added System Control and Management Interface (SCMI) driver 1575c4e8edabSChris Kay - Added STMicroelectronics ETZPC driver 1576c4e8edabSChris Kay - Arm GICv3 1577c4e8edabSChris Kay - Added support for detecting topology at runtime 1578c4e8edabSChris Kay - Dual Root 1579c4e8edabSChris Kay - Added support for platform certificates 1580c4e8edabSChris Kay - Marvell Cache LLC 1581c4e8edabSChris Kay - Added support for mapping the entire LLC into SRAM 1582c4e8edabSChris Kay - Marvell CCU 1583c4e8edabSChris Kay - Added workaround for erratum 3033912 1584c4e8edabSChris Kay - Marvell CP110 COMPHY 1585c4e8edabSChris Kay - Added support for SATA COMPHY polarity inversion 1586c4e8edabSChris Kay - Added support for USB COMPHY polarity inversion 1587c4e8edabSChris Kay - Added workaround for erratum IPCE_COMPHY-1353 1588c4e8edabSChris Kay - STM32MP1 Clocks 1589c4e8edabSChris Kay - Added `RTC` as a gateable clock 1590c4e8edabSChris Kay - Added support for shifted clock selector bit masks 1591c4e8edabSChris Kay - Added support for using additional clocks as parents 1592c4e8edabSChris Kay- Libraries 1593c4e8edabSChris Kay - C standard library 1594c4e8edabSChris Kay - Added support for hexadecimal and pointer format specifiers in `snprint()` 1595c4e8edabSChris Kay - Added assembly alternatives for various library functions 1596c4e8edabSChris Kay - CPU support 1597c4e8edabSChris Kay - Arm Cortex-A53 1598c4e8edabSChris Kay - Added workaround for erratum 1530924 1599c4e8edabSChris Kay - Arm Cortex-A55 1600c4e8edabSChris Kay - Added workaround for erratum 1530923 1601c4e8edabSChris Kay - Arm Cortex-A57 1602c4e8edabSChris Kay - Added workaround for erratum 1319537 1603c4e8edabSChris Kay - Arm Cortex-A76 1604c4e8edabSChris Kay - Added workaround for erratum 1165522 1605c4e8edabSChris Kay - Added workaround for erratum 1791580 1606c4e8edabSChris Kay - Added workaround for erratum 1868343 1607c4e8edabSChris Kay - Arm Cortex-A72 1608c4e8edabSChris Kay - Added workaround for erratum 1319367 1609c4e8edabSChris Kay - Arm Cortex-A77 1610c4e8edabSChris Kay - Added workaround for erratum 1508412 1611c4e8edabSChris Kay - Added workaround for erratum 1800714 1612c4e8edabSChris Kay - Added workaround for erratum 1925769 1613c4e8edabSChris Kay - Arm Neoverse-N1 1614c4e8edabSChris Kay - Added workaround for erratum 1868343 1615c4e8edabSChris Kay - EL3 Runtime 1616c4e8edabSChris Kay - Added support for saving/restoring registers related to nested 1617c4e8edabSChris Kay virtualization in EL2 context switches if the architecture supports it 1618c4e8edabSChris Kay - FCONF 1619c4e8edabSChris Kay - Added support for Measured Boot 1620c4e8edabSChris Kay - Added support for populating Chain of Trust properties 1621c4e8edabSChris Kay - Added support for loading the `fw_config` image 1622c4e8edabSChris Kay - Measured Boot 1623c4e8edabSChris Kay - Added support for event logging 1624c4e8edabSChris Kay- Platforms 1625c4e8edabSChris Kay - Added support for Arm Morello 1626c4e8edabSChris Kay - Added support for Arm TC0 1627c4e8edabSChris Kay - Added support for iEi PUZZLE-M801 1628c4e8edabSChris Kay - Added support for Marvell OCTEON TX2 T9130 1629c4e8edabSChris Kay - Added support for MediaTek MT8192 1630c4e8edabSChris Kay - Added support for NXP i.MX 8M Nano 1631c4e8edabSChris Kay - Added support for NXP i.MX 8M Plus 1632c4e8edabSChris Kay - Added support for QTI CHIP SC7180 1633c4e8edabSChris Kay - Added support for STM32MP151F 1634c4e8edabSChris Kay - Added support for STM32MP153F 1635c4e8edabSChris Kay - Added support for STM32MP157F 1636c4e8edabSChris Kay - Added support for STM32MP151D 1637c4e8edabSChris Kay - Added support for STM32MP153D 1638c4e8edabSChris Kay - Added support for STM32MP157D 1639c4e8edabSChris Kay - Arm 1640c4e8edabSChris Kay - Added support for platform-owned SPs 1641c4e8edabSChris Kay - Added support for resetting to BL31 1642c4e8edabSChris Kay - Arm FPGA 1643c4e8edabSChris Kay - Added support for Klein 1644c4e8edabSChris Kay - Added support for Matterhorn 1645c4e8edabSChris Kay - Added support for additional CPU clusters 1646c4e8edabSChris Kay - Arm FVP 1647c4e8edabSChris Kay - Added support for performing SDEI platform setup at runtime 1648c4e8edabSChris Kay - Added support for SMCCC's `SMCCC_ARCH_SOC_ID` command 1649c4e8edabSChris Kay - Added an `id` field under the NV-counter node in the device tree to 1650c4e8edabSChris Kay differentiate between trusted and non-trusted NV-counters 1651c4e8edabSChris Kay - Added support for extracting the clock frequency from the timer node in 1652c4e8edabSChris Kay the device tree 1653c4e8edabSChris Kay - Arm Juno 1654c4e8edabSChris Kay - Added support for SMCCC's `SMCCC_ARCH_SOC_ID` command 1655c4e8edabSChris Kay - Arm N1SDP 1656c4e8edabSChris Kay - Added support for cross-chip PCI-e 1657c4e8edabSChris Kay - Marvell 1658c4e8edabSChris Kay - Added support for AVS reduction 1659c4e8edabSChris Kay - Marvell ARMADA 1660c4e8edabSChris Kay - Added support for twin-die combined memory device 1661c4e8edabSChris Kay - Marvell ARMADA A8K 1662c4e8edabSChris Kay - Added support for DDR with 32-bit bus width (both ECC and non-ECC) 1663c4e8edabSChris Kay - Marvell AP806 1664c4e8edabSChris Kay - Added workaround for erratum FE-4265711 1665c4e8edabSChris Kay - Marvell AP807 1666c4e8edabSChris Kay - Added workaround for erratum 3033912 1667c4e8edabSChris Kay - Nvidia Tegra 1668c4e8edabSChris Kay - Added debug printouts indicating SC7 entry sequence completion 1669c4e8edabSChris Kay - Added support for SDEI 1670c4e8edabSChris Kay - Added support for stack protection 1671c4e8edabSChris Kay - Added support for GICv3 1672c4e8edabSChris Kay - Added support for SMCCC's `SMCCC_ARCH_SOC_ID` command 1673c4e8edabSChris Kay - Nvidia Tegra194 1674c4e8edabSChris Kay - Added support for RAS exception handling 1675c4e8edabSChris Kay - Added support for SPM 1676c4e8edabSChris Kay - NXP i.MX 1677c4e8edabSChris Kay - Added support for SDEI 1678c4e8edabSChris Kay - QEMU SBSA 1679c4e8edabSChris Kay - Added support for the Secure Partition Manager 1680c4e8edabSChris Kay - QTI 1681c4e8edabSChris Kay - Added RNG driver 1682c4e8edabSChris Kay - Added SPMI PMIC arbitrator driver 1683c4e8edabSChris Kay - Added support for SMCCC's `SMCCC_ARCH_SOC_ID` command 1684c4e8edabSChris Kay - STM32MP1 1685c4e8edabSChris Kay - Added support for exposing peripheral interfaces to the non-secure world 1686c4e8edabSChris Kay at runtime 1687c4e8edabSChris Kay - Added support for SCMI clock and reset services 1688c4e8edabSChris Kay - Added support for STM32MP15x CPU revision Z 1689c4e8edabSChris Kay - Added support for SMCCC services in `SP_MIN` 1690c4e8edabSChris Kay- Services 1691c4e8edabSChris Kay - Secure Payload Dispatcher 1692c4e8edabSChris Kay - Added a provision to allow clients to retrieve the service UUID 1693c4e8edabSChris Kay - SPMC 1694c4e8edabSChris Kay - Added secondary core endpoint information to the SPMC context structure 1695c4e8edabSChris Kay - SPMD 1696c4e8edabSChris Kay - Added support for booting OP-TEE as a guest S-EL1 Secure Partition on top 1697c4e8edabSChris Kay of Hafnium in S-EL2 1698c4e8edabSChris Kay - Added a provision for handling SPMC messages to register secondary core 1699c4e8edabSChris Kay entry points 1700c4e8edabSChris Kay - Added support for power management operations 1701c4e8edabSChris Kay- Tools 1702c4e8edabSChris Kay - CertCreate 1703c4e8edabSChris Kay - Added support for secure partitions 1704c4e8edabSChris Kay - CertTool 1705c4e8edabSChris Kay - Added support for the `fw_config` image 1706c4e8edabSChris Kay - FIPTool 1707c4e8edabSChris Kay - Added support for the `fw_config` image 1708c4e8edabSChris Kay 1709c4e8edabSChris Kay### Changed 1710c4e8edabSChris Kay 1711c4e8edabSChris Kay- Architecture support 1712c4e8edabSChris Kay- Bootloader images 1713c4e8edabSChris Kay- Build System 1714c4e8edabSChris Kay - The top-level Makefile now supports building FipTool on Windows 1715c4e8edabSChris Kay - The default value of `KEY_SIZE` has been changed to to 2048 when RSA is in 1716c4e8edabSChris Kay use 1717c4e8edabSChris Kay - The previously-deprecated macro `__ASSEMBLY__` has now been removed 1718c4e8edabSChris Kay- Common components 1719c4e8edabSChris Kay - Certain functions that flush the console will no longer return error 1720c4e8edabSChris Kay information 1721c4e8edabSChris Kay- Drivers 1722c4e8edabSChris Kay - Arm GIC 1723c4e8edabSChris Kay - Usage of `drivers/arm/gic/common/gic_common.c` has now been deprecated in 1724c4e8edabSChris Kay favour of `drivers/arm/gic/vX/gicvX.mk` 1725c4e8edabSChris Kay - Added support for detecting the presence of a GIC600-AE 1726c4e8edabSChris Kay - Added support for detecting the presence of a GIC-Clayton 1727c4e8edabSChris Kay - Marvell MCI 1728c4e8edabSChris Kay - Now performs link tuning for all MCI interfaces to improve performance 1729c4e8edabSChris Kay - Marvell MoChi 1730c4e8edabSChris Kay - PIDI masters are no longer forced into a non-secure access level when 1731c4e8edabSChris Kay `LLC_SRAM` is enabled 1732c4e8edabSChris Kay - The SD/MMC controllers are now accessible from guest virtual machines 1733c4e8edabSChris Kay - Mbed TLS 1734c4e8edabSChris Kay - Migrated to Mbed TLS v2.24.0 1735c4e8edabSChris Kay - STM32 FMC2 NAND 1736c4e8edabSChris Kay - Adjusted FMC node bindings to include an EBI controller node 1737c4e8edabSChris Kay - STM32 Reset 1738c4e8edabSChris Kay - Added an optional timeout argument to assertion functions 1739c4e8edabSChris Kay - STM32MP1 Clocks 1740c4e8edabSChris Kay - Enabled several additional system clocks during initialization 1741c4e8edabSChris Kay- Libraries 1742c4e8edabSChris Kay - C Standard Library 1743c4e8edabSChris Kay - Improved `memset` performance by avoiding single-byte writes 1744c4e8edabSChris Kay - Added optimized assembly variants of `memset` 1745c4e8edabSChris Kay - CPU support 1746c4e8edabSChris Kay - Renamed Cortex-Hercules to Cortex-A78 1747c4e8edabSChris Kay - Renamed Cortex-Hercules AE to Cortex-A78 AE 1748c4e8edabSChris Kay - Renamed Neoverse Zeus to Neoverse V1 1749c4e8edabSChris Kay - Coreboot 1750c4e8edabSChris Kay - Updated ‘coreboot_get_memory_type’ API to take an extra argument as a 1751c4e8edabSChris Kay ’memory size’ that used to return a valid memory type. 1752c4e8edabSChris Kay - libfdt 1753c4e8edabSChris Kay - Updated to latest upstream version 1754c4e8edabSChris Kay- Platforms 1755c4e8edabSChris Kay - Allwinner 1756c4e8edabSChris Kay - Disabled non-secure access to PRCM power control registers 1757c4e8edabSChris Kay - Arm 1758c4e8edabSChris Kay - `BL32_BASE` is now platform-dependent when `SPD_spmd` is enabled 1759c4e8edabSChris Kay - Added support for loading the Chain of Trust from the device tree 1760c4e8edabSChris Kay - The firmware update check is now executed only once 1761c4e8edabSChris Kay - NV-counter base addresses are now loaded from the device tree when 1762c4e8edabSChris Kay `COT_DESC_IN_DTB` is enabled 1763c4e8edabSChris Kay - Now loads and populates `fw_config` and `tb_fw_config` 1764c4e8edabSChris Kay - FCONF population now occurs after caches have been enabled in order to 1765c4e8edabSChris Kay reduce boot times 1766c4e8edabSChris Kay - Arm Corstone-700 1767c4e8edabSChris Kay - Platform support has been split into both an FVP and an FPGA variant 1768c4e8edabSChris Kay - Arm FPGA 1769c4e8edabSChris Kay - DTB and BL33 load addresses have been given sensible default values 1770c4e8edabSChris Kay - Now reads generic timer counter frequency, GICD and GICR base addresses, 1771c4e8edabSChris Kay and UART address from DT 1772c4e8edabSChris Kay - Now treats the primary PL011 UART as an SBSA Generic UART 1773c4e8edabSChris Kay - Arm FVP 1774c4e8edabSChris Kay - Secure interrupt descriptions, UART parameters, clock frequencies and 1775c4e8edabSChris Kay GICv3 parameters are now queried through FCONF 1776c4e8edabSChris Kay - UART parameters are now queried through the device tree 1777c4e8edabSChris Kay - Added an owner field to Cactus secure partitions 1778c4e8edabSChris Kay - Increased the maximum size of BL2 when the Chain of Trust is loaded from 1779c4e8edabSChris Kay the device tree 1780c4e8edabSChris Kay - Reduces the maximum size of BL31 1781c4e8edabSChris Kay - The `FVP_USE_SP804_TIMER` and `FVP_VE_USE_SP804_TIMER` build options have 1782c4e8edabSChris Kay been removed in favour of a common `USE_SP804_TIMER` option 1783c4e8edabSChris Kay - Added a third Cactus partition to manifests 1784c4e8edabSChris Kay - Device tree nodes now store UUIDs in big-endian 1785c4e8edabSChris Kay - Arm Juno 1786c4e8edabSChris Kay - Increased the maximum size of BL2 when optimizations have not been applied 1787c4e8edabSChris Kay - Reduced the maximum size of BL31 and BL32 1788c4e8edabSChris Kay - Marvell AP807 1789c4e8edabSChris Kay - Enabled snoop filters 1790c4e8edabSChris Kay - Marvell ARMADA A3K 1791c4e8edabSChris Kay - UART recovery images are now suffixed with `.bin` 1792c4e8edabSChris Kay - Marvell ARMADA A8K 1793c4e8edabSChris Kay - Option `BL31_CACHE_DISABLE` is now disabled (`0`) by default 1794c4e8edabSChris Kay - Nvidia Tegra 1795c4e8edabSChris Kay - Added VPR resize supported check when processing video memory resize 1796c4e8edabSChris Kay requests 1797c4e8edabSChris Kay - Added SMMU verification to prevent potential issues caused by undetected 1798c4e8edabSChris Kay corruption of the SMMU configuration during boot 1799c4e8edabSChris Kay - The GIC CPU interface is now properly disabled after CPU off 1800c4e8edabSChris Kay - The GICv2 sources list and the `BL31_SIZE` definition have been made 1801c4e8edabSChris Kay platform-specific 1802c4e8edabSChris Kay - The SPE driver will no longer flush the console when writing individual 1803c4e8edabSChris Kay characters 1804c4e8edabSChris Kay - Nvidia Tegra194 1805c4e8edabSChris Kay - TZDRAM setup has been moved to platform-specific early boot handlers 1806c4e8edabSChris Kay - Increased verbosity of debug prints for RAS SErrors 1807c4e8edabSChris Kay - Support for powering down CPUs during CPU suspend has been removed 1808c4e8edabSChris Kay - Now verifies firewall settings before using resources 1809c4e8edabSChris Kay - TI K3 1810c4e8edabSChris Kay - The UART number has been made configurable through `K3_USART` 1811c4e8edabSChris Kay - Rockchip RK3368 1812c4e8edabSChris Kay - The maximum number of memory map regions has been increased to 20 1813c4e8edabSChris Kay - Socionext Uniphier 1814c4e8edabSChris Kay - The maximum size of BL33 has been increased to support larger bootloaders 1815c4e8edabSChris Kay - STM32 1816c4e8edabSChris Kay - Removed platform-specific DT functions in favour of using existing generic 1817c4e8edabSChris Kay alternatives 1818c4e8edabSChris Kay - STM32MP1 1819c4e8edabSChris Kay - Increased verbosity of exception reports in debug builds 1820c4e8edabSChris Kay - Device trees have been updated to align with the Linux kernel 1821c4e8edabSChris Kay - Now uses the ETZPC driver to configure secure-aware interfaces for 1822c4e8edabSChris Kay assignment to the non-secure world 1823c4e8edabSChris Kay - Finished good variants have been added to the board identifier 1824c4e8edabSChris Kay enumerations 1825c4e8edabSChris Kay - Non-secure access to clocks and reset domains now depends on their state 1826c4e8edabSChris Kay of registration 1827c4e8edabSChris Kay - NEON is now disabled in `SP_MIN` 1828c4e8edabSChris Kay - The last page of `SYSRAM` is now used as SCMI shared memory 1829c4e8edabSChris Kay - Checks to verify platform compatibility have been added to verify that an 1830c4e8edabSChris Kay image is compatible with the chip ID of the running platform 1831c4e8edabSChris Kay - QEMU SBSA 1832c4e8edabSChris Kay - Removed support for Arm's Cortex-A53 1833c4e8edabSChris Kay- Services 1834c4e8edabSChris Kay - Renamed SPCI to FF-A 1835c4e8edabSChris Kay - SPMD 1836c4e8edabSChris Kay - No longer forwards requests to the non-secure world when retrieving 1837c4e8edabSChris Kay partition information 1838c4e8edabSChris Kay - SPMC manifest size is now retrieved directly from SPMD instead of the 1839c4e8edabSChris Kay device tree 1840c4e8edabSChris Kay - The FF-A version handler now returns SPMD's version when the origin of the 1841c4e8edabSChris Kay call is secure, and SPMC's version when the origin of the call is 1842c4e8edabSChris Kay non-secure 1843c4e8edabSChris Kay - SPMC 1844c4e8edabSChris Kay - Updated the manifest to declare CPU nodes in descending order as per the 1845c4e8edabSChris Kay SPM (Hafnium) multicore requirement 1846c4e8edabSChris Kay - Updated the device tree to mark 2GB as device memory for the first 1847c4e8edabSChris Kay partition excluding trusted DRAM region (which is reserved for SPMC) 1848c4e8edabSChris Kay - Increased the number of EC contexts to the maximum number of PEs as per 1849c4e8edabSChris Kay the FF-A specification 1850c4e8edabSChris Kay- Tools 1851c4e8edabSChris Kay - FIPTool 1852c4e8edabSChris Kay - Now returns `0` on `help` and `help <command>` 1853c4e8edabSChris Kay - Marvell DoImage 1854c4e8edabSChris Kay - Updated Mbed TLS support to v2.8 1855c4e8edabSChris Kay - SPTool 1856c4e8edabSChris Kay - Now appends CertTool arguments 1857c4e8edabSChris Kay 1858c4e8edabSChris Kay### Resolved Issues 1859c4e8edabSChris Kay 1860c4e8edabSChris Kay- Bootloader images 1861c4e8edabSChris Kay - Fixed compilation errors for dual-root Chains of Trust caused by symbol 1862c4e8edabSChris Kay collision 1863c4e8edabSChris Kay - BL31 1864c4e8edabSChris Kay - Fixed compilation errors on platforms with fewer than 4 cores caused by 1865c4e8edabSChris Kay initialization code exceeding the end of the stacks 1866c4e8edabSChris Kay - Fixed compilation errors when building a position-independent image 1867c4e8edabSChris Kay- Build System 1868c4e8edabSChris Kay - Fixed invalid empty version strings 1869c4e8edabSChris Kay - Fixed compilation errors on Windows caused by a non-portable architecture 1870c4e8edabSChris Kay revision comparison 1871c4e8edabSChris Kay- Drivers 1872c4e8edabSChris Kay - Arm GIC 1873c4e8edabSChris Kay - Fixed spurious interrupts caused by a missing barrier 1874c4e8edabSChris Kay - STM32 Flexible Memory Controller 2 (FMC2) NAND driver 1875c4e8edabSChris Kay - Fixed runtime instability caused by incorrect error detection logic 1876c4e8edabSChris Kay - STM32MP1 Clock driver 1877c4e8edabSChris Kay - Fixed incorrectly-formatted log messages 1878c4e8edabSChris Kay - Fixed runtime instability caused by improper clock gating procedures 1879c4e8edabSChris Kay - STMicroelectronics Raw NAND driver 1880c4e8edabSChris Kay - Fixed runtime instability caused by incorrect unit conversion when waiting 1881c4e8edabSChris Kay for NAND readiness 1882c4e8edabSChris Kay- Libraries 1883c4e8edabSChris Kay - AMU 1884c4e8edabSChris Kay - Fixed timeout errors caused by excess error logging 1885c4e8edabSChris Kay - EL3 Runtime 1886c4e8edabSChris Kay - Fixed runtime instability caused by improper register save/restore routine 1887c4e8edabSChris Kay in EL2 1888c4e8edabSChris Kay - FCONF 1889c4e8edabSChris Kay - Fixed failure to initialize GICv3 caused by overly-strict device tree 1890c4e8edabSChris Kay requirements 1891c4e8edabSChris Kay - Measured Boot 1892c4e8edabSChris Kay - Fixed driver errors caused by a missing default value for the `HASH_ALG` 1893c4e8edabSChris Kay build option 1894c4e8edabSChris Kay - SPE 1895c4e8edabSChris Kay - Fixed feature detection check that prevented CPUs supporting SVE from 1896c4e8edabSChris Kay detecting support for SPE in the non-secure world 1897c4e8edabSChris Kay - Translation Tables 1898c4e8edabSChris Kay - Fixed various MISRA-C 2012 static analysis violations 1899c4e8edabSChris Kay- Platforms 1900c4e8edabSChris Kay - Allwinner A64 1901c4e8edabSChris Kay - Fixed USB issues on certain battery-powered device caused by improperly 1902c4e8edabSChris Kay activated USB power rail 1903c4e8edabSChris Kay - Arm 1904c4e8edabSChris Kay - Fixed compilation errors caused by increase in BL2 size 1905c4e8edabSChris Kay - Fixed compilation errors caused by missing Makefile dependencies to 1906c4e8edabSChris Kay generated files when building the FIP 1907c4e8edabSChris Kay - Fixed MISRA-C 2012 static analysis violations caused by unused structures 1908c4e8edabSChris Kay in include directives intended to be feature-gated 1909c4e8edabSChris Kay - Arm FPGA 1910c4e8edabSChris Kay - Fixed initialization issues caused by incorrect MPIDR topology mapping 1911c4e8edabSChris Kay logic 1912c4e8edabSChris Kay - Arm RD-N1-edge 1913c4e8edabSChris Kay - Fixed compilation errors caused by mismatched parentheses in Makefile 1914c4e8edabSChris Kay - Arm SGI 1915c4e8edabSChris Kay - Fixed crashes due to the flash memory used for cold reboot attack 1916c4e8edabSChris Kay protection not being mapped 1917c4e8edabSChris Kay - Intel Agilex 1918c4e8edabSChris Kay - Fixed initialization issues caused by several compounding bugs 1919c4e8edabSChris Kay - Marvell 1920c4e8edabSChris Kay - Fixed compilation warnings caused by multiple Makefile inclusions 1921c4e8edabSChris Kay - Marvell ARMADA A3K 1922c4e8edabSChris Kay - Fixed boot issue in debug builds caused by checks on the BL33 load address 1923c4e8edabSChris Kay that are not appropriate for this platform 1924c4e8edabSChris Kay - Nvidia Tegra 1925c4e8edabSChris Kay - Fixed incorrect delay timer reads 1926c4e8edabSChris Kay - Fixed spurious interrupts in the non-secure world during cold boot caused 1927c4e8edabSChris Kay by the arbitration bit in the memory controller not being cleared 1928c4e8edabSChris Kay - Fixed faulty video memory resize sequence 1929c4e8edabSChris Kay - Nvidia Tegra194 1930c4e8edabSChris Kay - Fixed incorrect alignment of TZDRAM base address 1931c4e8edabSChris Kay - NXP iMX8M 1932c4e8edabSChris Kay - Fixed CPU hot-plug issues caused by race condition 1933c4e8edabSChris Kay - STM32MP1 1934c4e8edabSChris Kay - Fixed compilation errors in highly-parallel builds caused by incorrect 1935c4e8edabSChris Kay Makefile dependencies 1936c4e8edabSChris Kay - STM32MP157C-ED1 1937c4e8edabSChris Kay - Fixed initialization issues caused by missing device tree hash node 1938c4e8edabSChris Kay - Raspberry Pi 3 1939c4e8edabSChris Kay - Fixed compilation errors caused by incorrect dependency ordering in 1940c4e8edabSChris Kay Makefile 1941c4e8edabSChris Kay - Rockchip 1942c4e8edabSChris Kay - Fixed initialization issues caused by non-critical errors when parsing FDT 1943c4e8edabSChris Kay being treated as critical 1944c4e8edabSChris Kay - Rockchip RK3368 1945c4e8edabSChris Kay - Fixed runtime instability caused by incorrect CPUID shift value 1946c4e8edabSChris Kay - QEMU 1947c4e8edabSChris Kay - Fixed compilation errors caused by incorrect dependency ordering in 1948c4e8edabSChris Kay Makefile 1949c4e8edabSChris Kay - QEMU SBSA 1950c4e8edabSChris Kay - Fixed initialization issues caused by FDT exceeding reserved memory size 1951c4e8edabSChris Kay - QTI 1952c4e8edabSChris Kay - Fixed compilation errors caused by inclusion of a non-existent file 1953c4e8edabSChris Kay- Services 1954c4e8edabSChris Kay - FF-A (previously SPCI) 1955c4e8edabSChris Kay - Fixed SPMD aborts caused by incorrect behaviour when the manifest is 1956c4e8edabSChris Kay page-aligned 1957c4e8edabSChris Kay- Tools 1958c4e8edabSChris Kay - Fixed compilation issues when compiling tools from within their respective 1959c4e8edabSChris Kay directories 1960c4e8edabSChris Kay - FIPTool 1961c4e8edabSChris Kay - Fixed command line parsing issues on Windows when using arguments whose 1962c4e8edabSChris Kay names also happen to be a subset of another's 1963c4e8edabSChris Kay - Marvell DoImage 1964c4e8edabSChris Kay - Fixed PKCS signature verification errors at boot on some platforms caused 1965c4e8edabSChris Kay by generation of misaligned images 1966c4e8edabSChris Kay 1967c4e8edabSChris Kay### Known Issues 1968c4e8edabSChris Kay 1969c4e8edabSChris Kay- Platforms 1970c4e8edabSChris Kay - NVIDIA Tegra 1971c4e8edabSChris Kay - Signed comparison compiler warnings occurring in libfdt are currently 1972c4e8edabSChris Kay being worked around by disabling the warning for the platform until the 1973c4e8edabSChris Kay underlying issue is resolved in libfdt 1974c4e8edabSChris Kay 1975c4e8edabSChris Kay## 2.3 (2020-04-20) 1976c4e8edabSChris Kay 1977c4e8edabSChris Kay### New Features 1978c4e8edabSChris Kay 1979c4e8edabSChris Kay- Arm Architecture 1980c4e8edabSChris Kay - Add support for Armv8.4-SecEL2 extension through the SPCI defined SPMD/SPMC 1981c4e8edabSChris Kay components. 1982c4e8edabSChris Kay - Build option to support EL2 context save and restore in the secure world 1983c4e8edabSChris Kay (CTX_INCLUDE_EL2_REGS). 1984c4e8edabSChris Kay - Add support for SMCCC v1.2 (introducing the new SMCCC_ARCH_SOC_ID SMC). Note 1985c4e8edabSChris Kay that the support is compliant, but the SVE registers save/restore will be 1986c4e8edabSChris Kay done as part of future S-EL2/SPM development. 1987c4e8edabSChris Kay- BL-specific 1988c4e8edabSChris Kay - Enhanced BL2 bootloader flow to load secure partitions based on firmware 1989c4e8edabSChris Kay configuration data (fconf). 1990c4e8edabSChris Kay - Changes necessary to support SEPARATE_NOBITS_REGION feature 1991c4e8edabSChris Kay - TSP and BL2_AT_EL3: Add Position Independent Execution `PIE` support 1992c4e8edabSChris Kay- Build System 1993c4e8edabSChris Kay - Add support for documentation build as a target in Makefile 1994c4e8edabSChris Kay - Add `COT` build option to select the Chain of Trust to use when the Trusted 1995c4e8edabSChris Kay Boot feature is enabled (default: `tbbr`). 1996c4e8edabSChris Kay - Added creation and injection of secure partition packages into the FIP. 1997c4e8edabSChris Kay - Build option to support SPMC component loading and run at S-EL1 or S-EL2 1998c4e8edabSChris Kay (SPMD_SPM_AT_SEL2). 1999c4e8edabSChris Kay - Enable MTE support 2000c4e8edabSChris Kay - Enable Link Time Optimization in GCC 2001c4e8edabSChris Kay - Enable -Wredundant-decls warning check 2002c4e8edabSChris Kay - Makefile: Add support to optionally encrypt BL31 and BL32 2003c4e8edabSChris Kay - Add support to pass the nt_fw_config DTB to OP-TEE. 2004c4e8edabSChris Kay - Introduce per-BL `CPPFLAGS`, `ASFLAGS`, and `LDFLAGS` 2005c4e8edabSChris Kay - build_macros: Add CREATE_SEQ function to generate sequence of numbers 2006c4e8edabSChris Kay- CPU Support 2007c4e8edabSChris Kay - cortex-a57: Enable higher performance non-cacheable load forwarding 2008c4e8edabSChris Kay - Hercules: Workaround for Errata 1688305 2009c4e8edabSChris Kay - Klein: Support added for Klein CPU 2010c4e8edabSChris Kay - Matterhorn: Support added for Matterhorn CPU 2011c4e8edabSChris Kay- Drivers 2012c4e8edabSChris Kay - auth: Add `calc_hash` function for hash calculation. Used for authentication 2013c4e8edabSChris Kay of images when measured boot is enabled. 2014c4e8edabSChris Kay - cryptocell: Add authenticated decryption framework, and support for 2015c4e8edabSChris Kay CryptoCell-713 and CryptoCell-712 RSA 3K 2016c4e8edabSChris Kay - gic600: Add support for multichip configuration and Clayton 2017c4e8edabSChris Kay - gicv3: Introduce makefile, Add extended PPI and SPI range, Add support for 2018c4e8edabSChris Kay probing multiple GIC Redistributor frames 2019c4e8edabSChris Kay - gicv4: Add GICv4 extension for GIC driver 2020c4e8edabSChris Kay - io: Add an IO abstraction layer to load encrypted firmwares 2021c4e8edabSChris Kay - mhu: Derive doorbell base address 2022c4e8edabSChris Kay - mtd: Add SPI-NOR, SPI-NAND, SPI-MEM, and raw NAND framework 2023c4e8edabSChris Kay - scmi: Allow use of multiple SCMI channels 2024c4e8edabSChris Kay - scu: Add a driver for snoop control unit 2025c4e8edabSChris Kay- Libraries 2026c4e8edabSChris Kay - coreboot: Add memory range parsing and use generic base address 2027c4e8edabSChris Kay - compiler_rt: Import popcountdi2.c and popcountsi2.c files, aeabi_ldivmode.S 2028c4e8edabSChris Kay file and dependencies 2029c4e8edabSChris Kay - debugFS: Add DebugFS functionality 2030c4e8edabSChris Kay - el3_runtime: Add support for enabling S-EL2 2031c4e8edabSChris Kay - fconf: Add Firmware Configuration Framework (fconf) (experimental). 2032c4e8edabSChris Kay - libc: Add memrchr function 2033c4e8edabSChris Kay - locks: bakery: Use is_dcache_enabled() helper and add a DMB to the 2034c4e8edabSChris Kay 'read_cache_op' macro 2035c4e8edabSChris Kay - psci: Add support to enable different personality of the same soc. 2036c4e8edabSChris Kay - xlat_tables_v2: Add support to pass shareability attribute for normal memory 2037c4e8edabSChris Kay region, use get_current_el_maybe_constant() in is_dcache_enabled(), 2038c4e8edabSChris Kay read-only xlat tables for BL31 memory, and add enable_mmu() 2039c4e8edabSChris Kay- New Platforms Support 2040c4e8edabSChris Kay - arm/arm_fpga: New platform support added for FPGA 2041c4e8edabSChris Kay - arm/rddaniel: New platform support added for rd-daniel platform 2042c4e8edabSChris Kay - brcm/stingray: New platform support added for Broadcom stingray platform 2043c4e8edabSChris Kay - nvidia/tegra194: New platform support for Nvidia Tegra194 platform 2044c4e8edabSChris Kay- Platforms 2045c4e8edabSChris Kay - allwinner: Implement PSCI system suspend using SCPI, add a msgbox driver for 2046c4e8edabSChris Kay use with SCPI, and reserve and map space for the SCP firmware 2047c4e8edabSChris Kay - allwinner: axp: Add AXP805 support 2048c4e8edabSChris Kay - allwinner: power: Add DLDO4 power rail 2049c4e8edabSChris Kay - amlogic: axg: Add a build flag when using ATOS as BL32 and support for the 2050c4e8edabSChris Kay A113D (AXG) platform 2051c4e8edabSChris Kay - arm/a5ds: Add ethernet node and L2 cache node in devicetree 2052c4e8edabSChris Kay - arm/common: Add support for the new `dualroot` chain of trust 2053c4e8edabSChris Kay - arm/common: Add support for SEPARATE_NOBITS_REGION 2054c4e8edabSChris Kay - arm/common: Re-enable PIE when RESET_TO_BL31=1 2055c4e8edabSChris Kay - arm/common: Allow boards to specify second DRAM Base address and to define 2056c4e8edabSChris Kay PLAT_ARM_TZC_FILTERS 2057c4e8edabSChris Kay - arm/corstone700: Add support for mhuv2 and stack protector 2058c4e8edabSChris Kay - arm/fvp: Add support for fconf in BL31 and SP_MIN. Populate power domain 2059c4e8edabSChris Kay descriptor dynamically by leveraging fconf APIs. 2060c4e8edabSChris Kay - arm/fvp: Add Cactus/Ivy Secure Partition information and use two instances 2061c4e8edabSChris Kay of Cactus at S-EL1 2062c4e8edabSChris Kay - arm/fvp: Add support to run BL32 in TDRAM and BL31 in secure DRAM 2063c4e8edabSChris Kay - arm/fvp: Add support for GICv4 extension and BL2 hash calculation in BL1 2064c4e8edabSChris Kay - arm/n1sdp: Setup multichip gic routing table, update platform macros for 2065c4e8edabSChris Kay dual-chip setup, introduce platform information SDS region, add support to 2066c4e8edabSChris Kay update presence of External LLC, and enable the NEOVERSE_N1_EXTERNAL_LLC 2067c4e8edabSChris Kay flag 2068c4e8edabSChris Kay - arm/rdn1edge: Add support for dual-chip configuration and use CREATE_SEQ 2069c4e8edabSChris Kay helper macro to compare chip count 2070c4e8edabSChris Kay - arm/sgm: Always use SCMI for SGM platforms 2071c4e8edabSChris Kay - arm/sgm775: Add support for dynamic config using fconf 2072c4e8edabSChris Kay - arm/sgi: Add multi-chip mode parameter in HW_CONFIG dts, macros for remote 2073c4e8edabSChris Kay chip device region, chip_id and multi_chip_mode to platform variant info, 2074c4e8edabSChris Kay and introduce number of chips macro 2075c4e8edabSChris Kay - brcm: Add BL2 and BL31 support common across Broadcom platforms 2076c4e8edabSChris Kay - brcm: Add iproc SPI Nor flash support, spi driver, emmc driver, and support 2077c4e8edabSChris Kay to retrieve plat_toc_flags 2078c4e8edabSChris Kay - hisilicon: hikey960: Enable system power off callback 2079c4e8edabSChris Kay - intel: Enable bridge access, SiP SMC secure register access, and uboot 2080c4e8edabSChris Kay entrypoint support 2081c4e8edabSChris Kay - intel: Implement platform specific system reset 2 2082c4e8edabSChris Kay - intel: Introduce mailbox response length handling 2083c4e8edabSChris Kay - imx: console: Use CONSOLE_T_BASE for UART base address and generic console_t 2084c4e8edabSChris Kay data structure 2085c4e8edabSChris Kay - imx8mm: Provide uart base as build option and add the support for opteed spd 2086c4e8edabSChris Kay on imx8mq/imx8mm 2087c4e8edabSChris Kay - imx8qx: Provide debug uart num as build 2088c4e8edabSChris Kay - imx8qm: Apply clk/pinmux configuration for DEBUG_CONSOLE and provide debug 2089c4e8edabSChris Kay uart num as build param 2090c4e8edabSChris Kay - marvell: a8k: Implement platform specific power off and add support for 2091c4e8edabSChris Kay loading MG CM3 images 2092c4e8edabSChris Kay - mediatek: mt8183: Add Vmodem/Vcore DVS init level 2093c4e8edabSChris Kay - qemu: Support optional encryption of BL31 and BL32 images and 2094c4e8edabSChris Kay ARM_LINUX_KERNEL_AS_BL33 to pass FDT address 2095c4e8edabSChris Kay - qemu: Define ARMV7_SUPPORTS_VFP 2096c4e8edabSChris Kay - qemu: Implement PSCI_CPU_OFF and qemu_system_off via semihosting 2097c4e8edabSChris Kay - renesas: rcar_gen3: Add new board revision for M3ULCB 2098c4e8edabSChris Kay - rockchip: Enable workaround for erratum 855873, claim a macro to enable hdcp 2099c4e8edabSChris Kay feature for DP, enable power domains of rk3399 before reset, add support for 2100c4e8edabSChris Kay UART3 as serial output, and initialize reset and poweroff GPIOs with known 2101c4e8edabSChris Kay invalid value 2102c4e8edabSChris Kay - rpi: Implement PSCI CPU_OFF, use MMIO accessor, autodetect Mini-UART vs. 2103c4e8edabSChris Kay PL011 configuration, and allow using PL011 UART for RPi3/RPi4 2104c4e8edabSChris Kay - rpi3: Include GPIO driver in all BL stages and use same "clock-less" setup 2105c4e8edabSChris Kay scheme as RPi4 2106c4e8edabSChris Kay - rpi3/4: Add support for offlining CPUs 2107c4e8edabSChris Kay - st: stm32mp1: platform.mk: Support generating multiple images in one build, 2108c4e8edabSChris Kay migrate to implicit rules, derive map file name from target name, generate 2109c4e8edabSChris Kay linker script with fixed name, and use PHONY for the appropriate targets 2110c4e8edabSChris Kay - st: stm32mp1: Add support for SPI-NOR, raw NAND, and SPI-NAND boot device, 2111c4e8edabSChris Kay QSPI, FMC2 driver 2112c4e8edabSChris Kay - st: stm32mp1: Use stm32mp_get_ddr_ns_size() function, set XN attribute for 2113c4e8edabSChris Kay some areas in BL2, dynamically map DDR later and non-cacheable during its 2114c4e8edabSChris Kay test, add a function to get non-secure DDR size, add DT helper for reg by 2115c4e8edabSChris Kay name, and add compilation flags for boot devices 2116c4e8edabSChris Kay - socionext: uniphier: Turn on ENABLE_PIE 2117c4e8edabSChris Kay - ti: k3: Add PIE support 2118c4e8edabSChris Kay - xilinx: versal: Add set wakeup source, client wakeup, query data, request 2119c4e8edabSChris Kay wakeup, PM_INIT_FINALIZE, PM_GET_TRUSTZONE_VERSION, PM IOCTL, support for 2120c4e8edabSChris Kay suspend related, and Get_ChipID APIs 2121c4e8edabSChris Kay - xilinx: versal: Implement power down/restart related EEMI, SMC handler for 2122c4e8edabSChris Kay EEMI, PLL related PM, clock related PM, pin control related PM, reset 2123c4e8edabSChris Kay related PM, device related PM , APIs 2124c4e8edabSChris Kay - xilinx: versal: Enable ipi mailbox service 2125c4e8edabSChris Kay - xilinx: versal: Add get_api_version support and support to send PM API to 2126c4e8edabSChris Kay PMC using IPI 2127c4e8edabSChris Kay - xilinx: zynqmp: Add checksum support for IPI data, GET_CALLBACK_DATA 2128c4e8edabSChris Kay function, support to query max divisor, CLK_SET_RATE_PARENT in gem clock 2129c4e8edabSChris Kay node, support for custom type flags, LPD WDT clock to the pm_clock 2130c4e8edabSChris Kay structure, idcodes for new RFSoC silicons ZU48DR and ZU49DR, and id for new 2131c4e8edabSChris Kay RFSoC device ZU39DR 2132c4e8edabSChris Kay- Security 2133c4e8edabSChris Kay - Use Speculation Barrier instruction for v8.5+ cores 2134c4e8edabSChris Kay - Add support for optional firmware encryption feature (experimental). 2135c4e8edabSChris Kay - Introduce a new `dualroot` chain of trust. 2136c4e8edabSChris Kay - aarch64: Prevent speculative execution past ERET 2137c4e8edabSChris Kay - aarch32: Stop speculative execution past exception returns. 2138c4e8edabSChris Kay- SPCI 2139c4e8edabSChris Kay - Introduced the Secure Partition Manager Dispatcher (SPMD) component as a new 2140c4e8edabSChris Kay standard service. 2141c4e8edabSChris Kay- Tools 2142c4e8edabSChris Kay - cert_create: Introduce CoT build option and TBBR CoT makefile, and define 2143c4e8edabSChris Kay the dualroot CoT 2144c4e8edabSChris Kay - encrypt_fw: Add firmware authenticated encryption tool 2145c4e8edabSChris Kay - memory: Add show_memory script that prints a representation of the memory 2146c4e8edabSChris Kay layout for the latest build 2147c4e8edabSChris Kay 2148c4e8edabSChris Kay### Changed 2149c4e8edabSChris Kay 2150c4e8edabSChris Kay- Arm Architecture 2151c4e8edabSChris Kay - PIE: Make call to GDT relocation fixup generalized 2152c4e8edabSChris Kay- BL-Specific 2153c4e8edabSChris Kay - Increase maximum size of BL2 image 2154c4e8edabSChris Kay - BL31: Discard .dynsym .dynstr .hash sections to make ENABLE_PIE work 2155c4e8edabSChris Kay - BL31: Split into two separate memory regions 2156c4e8edabSChris Kay - Unify BL linker scripts and reduce code duplication. 2157c4e8edabSChris Kay- Build System 2158c4e8edabSChris Kay - Changes to drive cert_create for dualroot CoT 2159c4e8edabSChris Kay - Enable -Wlogical-op always 2160c4e8edabSChris Kay - Enable -Wshadow always 2161c4e8edabSChris Kay - Refactor the warning flags 2162c4e8edabSChris Kay - PIE: Pass PIE options only to BL31 2163c4e8edabSChris Kay - Reduce space lost to object alignment 2164c4e8edabSChris Kay - Set lld as the default linker for Clang builds 2165c4e8edabSChris Kay - Remove -Wunused-const-variable and -Wpadded warning 2166c4e8edabSChris Kay - Remove -Wmissing-declarations warning from WARNING1 level 2167c4e8edabSChris Kay- Drivers 2168c4e8edabSChris Kay - authentication: Necessary fix in drivers to upgrade to mbedtls-2.18.0 2169c4e8edabSChris Kay - console: Integrate UART base address in generic console_t 2170c4e8edabSChris Kay - gicv3: Change API for GICR_IPRIORITYR accessors and separate GICD and GICR 2171c4e8edabSChris Kay accessor functions 2172c4e8edabSChris Kay - io: Change seek offset to signed long long and panic in case of io setup 2173c4e8edabSChris Kay failure 2174c4e8edabSChris Kay - smmu: SMMUv3: Changed retry loop to delay timer 2175c4e8edabSChris Kay - tbbr: Reduce size of hash and ECDSA key buffers when possible 2176c4e8edabSChris Kay- Library Code 2177c4e8edabSChris Kay - libc: Consolidate the size_t, unified, and NULL definitions, and unify 2178c4e8edabSChris Kay intmax_t and uintmax_t on AArch32/64 2179c4e8edabSChris Kay - ROMLIB: Optimize memory layout when ROMLIB is used 2180c4e8edabSChris Kay - xlat_tables_v2: Use ARRAY_SIZE in REGISTER_XLAT_CONTEXT_FULL_SPEC, merge 2181c4e8edabSChris Kay REGISTER_XLAT_CONTEXT\_{FULL_SPEC,RO_BASE_TABLE}, and simplify end address 2182c4e8edabSChris Kay checks in mmap_add_region_check() 2183c4e8edabSChris Kay- Platforms 2184c4e8edabSChris Kay - allwinner: Adjust SRAM A2 base to include the ARISC vectors, clean up MMU 2185c4e8edabSChris Kay setup, reenable USE_COHERENT_MEM, remove unused include path, move the 2186c4e8edabSChris Kay NOBITS region to SRAM A1, convert AXP803 regulator setup code into a driver, 2187c4e8edabSChris Kay enable clock before resetting I2C/RSB 2188c4e8edabSChris Kay - allwinner: h6: power: Switch to using the AXP driver 2189c4e8edabSChris Kay - allwinner: a64: power: Use fdt_for_each_subnode, remove obsolete register 2190c4e8edabSChris Kay check, remove duplicate DT check, and make sunxi_turn_off_soc static 2191c4e8edabSChris Kay - allwinner: Build PMIC bus drivers only in BL31, clean up PMIC-related error 2192c4e8edabSChris Kay handling, and synchronize PMIC enumerations 2193c4e8edabSChris Kay - arm/a5ds: Change boot address to point to DDR address 2194c4e8edabSChris Kay - arm/common: Check for out-of-bound accesses in the platform io policies 2195c4e8edabSChris Kay - arm/corstone700: Updating the kernel arguments to support initramfs, use 2196c4e8edabSChris Kay fdts DDR memory and XIP rootfs, and set UART clocks to 32MHz 2197c4e8edabSChris Kay - arm/fvp: Modify multithreaded dts file of DynamIQ FVPs, slightly bump the 2198c4e8edabSChris Kay stack size for bl1 and bl2, remove re-definition of topology related build 2199c4e8edabSChris Kay options, stop reclaiming init code with Clang builds, and map only the 2200c4e8edabSChris Kay needed DRAM region statically in BL31/SP_MIN 2201c4e8edabSChris Kay - arm/juno: Maximize space allocated to SCP_BL2 2202c4e8edabSChris Kay - arm/sgi: Bump bl1 RW limit, mark remote chip shared ram as non-cacheable, 2203c4e8edabSChris Kay move GIC related constants to board files, include AFF3 affinity in core 2204c4e8edabSChris Kay position calculation, move bl31_platform_setup to board file, and move 2205c4e8edabSChris Kay topology information to board folder 2206c4e8edabSChris Kay - common: Refactor load_auth_image_internal(). 2207c4e8edabSChris Kay - hisilicon: Remove uefi-tools in hikey and hikey960 documentation 2208c4e8edabSChris Kay - intel: Modify non secure access function, BL31 address mapping, mailbox's 2209c4e8edabSChris Kay get_config_status, and stratix10 BL31 parameter handling 2210c4e8edabSChris Kay - intel: Remove un-needed checks for qspi driver r/w and s10 unused source 2211c4e8edabSChris Kay code 2212c4e8edabSChris Kay - intel: Change all global sip function to static 2213c4e8edabSChris Kay - intel: Refactor common platform code 2214c4e8edabSChris Kay - intel: Create SiP service header file 2215c4e8edabSChris Kay - marvell: armada: scp_bl2: Allow loading up to 8 images 2216c4e8edabSChris Kay - marvell: comphy-a3700: Support SGMII COMPHY power off and fix USB3 powering 2217c4e8edabSChris Kay on when on lane 2 2218c4e8edabSChris Kay - marvell: Consolidate console register calls 2219c4e8edabSChris Kay - mediatek: mt8183: Protect 4GB~8GB dram memory, refine GIC driver for low 2220c4e8edabSChris Kay power scenarios, and switch PLL/CLKSQ/ck_off/axi_26m control to SPM 2221c4e8edabSChris Kay - qemu: Update flash address map to keep FIP in secure FLASH0 2222c4e8edabSChris Kay - renesas: rcar_gen3: Update IPL and Secure Monitor Rev.2.0.6, update DDR 2223c4e8edabSChris Kay setting for H3, M3, M3N, change fixed destination address of BL31 and BL32, 2224c4e8edabSChris Kay add missing #{address,size}-cells into generated DT, pass DT to OpTee OS, 2225c4e8edabSChris Kay and move DDR drivers out of staging 2226c4e8edabSChris Kay - rockchip: Make miniloader ddr_parameter handling optional, cleanup securing 2227c4e8edabSChris Kay of ddr regions, move secure init to separate file, use base+size for secure 2228c4e8edabSChris Kay ddr regions, bring TZRAM_SIZE values in lined, and prevent macro expansion 2229c4e8edabSChris Kay in paths 2230c4e8edabSChris Kay - rpi: Move plat_helpers.S to common 2231c4e8edabSChris Kay - rpi3: gpio: Simplify GPIO setup 2232c4e8edabSChris Kay - rpi4: Skip UART initialisation 2233c4e8edabSChris Kay - st: stm32m1: Use generic console_t data structure, remove second QSPI flash 2234c4e8edabSChris Kay instance, update for FMC2 pin muxing, and reduce MAX_XLAT_TABLES to 4 2235c4e8edabSChris Kay - socionext: uniphier: Make on-chip SRAM and I/O register regions configurable 2236c4e8edabSChris Kay - socionext: uniphier: Make PSCI related, counter control, UART, pinmon, NAND 2237c4e8edabSChris Kay controller, and eMMC controller base addresses configurable 2238c4e8edabSChris Kay - socionext: uniphier: Change block_addressing flag and the return value type 2239c4e8edabSChris Kay of .is_usb_boot() to bool 2240c4e8edabSChris Kay - socionext: uniphier: Run BL33 at EL2, call uniphier_scp_is_running() only 2241c4e8edabSChris Kay when on-chip STM is supported, define PLAT_XLAT_TABLES_DYNAMIC only for BL2, 2242c4e8edabSChris Kay support read-only xlat tables, use enable_mmu() in common function, shrink 2243c4e8edabSChris Kay UNIPHIER_ROM_REGION_SIZE, prepare uniphier_soc_info() for next SoC, extend 2244c4e8edabSChris Kay boot device detection for future SoCs, make all BL images completely 2245c4e8edabSChris Kay position-independent, make uniphier_mmap_setup() work with PIE, pass SCP 2246c4e8edabSChris Kay base address as a function parameter, set buffer offset and length for 2247c4e8edabSChris Kay io_block dynamically, and use more mmap_add_dynamic_region() for loading 2248c4e8edabSChris Kay images 2249c4e8edabSChris Kay - spd/trusty: Disable error messages seen during boot, allow gic base to be 2250c4e8edabSChris Kay specified with GICD_BASE, and allow getting trusty memsize from 2251c4e8edabSChris Kay BL32_MEM_SIZE instead of TSP_SEC_MEM_SIZE 2252c4e8edabSChris Kay - ti: k3: common: Enable ARM cluster power down and rename device IDs to be 2253c4e8edabSChris Kay more consistent 2254c4e8edabSChris Kay - ti: k3: drivers: ti_sci: Put sequence number in coherent memory and remove 2255c4e8edabSChris Kay indirect structure of const data 2256c4e8edabSChris Kay - xilinx: Move ipi mailbox svc to xilinx common 2257c4e8edabSChris Kay - xilinx: zynqmp: Use GIC framework for warm restart 2258c4e8edabSChris Kay - xilinx: zynqmp: pm: Move custom clock flags to typeflags, remove 2259c4e8edabSChris Kay CLK_TOPSW_LSBUS from invalid clock list and rename FPD WDT clock ID 2260c4e8edabSChris Kay - xilinx: versal: Increase OCM memory size for DEBUG builds and adjust cpu 2261c4e8edabSChris Kay clock, Move versal_def.h and versal_private to include directory 2262c4e8edabSChris Kay- Tools 2263c4e8edabSChris Kay - sptool: Updated sptool to accommodate building secure partition packages. 2264c4e8edabSChris Kay 2265c4e8edabSChris Kay### Resolved Issues 2266c4e8edabSChris Kay 2267c4e8edabSChris Kay- Arm Architecture 2268c4e8edabSChris Kay - Fix crash dump for lower EL 2269c4e8edabSChris Kay- BL-Specific 2270c4e8edabSChris Kay - Bug fix: Protect TSP prints with lock 2271c4e8edabSChris Kay - Fix boot failures on some builds linked with ld.lld. 2272c4e8edabSChris Kay- Build System 2273c4e8edabSChris Kay - Fix clang build if CC is not in the path. 2274c4e8edabSChris Kay - Fix 'BL stage' comment for build macros 2275c4e8edabSChris Kay- Code Quality 2276c4e8edabSChris Kay - coverity: Fix various MISRA violations including null pointer violations, C 2277c4e8edabSChris Kay issues in BL1/BL2/BL31 and FDT helper functions, using boolean essential, 2278c4e8edabSChris Kay type, and removing unnecessary header file and comparisons to LONG_MAX in 2279c4e8edabSChris Kay debugfs devfip 2280c4e8edabSChris Kay - Based on coding guidelines, replace all `unsigned long` depending on if 2281c4e8edabSChris Kay fixed based on AArch32 or AArch64. 2282c4e8edabSChris Kay - Unify type of "cpu_idx" and Platform specific defines across PSCI module. 2283c4e8edabSChris Kay- Drivers 2284c4e8edabSChris Kay - auth: Necessary fix in drivers to upgrade to mbedtls-2.18.0 2285c4e8edabSChris Kay - delay_timer: Fix non-standard frequency issue in udelay 2286c4e8edabSChris Kay - gicv3: Fix compiler dependent behavior 2287c4e8edabSChris Kay - gic600: Fix include ordering according to the coding style and power up 2288c4e8edabSChris Kay sequence 2289c4e8edabSChris Kay- Library Code 2290c4e8edabSChris Kay - el3_runtime: Fix stack pointer maintenance on EA handling path, fixup 2291c4e8edabSChris Kay 'cm_setup_context' prototype, and adds TPIDR_EL2 register to the context 2292c4e8edabSChris Kay save restore routines 2293c4e8edabSChris Kay - libc: Fix SIZE_MAX on AArch32 2294c4e8edabSChris Kay - locks: T589: Fix insufficient ordering guarantees in bakery lock 2295c4e8edabSChris Kay - pmf: Fix 'tautological-constant-compare' error, Make the runtime 2296c4e8edabSChris Kay instrumentation work on AArch32, and Simplify PMF helper macro definitions 2297c4e8edabSChris Kay across header files 2298c4e8edabSChris Kay - xlat_tables_v2: Fix assembler warning of PLAT_RO_XLAT_TABLES 2299c4e8edabSChris Kay- Platforms 2300c4e8edabSChris Kay - allwinner: Fix H6 GPIO and CCU memory map addresses and incorrect ARISC code 2301c4e8edabSChris Kay patch offset check 2302c4e8edabSChris Kay - arm/a5ds: Correct system freq and Cache Writeback Granule, and cleanup 2303c4e8edabSChris Kay enable-method in devicetree 2304c4e8edabSChris Kay - arm/fvp: Fix incorrect GIC mapping, BL31 load address and image size for 2305c4e8edabSChris Kay RESET_TO_BL31=1, topology description of cpus for DynamIQ based FVP, and 2306c4e8edabSChris Kay multithreaded FVP power domain tree 2307c4e8edabSChris Kay - arm/fvp: spm-mm: Correcting instructions to build SPM for FVP 2308c4e8edabSChris Kay - arm/common: Fix ROTPK hash generation for ECDSA encryption, BL2 bug in 2309c4e8edabSChris Kay dynamic configuration initialisation, and current RECLAIM_INIT_CODE behavior 2310c4e8edabSChris Kay - arm/rde1edge: Fix incorrect topology tree description 2311c4e8edabSChris Kay - arm/sgi: Fix the incorrect check for SCMI channel ID 2312c4e8edabSChris Kay - common: Flush dcache when storing timestamp 2313c4e8edabSChris Kay - intel: Fix UEFI decompression issue, memory calibration, SMC SIP service, 2314c4e8edabSChris Kay mailbox config return status, mailbox driver logic, FPGA manager on 2315c4e8edabSChris Kay reconfiguration, and mailbox send_cmd issue 2316c4e8edabSChris Kay - imx: Fix shift-overflow errors, the rdc memory region slot's offset, 2317c4e8edabSChris Kay multiple definition of ipc_handle, missing inclusion of cdefs.h, and correct 2318c4e8edabSChris Kay the SGIs that used for secure interrupt 2319c4e8edabSChris Kay - mediatek: mt8183: Fix AARCH64 init fail on CPU0 2320c4e8edabSChris Kay - rockchip: Fix definition of struct param_ddr_usage 2321c4e8edabSChris Kay - rpi4: Fix documentation of armstub config entry 2322c4e8edabSChris Kay - st: Correct io possible NULL pointer dereference and device_size type, nand 2323c4e8edabSChris Kay xor_ecc.val assigned value, static analysis tool issues, and fix incorrect 2324c4e8edabSChris Kay return value and correctly check pwr-regulators node 2325c4e8edabSChris Kay - xilinx: zynqmp: Correct syscnt freq for QEMU and fix clock models and IDs of 2326c4e8edabSChris Kay GEM-related clocks 2327c4e8edabSChris Kay 2328c4e8edabSChris Kay### Known Issues 2329c4e8edabSChris Kay 2330c4e8edabSChris Kay- Build System 2331c4e8edabSChris Kay - dtb: DTB creation not supported when building on a Windows host. 2332c4e8edabSChris Kay 2333c4e8edabSChris Kay This step in the build process is skipped when running on a Windows host. A 2334c4e8edabSChris Kay known issue from the 1.6 release. 2335c4e8edabSChris Kay 2336c4e8edabSChris Kay - Intermittent assertion firing `ASSERT: services/spd/tspd/tspd_main.c:105` 2337c4e8edabSChris Kay- Coverity 2338c4e8edabSChris Kay - Intermittent Race condition in Coverity Jenkins Build Job 2339c4e8edabSChris Kay- Platforms 2340c4e8edabSChris Kay - arm/juno: System suspend from Linux does not function as documented in the 2341c4e8edabSChris Kay user guide 2342c4e8edabSChris Kay 2343c4e8edabSChris Kay Following the instructions provided in the user guide document does not 2344c4e8edabSChris Kay result in the platform entering system suspend state as expected. A message 2345c4e8edabSChris Kay relating to the hdlcd driver failing to suspend will be emitted on the Linux 2346c4e8edabSChris Kay terminal. 2347c4e8edabSChris Kay 2348c4e8edabSChris Kay - mediatek/mt6795: This platform does not build in this release 2349c4e8edabSChris Kay 2350c4e8edabSChris Kay## 2.2 (2019-10-22) 2351c4e8edabSChris Kay 2352c4e8edabSChris Kay### New Features 2353c4e8edabSChris Kay 2354c4e8edabSChris Kay- Architecture 2355c4e8edabSChris Kay - Enable Pointer Authentication (PAuth) support for Secure World 2356c4e8edabSChris Kay 2357c4e8edabSChris Kay - Adds support for ARMv8.3-PAuth in BL1 SMC calls and BL2U image for 2358c4e8edabSChris Kay firmware updates. 2359c4e8edabSChris Kay 2360c4e8edabSChris Kay - Enable Memory Tagging Extension (MTE) support in both secure and non-secure 2361c4e8edabSChris Kay worlds 2362c4e8edabSChris Kay 2363c4e8edabSChris Kay - Adds support for the new Memory Tagging Extension arriving in ARMv8.5. MTE 2364c4e8edabSChris Kay support is now enabled by default on systems that support it at EL0. 2365c4e8edabSChris Kay - To enable it at ELx for both the non-secure and the secure world, the 2366c4e8edabSChris Kay compiler flag `CTX_INCLUDE_MTE_REGS` includes register saving and 2367c4e8edabSChris Kay restoring when necessary in order to prevent information leakage between 2368c4e8edabSChris Kay the worlds. 2369c4e8edabSChris Kay 2370c4e8edabSChris Kay - Add support for Branch Target Identification (BTI) 2371c4e8edabSChris Kay- Build System 2372c4e8edabSChris Kay - Modify FVP makefile for CPUs that support both AArch64/32 2373c4e8edabSChris Kay - AArch32: Allow compiling with soft-float toolchain 2374c4e8edabSChris Kay - Makefile: Add default warning flags 2375c4e8edabSChris Kay - Add Makefile check for PAuth and AArch64 2376c4e8edabSChris Kay - Add compile-time errors for HW_ASSISTED_COHERENCY flag 2377c4e8edabSChris Kay - Apply compile-time check for AArch64-only CPUs 2378c4e8edabSChris Kay - build_macros: Add mechanism to prevent bin generation. 2379c4e8edabSChris Kay - Add support for default stack-protector flag 2380c4e8edabSChris Kay - spd: opteed: Enable NS_TIMER_SWITCH 2381c4e8edabSChris Kay - plat/arm: Skip BL2U if RESET_TO_SP_MIN flag is set 2382c4e8edabSChris Kay - Add new build option to let each platform select which implementation of 2383c4e8edabSChris Kay spinlocks it wants to use 2384c4e8edabSChris Kay- CPU Support 2385c4e8edabSChris Kay - DSU: Workaround for erratum 798953 and 936184 2386c4e8edabSChris Kay - Neoverse N1: Force cacheable atomic to near atomic 2387c4e8edabSChris Kay - Neoverse N1: Workaround for erratum 1073348, 1130799, 1165347, 1207823, 2388c4e8edabSChris Kay 1220197, 1257314, 1262606, 1262888, 1275112, 1315703, 1542419 2389c4e8edabSChris Kay - Neoverse Zeus: Apply the MSR SSBS instruction 2390c4e8edabSChris Kay - cortex-Hercules/HerculesAE: Support added for Cortex-Hercules and 2391c4e8edabSChris Kay Cortex-HerculesAE CPUs 2392c4e8edabSChris Kay - cortex-Hercules/HerculesAE: Enable AMU for Cortex-Hercules and 2393c4e8edabSChris Kay Cortex-HerculesAE 2394c4e8edabSChris Kay - cortex-a76AE: Support added for Cortex-A76AE CPU 2395c4e8edabSChris Kay - cortex-a76: Workaround for erratum 1257314, 1262606, 1262888, 1275112, 2396c4e8edabSChris Kay 1286807 2397c4e8edabSChris Kay - cortex-a65/a65AE: Support added for Cortex-A65 and Cortex-A65AE CPUs 2398c4e8edabSChris Kay - cortex-a65: Enable AMU for Cortex-A65 2399c4e8edabSChris Kay - cortex-a55: Workaround for erratum 1221012 2400c4e8edabSChris Kay - cortex-a35: Workaround for erratum 855472 2401c4e8edabSChris Kay - cortex-a9: Workaround for erratum 794073 2402c4e8edabSChris Kay- Drivers 2403c4e8edabSChris Kay - console: Allow the console to register multiple times 2404c4e8edabSChris Kay 2405c4e8edabSChris Kay - delay: Timeout detection support 2406c4e8edabSChris Kay 2407c4e8edabSChris Kay - gicv3: Enabled multi-socket GIC redistributor frame discovery and migrated 2408c4e8edabSChris Kay ARM platforms to the new API 2409c4e8edabSChris Kay 2410c4e8edabSChris Kay - Adds `gicv3_rdistif_probe` function that delegates the responsibility of 2411c4e8edabSChris Kay discovering the corresponding redistributor base frame to each CPU itself. 2412c4e8edabSChris Kay 2413c4e8edabSChris Kay - sbsa: Add SBSA watchdog driver 2414c4e8edabSChris Kay 2415c4e8edabSChris Kay - st/stm32_hash: Add HASH driver 2416c4e8edabSChris Kay 2417c4e8edabSChris Kay - ti/uart: Add an AArch32 variant 2418c4e8edabSChris Kay- Library at ROM (romlib) 2419c4e8edabSChris Kay - Introduce BTI support in Library at ROM (romlib) 2420c4e8edabSChris Kay- New Platforms Support 2421c4e8edabSChris Kay - amlogic: g12a: New platform support added for the S905X2 (G12A) platform 2422c4e8edabSChris Kay - amlogic: meson/gxl: New platform support added for Amlogic Meson S905x (GXL) 2423c4e8edabSChris Kay - arm/a5ds: New platform support added for A5 DesignStart 2424c4e8edabSChris Kay - arm/corstone: New platform support added for Corstone-700 2425c4e8edabSChris Kay - intel: New platform support added for Agilex 2426c4e8edabSChris Kay - mediatek: New platform support added for MediaTek mt8183 2427c4e8edabSChris Kay - qemu/qemu_sbsa: New platform support added for QEMU SBSA platform 2428c4e8edabSChris Kay - renesas/rcar_gen3: plat: New platform support added for D3 2429c4e8edabSChris Kay - rockchip: New platform support added for px30 2430c4e8edabSChris Kay - rockchip: New platform support added for rk3288 2431c4e8edabSChris Kay - rpi: New platform support added for Raspberry Pi 4 2432c4e8edabSChris Kay- Platforms 2433c4e8edabSChris Kay - arm/common: Introduce wrapper functions to setup secure watchdog 2434c4e8edabSChris Kay - arm/fvp: Add Delay Timer driver to BL1 and BL31 and option for defining 2435c4e8edabSChris Kay platform DRAM2 base 2436c4e8edabSChris Kay - arm/fvp: Add Linux DTS files for 32 bit threaded FVPs 2437c4e8edabSChris Kay - arm/n1sdp: Add code for DDR ECC enablement and BL33 copy to DDR, Initialise 2438c4e8edabSChris Kay CNTFRQ in Non Secure CNTBaseN 2439c4e8edabSChris Kay - arm/juno: Use shared mbedtls heap between BL1 and BL2 and add basic support 2440c4e8edabSChris Kay for dynamic config 2441c4e8edabSChris Kay - imx: Basic support for PicoPi iMX7D, rdc module init, caam module init, 2442c4e8edabSChris Kay aipstz init, IMX_SIP_GET_SOC_INFO, IMX_SIP_BUILDINFO added 2443c4e8edabSChris Kay - intel: Add ncore ccu driver 2444c4e8edabSChris Kay - mediatek/mt81\*: Use new bl31_params_parse() helper 2445c4e8edabSChris Kay - nvidia: tegra: Add support for multi console interface 2446c4e8edabSChris Kay - qemu/qemu_sbsa: Adding memory mapping for both FLASH0/FLASH1 2447c4e8edabSChris Kay - qemu: Added gicv3 support, new console interface in AArch32, and 2448c4e8edabSChris Kay sub-platforms 2449c4e8edabSChris Kay - renesas/rcar_gen3: plat: Add R-Car V3M support, new board revision for 2450c4e8edabSChris Kay H3ULCB, DBSC4 setting before self-refresh mode 2451c4e8edabSChris Kay - socionext/uniphier: Support console based on multi-console 2452c4e8edabSChris Kay - st: stm32mp1: Add OP-TEE, Avenger96, watchdog, LpDDR3, authentication 2453c4e8edabSChris Kay support and general SYSCFG management 2454c4e8edabSChris Kay - ti/k3: common: Add support for J721E, Use coherent memory for shared data, 2455c4e8edabSChris Kay Trap all asynchronous bus errors to EL3 2456c4e8edabSChris Kay - xilinx/zynqmp: Add support for multi console interface, Initialize IPI table 2457c4e8edabSChris Kay from zynqmp_config_setup() 2458c4e8edabSChris Kay- PSCI 2459c4e8edabSChris Kay - Adding new optional PSCI hook `pwr_domain_on_finish_late` 2460c4e8edabSChris Kay - This PSCI hook `pwr_domain_on_finish_late` is similar to 2461c4e8edabSChris Kay `pwr_domain_on_finish` but is guaranteed to be invoked when the respective 2462c4e8edabSChris Kay core and cluster are participating in coherency. 2463c4e8edabSChris Kay- Security 2464c4e8edabSChris Kay - Speculative Store Bypass Safe (SSBS): Further enhance protection against 2465c4e8edabSChris Kay Spectre variant 4 by disabling speculative loads/stores (SPSR.SSBS bit) by 2466c4e8edabSChris Kay default. 2467c4e8edabSChris Kay - UBSAN support and handlers 2468c4e8edabSChris Kay - Adds support for the Undefined Behaviour sanitizer. There are two types of 2469c4e8edabSChris Kay support offered - minimalistic trapping support which essentially 2470c4e8edabSChris Kay immediately crashes on undefined behaviour and full support with full 2471c4e8edabSChris Kay debug messages. 2472c4e8edabSChris Kay- Tools 2473c4e8edabSChris Kay - cert_create: Add support for bigger RSA key sizes (3KB and 4KB), previously 2474c4e8edabSChris Kay the maximum size was 2KB. 2475c4e8edabSChris Kay - fiptool: Add support to build fiptool on Windows. 2476c4e8edabSChris Kay 2477c4e8edabSChris Kay### Changed 2478c4e8edabSChris Kay 2479c4e8edabSChris Kay- Architecture 2480c4e8edabSChris Kay - Refactor ARMv8.3 Pointer Authentication support code 2481c4e8edabSChris Kay - backtrace: Strip PAC field when PAUTH is enabled 2482c4e8edabSChris Kay - Prettify crash reporting output on AArch64. 2483c4e8edabSChris Kay - Rework smc_unknown return code path in smc_handler 2484c4e8edabSChris Kay - Leverage the existing `el3_exit()` return routine for smc_unknown return 2485c4e8edabSChris Kay path rather than a custom set of instructions. 2486c4e8edabSChris Kay- BL-Specific 2487c4e8edabSChris Kay - Invalidate dcache build option for BL2 entry at EL3 2488c4e8edabSChris Kay - Add missing support for BL2_AT_EL3 in XIP memory 2489c4e8edabSChris Kay- Boot Flow 2490c4e8edabSChris Kay - Add helper to parse BL31 parameters (both versions) 2491c4e8edabSChris Kay - Factor out cross-BL API into export headers suitable for 3rd party code 2492c4e8edabSChris Kay - Introduce lightweight BL platform parameter library 2493c4e8edabSChris Kay- Drivers 2494c4e8edabSChris Kay - auth: Memory optimization for Chain of Trust (CoT) description 2495c4e8edabSChris Kay - bsec: Move bsec_mode_is_closed_device() service to platform 2496c4e8edabSChris Kay - cryptocell: Move Cryptocell specific API into driver 2497c4e8edabSChris Kay - gicv3: Prevent pending G1S interrupt from becoming G0 interrupt 2498c4e8edabSChris Kay - mbedtls: Remove weak heap implementation 2499c4e8edabSChris Kay - mmc: Increase delay between ACMD41 retries 2500c4e8edabSChris Kay - mmc: stm32_sdmmc2: Correctly manage block size 2501c4e8edabSChris Kay - mmc: stm32_sdmmc2: Manage max-frequency property from DT 2502c4e8edabSChris Kay - synopsys/emmc: Do not change FIFO TH as this breaks some platforms 2503c4e8edabSChris Kay - synopsys: Update synopsys drivers to not rely on undefined overflow 2504c4e8edabSChris Kay behaviour 2505c4e8edabSChris Kay - ufs: Extend the delay after reset to wait for some slower chips 2506c4e8edabSChris Kay- Platforms 2507c4e8edabSChris Kay - amlogic/meson/gxl: Remove BL2 dependency from BL31 2508c4e8edabSChris Kay - arm/common: Shorten the Firmware Update (FWU) process 2509c4e8edabSChris Kay - arm/fvp: Remove GIC initialisation from secondary core cold boot 2510c4e8edabSChris Kay - arm/sgm: Temporarily disable shared Mbed TLS heap for SGM 2511c4e8edabSChris Kay - hisilicon: Update hisilicon drivers to not rely on undefined overflow 2512c4e8edabSChris Kay behaviour 2513c4e8edabSChris Kay - imx: imx8: Replace PLAT_IMX8\* with PLAT_imx8\*, remove duplicated linker 2514c4e8edabSChris Kay symbols and deprecated code include, keep only IRQ 32 unmasked, enable all 2515c4e8edabSChris Kay power domain by default 2516c4e8edabSChris Kay - marvell: Prevent SError accessing PCIe link, Switch to xlat_tables_v2, do 2517c4e8edabSChris Kay not rely on argument passed via smc, make sure that comphy init will use 2518c4e8edabSChris Kay correct address 2519c4e8edabSChris Kay - mediatek: mt8173: Refactor RTC and PMIC drivers 2520c4e8edabSChris Kay - mediatek: mt8173: Apply MULTI_CONSOLE framework 2521c4e8edabSChris Kay - nvidia: Tegra: memctrl_v2: fix "overflow before widen" coverity issue 2522c4e8edabSChris Kay - qemu: Simplify the image size calculation, Move and generalise FDT PSCI 2523c4e8edabSChris Kay fixup, move gicv2 codes to separate file 2524c4e8edabSChris Kay - renesas/rcar_gen3: Convert to multi-console API, update QoS setting, Update 2525c4e8edabSChris Kay IPL and Secure Monitor Rev2.0.4, Change to restore timer counter value at 2526c4e8edabSChris Kay resume, Update DDR setting rev.0.35, qos: change subslot cycle, Change 2527c4e8edabSChris Kay periodic write DQ training option. 2528c4e8edabSChris Kay - rockchip: Allow SOCs with undefined wfe check bits, Streamline and complete 2529c4e8edabSChris Kay UARTn_BASE macros, drop rockchip-specific imported linker symbols for bl31, 2530c4e8edabSChris Kay Disable binary generation for all SOCs, Allow console device to be set by 2531c4e8edabSChris Kay DTB, Use new bl31_params_parse functions 2532c4e8edabSChris Kay - rpi/rpi3: Move shared rpi3 files into common directory 2533c4e8edabSChris Kay - socionext/uniphier: Set CONSOLE_FLAG_TRANSLATE_CRLF and clean up console 2534c4e8edabSChris Kay driver 2535c4e8edabSChris Kay - socionext/uniphier: Replace DIV_ROUND_UP() with div_round_up() from 2536c4e8edabSChris Kay utils_def.h 2537c4e8edabSChris Kay - st/stm32mp: Split stm32mp_io_setup function, move 2538c4e8edabSChris Kay stm32_get_gpio_bank_clock() to private file, correctly handle Clock 2539c4e8edabSChris Kay Spreading Generator, move oscillator functions to generic file, realign 2540c4e8edabSChris Kay device tree files with internal devs, enable RTCAPB clock for dual-core 2541c4e8edabSChris Kay chips, use a common function to check spinlock is available, move 2542c4e8edabSChris Kay check_header() to common code 2543c4e8edabSChris Kay - ti/k3: Enable SEPARATE_CODE_AND_RODATA by default, Remove shared RAM space, 2544c4e8edabSChris Kay Drop \_ADDRESS from K3_USART_BASE to match other defines, Remove MSMC port 2545c4e8edabSChris Kay definitions, Allow USE_COHERENT_MEM for K3, Set L2 latency on A72 cores 2546c4e8edabSChris Kay- PSCI 2547c4e8edabSChris Kay - PSCI: Lookup list of parent nodes to lock only once 2548c4e8edabSChris Kay- Secure Partition Manager (SPM): SPCI Prototype 2549c4e8edabSChris Kay - Fix service UUID lookup 2550c4e8edabSChris Kay - Adjust size of virtual address space per partition 2551c4e8edabSChris Kay - Refactor xlat context creation 2552c4e8edabSChris Kay - Move shim layer to TTBR1_EL1 2553c4e8edabSChris Kay - Ignore empty regions in resource description 2554c4e8edabSChris Kay- Security 2555c4e8edabSChris Kay - Refactor SPSR initialisation code 2556c4e8edabSChris Kay - SMMUv3: Abort DMA transactions 2557c4e8edabSChris Kay - For security DMA should be blocked at the SMMU by default unless 2558c4e8edabSChris Kay explicitly enabled for a device. SMMU is disabled after reset with all 2559c4e8edabSChris Kay streams bypassing the SMMU, and abortion of all incoming transactions 2560c4e8edabSChris Kay implements a default deny policy on reset. 2561c4e8edabSChris Kay - Moves `bl1_platform_setup()` function from arm_bl1_setup.c to FVP 2562c4e8edabSChris Kay platforms' fvp_bl1_setup.c and fvp_ve_bl1_setup.c files. 2563c4e8edabSChris Kay- Tools 2564c4e8edabSChris Kay - cert_create: Remove RSA PKCS#1 v1.5 support 2565c4e8edabSChris Kay 2566c4e8edabSChris Kay### Resolved Issues 2567c4e8edabSChris Kay 2568c4e8edabSChris Kay- Architecture 2569c4e8edabSChris Kay - Fix the CAS spinlock implementation by adding a missing DSB in 2570c4e8edabSChris Kay `spin_unlock()` 2571c4e8edabSChris Kay - AArch64: Fix SCTLR bit definitions 2572c4e8edabSChris Kay - Removes incorrect `SCTLR_V_BIT` definition and adds definitions for 2573c4e8edabSChris Kay ARMv8.3-Pauth `EnIB`, `EnDA` and `EnDB` bits. 2574c4e8edabSChris Kay - Fix restoration of PAuth context 2575c4e8edabSChris Kay - Replace call to `pauth_context_save()` with `pauth_context_restore()` in 2576c4e8edabSChris Kay case of unknown SMC call. 2577c4e8edabSChris Kay- BL-Specific Issues 2578c4e8edabSChris Kay - Fix BL31 crash reporting on AArch64 only platforms 2579c4e8edabSChris Kay- Build System 2580c4e8edabSChris Kay - Remove several warnings reported with W=2 and W=1 2581c4e8edabSChris Kay- Code Quality Issues 2582c4e8edabSChris Kay - SCTLR and ACTLR are 32-bit for AArch32 and 64-bit for AArch64 2583c4e8edabSChris Kay - Unify type of "cpu_idx" across PSCI module. 2584c4e8edabSChris Kay - Assert if power level value greater then PSCI_INVALID_PWR_LVL 2585c4e8edabSChris Kay - Unsigned long should not be used as per coding guidelines 2586c4e8edabSChris Kay - Reduce the number of memory leaks in cert_create 2587c4e8edabSChris Kay - Fix type of cot_desc_ptr 2588c4e8edabSChris Kay - Use explicit-width data types in AAPCS parameter structs 2589c4e8edabSChris Kay - Add python configuration for editorconfig 2590c4e8edabSChris Kay - BL1: Fix type consistency 2591c4e8edabSChris Kay - Enable -Wshift-overflow=2 to check for undefined shift behavior 2592c4e8edabSChris Kay - Updated upstream platforms to not rely on undefined overflow behaviour 2593c4e8edabSChris Kay- Coverity Quality Issues 2594c4e8edabSChris Kay - Remove GGC ignore -Warray-bounds 2595c4e8edabSChris Kay - Fix Coverity #261967, Infinite loop 2596c4e8edabSChris Kay - Fix Coverity #343017, Missing unlock 2597c4e8edabSChris Kay - Fix Coverity #343008, Side affect in assertion 2598c4e8edabSChris Kay - Fix Coverity #342970, Uninitialized scalar variable 2599c4e8edabSChris Kay- CPU Support 2600c4e8edabSChris Kay - cortex-a12: Fix MIDR mask 2601c4e8edabSChris Kay- Drivers 2602c4e8edabSChris Kay - console: Remove Arm console unregister on suspend 2603c4e8edabSChris Kay - gicv3: Fix support for full SPI range 2604c4e8edabSChris Kay - scmi: Fix wrong payload length 2605c4e8edabSChris Kay- Library Code 2606c4e8edabSChris Kay - libc: Fix sparse warning for \_\_assert() 2607c4e8edabSChris Kay - libc: Fix memchr implementation 2608c4e8edabSChris Kay- Platforms 2609c4e8edabSChris Kay - rpi: rpi3: Fix compilation error when stack protector is enabled 2610c4e8edabSChris Kay - socionext/uniphier: Fix compilation fail for SPM support build config 2611c4e8edabSChris Kay - st/stm32mp1: Fix TZC400 configuration against non-secure DDR 2612c4e8edabSChris Kay - ti/k3: common: Fix RO data area size calculation 2613c4e8edabSChris Kay- Security 2614c4e8edabSChris Kay - AArch32: Disable Secure Cycle Counter 2615c4e8edabSChris Kay - Changes the implementation for disabling Secure Cycle Counter. For ARMv8.5 2616c4e8edabSChris Kay the counter gets disabled by setting `SDCR.SCCD` bit on CPU cold/warm 2617c4e8edabSChris Kay boot. For the earlier architectures PMCR register is saved/restored on 2618c4e8edabSChris Kay secure world entry/exit from/to Non-secure state, and cycle counting gets 2619c4e8edabSChris Kay disabled by setting PMCR.DP bit. 2620c4e8edabSChris Kay - AArch64: Disable Secure Cycle Counter 2621c4e8edabSChris Kay - For ARMv8.5 the counter gets disabled by setting `MDCR_El3.SCCD` bit on 2622c4e8edabSChris Kay CPU cold/warm boot. For the earlier architectures PMCR_EL0 register is 2623c4e8edabSChris Kay saved/restored on secure world entry/exit from/to Non-secure state, and 2624c4e8edabSChris Kay cycle counting gets disabled by setting PMCR_EL0.DP bit. 2625c4e8edabSChris Kay 2626c4e8edabSChris Kay### Deprecations 2627c4e8edabSChris Kay 2628c4e8edabSChris Kay- Common Code 2629c4e8edabSChris Kay - Remove MULTI_CONSOLE_API flag and references to it 2630c4e8edabSChris Kay - Remove deprecated `plat_crash_console_*` 2631c4e8edabSChris Kay - Remove deprecated interfaces `get_afflvl_shift`, `mpidr_mask_lower_afflvls`, 2632c4e8edabSChris Kay `eret` 2633c4e8edabSChris Kay - AARCH32/AARCH64 macros are now deprecated in favor of `__aarch64__` 2634c4e8edabSChris Kay - `__ASSEMBLY__` macro is now deprecated in favor of `__ASSEMBLER__` 2635c4e8edabSChris Kay- Drivers 2636c4e8edabSChris Kay - console: Removed legacy console API 2637c4e8edabSChris Kay - console: Remove deprecated finish_console_register 2638c4e8edabSChris Kay - tzc: Remove deprecated types `tzc_action_t` and `tzc_region_attributes_t` 2639c4e8edabSChris Kay- Secure Partition Manager (SPM): 2640c4e8edabSChris Kay - Prototype SPCI-based SPM (services/std_svc/spm) will be replaced with 2641c4e8edabSChris Kay alternative methods of secure partitioning support. 2642c4e8edabSChris Kay 2643c4e8edabSChris Kay### Known Issues 2644c4e8edabSChris Kay 2645c4e8edabSChris Kay- Build System Issues 2646c4e8edabSChris Kay - dtb: DTB creation not supported when building on a Windows host. 2647c4e8edabSChris Kay 2648c4e8edabSChris Kay This step in the build process is skipped when running on a Windows host. A 2649c4e8edabSChris Kay known issue from the 1.6 release. 2650c4e8edabSChris Kay- Platform Issues 2651c4e8edabSChris Kay - arm/juno: System suspend from Linux does not function as documented in the 2652c4e8edabSChris Kay user guide 2653c4e8edabSChris Kay 2654c4e8edabSChris Kay Following the instructions provided in the user guide document does not 2655c4e8edabSChris Kay result in the platform entering system suspend state as expected. A message 2656c4e8edabSChris Kay relating to the hdlcd driver failing to suspend will be emitted on the Linux 2657c4e8edabSChris Kay terminal. 2658c4e8edabSChris Kay 2659c4e8edabSChris Kay - mediatek/mt6795: This platform does not build in this release 2660c4e8edabSChris Kay 2661c4e8edabSChris Kay## 2.1 (2019-03-29) 2662c4e8edabSChris Kay 2663c4e8edabSChris Kay### New Features 2664c4e8edabSChris Kay 2665c4e8edabSChris Kay- Architecture 2666c4e8edabSChris Kay 2667c4e8edabSChris Kay - Support for ARMv8.3 pointer authentication in the normal and secure worlds 2668c4e8edabSChris Kay 2669c4e8edabSChris Kay The use of pointer authentication in the normal world is enabled whenever 2670c4e8edabSChris Kay architectural support is available, without the need for additional build 2671c4e8edabSChris Kay flags. 2672c4e8edabSChris Kay 2673c4e8edabSChris Kay Use of pointer authentication in the secure world remains an experimental 2674c4e8edabSChris Kay configuration at this time. Using both the `ENABLE_PAUTH` and 2675c4e8edabSChris Kay `CTX_INCLUDE_PAUTH_REGS` build flags, pointer authentication can be enabled 2676c4e8edabSChris Kay in EL3 and S-EL1/0. 2677c4e8edabSChris Kay 2678c4e8edabSChris Kay See the {ref}`Firmware Design` document for additional details on the use of 2679c4e8edabSChris Kay pointer authentication. 2680c4e8edabSChris Kay 2681c4e8edabSChris Kay - Enable Data Independent Timing (DIT) in EL3, where supported 2682c4e8edabSChris Kay 2683c4e8edabSChris Kay- Build System 2684c4e8edabSChris Kay 2685c4e8edabSChris Kay - Support for BL-specific build flags 2686c4e8edabSChris Kay 2687c4e8edabSChris Kay - Support setting compiler target architecture based on `ARM_ARCH_MINOR` build 2688c4e8edabSChris Kay option. 2689c4e8edabSChris Kay 2690c4e8edabSChris Kay - New `RECLAIM_INIT_CODE` build flag: 2691c4e8edabSChris Kay 2692c4e8edabSChris Kay A significant amount of the code used for the initialization of BL31 is not 2693c4e8edabSChris Kay needed again after boot time. In order to reduce the runtime memory 2694c4e8edabSChris Kay footprint, the memory used for this code can be reclaimed after 2695c4e8edabSChris Kay initialization. 2696c4e8edabSChris Kay 2697c4e8edabSChris Kay Certain boot-time functions were marked with the `__init` attribute to 2698c4e8edabSChris Kay enable this reclamation. 2699c4e8edabSChris Kay 2700c4e8edabSChris Kay- CPU Support 2701c4e8edabSChris Kay 2702c4e8edabSChris Kay - cortex-a76: Workaround for erratum 1073348 2703c4e8edabSChris Kay - cortex-a76: Workaround for erratum 1220197 2704c4e8edabSChris Kay - cortex-a76: Workaround for erratum 1130799 2705c4e8edabSChris Kay - cortex-a75: Workaround for erratum 790748 2706c4e8edabSChris Kay - cortex-a75: Workaround for erratum 764081 2707c4e8edabSChris Kay - cortex-a73: Workaround for erratum 852427 2708c4e8edabSChris Kay - cortex-a73: Workaround for erratum 855423 2709c4e8edabSChris Kay - cortex-a57: Workaround for erratum 817169 2710c4e8edabSChris Kay - cortex-a57: Workaround for erratum 814670 2711c4e8edabSChris Kay - cortex-a55: Workaround for erratum 903758 2712c4e8edabSChris Kay - cortex-a55: Workaround for erratum 846532 2713c4e8edabSChris Kay - cortex-a55: Workaround for erratum 798797 2714c4e8edabSChris Kay - cortex-a55: Workaround for erratum 778703 2715c4e8edabSChris Kay - cortex-a55: Workaround for erratum 768277 2716c4e8edabSChris Kay - cortex-a53: Workaround for erratum 819472 2717c4e8edabSChris Kay - cortex-a53: Workaround for erratum 824069 2718c4e8edabSChris Kay - cortex-a53: Workaround for erratum 827319 2719c4e8edabSChris Kay - cortex-a17: Workaround for erratum 852423 2720c4e8edabSChris Kay - cortex-a17: Workaround for erratum 852421 2721c4e8edabSChris Kay - cortex-a15: Workaround for erratum 816470 2722c4e8edabSChris Kay - cortex-a15: Workaround for erratum 827671 2723c4e8edabSChris Kay 2724c4e8edabSChris Kay- Documentation 2725c4e8edabSChris Kay 2726c4e8edabSChris Kay - Exception Handling Framework documentation 2727c4e8edabSChris Kay - Library at ROM (romlib) documentation 2728c4e8edabSChris Kay - RAS framework documentation 2729c4e8edabSChris Kay - Coding Guidelines document 2730c4e8edabSChris Kay 2731c4e8edabSChris Kay- Drivers 2732c4e8edabSChris Kay 2733c4e8edabSChris Kay - ccn: Add API for setting and reading node registers 2734c4e8edabSChris Kay 2735c4e8edabSChris Kay - Adds `ccn_read_node_reg` function 2736c4e8edabSChris Kay - Adds `ccn_write_node_reg` function 2737c4e8edabSChris Kay 2738c4e8edabSChris Kay - partition: Support MBR partition entries 2739c4e8edabSChris Kay 2740c4e8edabSChris Kay - scmi: Add `plat_css_get_scmi_info` function 2741c4e8edabSChris Kay 2742c4e8edabSChris Kay Adds a new API `plat_css_get_scmi_info` which lets the platform register a 2743c4e8edabSChris Kay platform-specific instance of `scmi_channel_plat_info_t` and remove the 2744c4e8edabSChris Kay default values 2745c4e8edabSChris Kay 2746c4e8edabSChris Kay - tzc380: Add TZC-380 TrustZone Controller driver 2747c4e8edabSChris Kay 2748c4e8edabSChris Kay - tzc-dmc620: Add driver to manage the TrustZone Controller within the DMC-620 2749c4e8edabSChris Kay Dynamic Memory Controller 2750c4e8edabSChris Kay 2751c4e8edabSChris Kay- Library at ROM (romlib) 2752c4e8edabSChris Kay 2753c4e8edabSChris Kay - Add platform-specific jump table list 2754c4e8edabSChris Kay 2755c4e8edabSChris Kay - Allow patching of romlib functions 2756c4e8edabSChris Kay 2757c4e8edabSChris Kay This change allows patching of functions in the romlib. This can be done by 2758c4e8edabSChris Kay adding "patch" at the end of the jump table entry for the function that 2759c4e8edabSChris Kay needs to be patched in the file jmptbl.i. 2760c4e8edabSChris Kay 2761c4e8edabSChris Kay- Library Code 2762c4e8edabSChris Kay 2763c4e8edabSChris Kay - Support non-LPAE-enabled MMU tables in AArch32 2764c4e8edabSChris Kay - mmio: Add `mmio_clrsetbits_16` function 2765c4e8edabSChris Kay - 16-bit variant of `mmio_clrsetbits` 2766c4e8edabSChris Kay - object_pool: Add Object Pool Allocator 2767c4e8edabSChris Kay - Manages object allocation using a fixed-size static array 2768c4e8edabSChris Kay - Adds `pool_alloc` and `pool_alloc_n` functions 2769c4e8edabSChris Kay - Does not provide any functions to free allocated objects (by design) 2770c4e8edabSChris Kay - libc: Added `strlcpy` function 2771c4e8edabSChris Kay - libc: Import `strrchr` function from FreeBSD 2772c4e8edabSChris Kay - xlat_tables: Add support for ARMv8.4-TTST 2773c4e8edabSChris Kay - xlat_tables: Support mapping regions without an explicitly specified VA 2774c4e8edabSChris Kay 2775c4e8edabSChris Kay- Math 2776c4e8edabSChris Kay 2777c4e8edabSChris Kay - Added softudiv macro to support software division 2778c4e8edabSChris Kay 2779c4e8edabSChris Kay- Memory Partitioning And Monitoring (MPAM) 2780c4e8edabSChris Kay 2781c4e8edabSChris Kay - Enabled MPAM EL2 traps (`MPAMHCR_EL2` and `MPAM_EL2`) 2782c4e8edabSChris Kay 2783c4e8edabSChris Kay- Platforms 2784c4e8edabSChris Kay 2785c4e8edabSChris Kay - amlogic: Add support for Meson S905 (GXBB) 2786c4e8edabSChris Kay 2787c4e8edabSChris Kay - arm/fvp_ve: Add support for FVP Versatile Express platform 2788c4e8edabSChris Kay 2789c4e8edabSChris Kay - arm/n1sdp: Add support for Neoverse N1 System Development platform 2790c4e8edabSChris Kay 2791c4e8edabSChris Kay - arm/rde1edge: Add support for Neoverse E1 platform 2792c4e8edabSChris Kay 2793c4e8edabSChris Kay - arm/rdn1edge: Add support for Neoverse N1 platform 2794c4e8edabSChris Kay 2795c4e8edabSChris Kay - arm: Add support for booting directly to Linux without an intermediate 2796c4e8edabSChris Kay loader (AArch32) 2797c4e8edabSChris Kay 2798c4e8edabSChris Kay - arm/juno: Enable new CPU errata workarounds for A53 and A57 2799c4e8edabSChris Kay 2800c4e8edabSChris Kay - arm/juno: Add romlib support 2801c4e8edabSChris Kay 2802c4e8edabSChris Kay Building a combined BL1 and ROMLIB binary file with the correct page 2803c4e8edabSChris Kay alignment is now supported on the Juno platform. When `USE_ROMLIB` is set 2804c4e8edabSChris Kay for Juno, it generates the combined file `bl1_romlib.bin` which needs to be 2805c4e8edabSChris Kay used instead of bl1.bin. 2806c4e8edabSChris Kay 2807c4e8edabSChris Kay - intel/stratix: Add support for Intel Stratix 10 SoC FPGA platform 2808c4e8edabSChris Kay 2809c4e8edabSChris Kay - marvell: Add support for Armada-37xx SoC platform 2810c4e8edabSChris Kay 2811c4e8edabSChris Kay - nxp: Add support for i.MX8M and i.MX7 Warp7 platforms 2812c4e8edabSChris Kay 2813c4e8edabSChris Kay - renesas: Add support for R-Car Gen3 platform 2814c4e8edabSChris Kay 2815c4e8edabSChris Kay - xilinx: Add support for Versal ACAP platforms 2816c4e8edabSChris Kay 2817c4e8edabSChris Kay- Position-Independent Executable (PIE) 2818c4e8edabSChris Kay 2819c4e8edabSChris Kay PIE support has initially been added to BL31. The `ENABLE_PIE` build flag is 2820c4e8edabSChris Kay used to enable or disable this functionality as required. 2821c4e8edabSChris Kay 2822c4e8edabSChris Kay- Secure Partition Manager 2823c4e8edabSChris Kay 2824c4e8edabSChris Kay - New SPM implementation based on SPCI Alpha 1 draft specification 2825c4e8edabSChris Kay 2826c4e8edabSChris Kay A new version of SPM has been implemented, based on the SPCI (Secure 2827c4e8edabSChris Kay Partition Client Interface) and SPRT (Secure Partition Runtime) draft 2828c4e8edabSChris Kay specifications. 2829c4e8edabSChris Kay 2830c4e8edabSChris Kay The new implementation is a prototype that is expected to undergo intensive 2831c4e8edabSChris Kay rework as the specifications change. It has basic support for multiple 2832c4e8edabSChris Kay Secure Partitions and Resource Descriptions. 2833c4e8edabSChris Kay 2834c4e8edabSChris Kay The older version of SPM, based on MM (ARM Management Mode Interface 2835c4e8edabSChris Kay Specification), is still present in the codebase. A new build flag, `SPM_MM` 2836c4e8edabSChris Kay has been added to allow selection of the desired implementation. This flag 2837c4e8edabSChris Kay defaults to 1, selecting the MM-based implementation. 2838c4e8edabSChris Kay 2839c4e8edabSChris Kay- Security 2840c4e8edabSChris Kay 2841c4e8edabSChris Kay - Spectre Variant-1 mitigations (`CVE-2017-5753`) 2842c4e8edabSChris Kay 2843c4e8edabSChris Kay - Use Speculation Store Bypass Safe (SSBS) functionality where available 2844c4e8edabSChris Kay 2845c4e8edabSChris Kay Provides mitigation against `CVE-2018-19440` (Not saving x0 to x3 registers 2846c4e8edabSChris Kay can leak information from one Normal World SMC client to another) 2847c4e8edabSChris Kay 2848c4e8edabSChris Kay### Changed 2849c4e8edabSChris Kay 2850c4e8edabSChris Kay- Build System 2851c4e8edabSChris Kay 2852c4e8edabSChris Kay - Warning levels are now selectable with `W=<1,2,3>` 2853c4e8edabSChris Kay - Removed unneeded include paths in PLAT_INCLUDES 2854c4e8edabSChris Kay - "Warnings as errors" (Werror) can be disabled using `E=0` 2855c4e8edabSChris Kay - Support totally quiet output with `-s` flag 2856c4e8edabSChris Kay - Support passing options to checkpatch using `CHECKPATCH_OPTS=<opts>` 2857c4e8edabSChris Kay - Invoke host compiler with `HOSTCC / HOSTCCFLAGS` instead of `CC / CFLAGS` 2858c4e8edabSChris Kay - Make device tree pre-processing similar to U-boot/Linux by: 2859c4e8edabSChris Kay - Creating separate `CPPFLAGS` for DT preprocessing so that compiler options 2860c4e8edabSChris Kay specific to it can be accommodated. 2861c4e8edabSChris Kay - Replacing `CPP` with `PP` for DT pre-processing 2862c4e8edabSChris Kay 2863c4e8edabSChris Kay- CPU Support 2864c4e8edabSChris Kay 2865c4e8edabSChris Kay - Errata report function definition is now mandatory for CPU support files 2866c4e8edabSChris Kay 2867c4e8edabSChris Kay CPU operation files must now define a `<name>_errata_report` function to 2868c4e8edabSChris Kay print errata status. This is no longer a weak reference. 2869c4e8edabSChris Kay 2870c4e8edabSChris Kay- Documentation 2871c4e8edabSChris Kay 2872c4e8edabSChris Kay - Migrated some content from GitHub wiki to `docs/` directory 2873c4e8edabSChris Kay - Security advisories now have CVE links 2874c4e8edabSChris Kay - Updated copyright guidelines 2875c4e8edabSChris Kay 2876c4e8edabSChris Kay- Drivers 2877c4e8edabSChris Kay 2878c4e8edabSChris Kay - console: The `MULTI_CONSOLE_API` framework has been rewritten in C 2879c4e8edabSChris Kay 2880c4e8edabSChris Kay - console: Ported multi-console driver to AArch32 2881c4e8edabSChris Kay 2882c4e8edabSChris Kay - gic: Remove 'lowest priority' constants 2883c4e8edabSChris Kay 2884c4e8edabSChris Kay Removed `GIC_LOWEST_SEC_PRIORITY` and `GIC_LOWEST_NS_PRIORITY`. Platforms 2885c4e8edabSChris Kay should define these if required, or instead determine the correct priority 2886c4e8edabSChris Kay values at runtime. 2887c4e8edabSChris Kay 2888c4e8edabSChris Kay - delay_timer: Check that the Generic Timer extension is present 2889c4e8edabSChris Kay 2890c4e8edabSChris Kay - mmc: Increase command reply timeout to 10 milliseconds 2891c4e8edabSChris Kay 2892c4e8edabSChris Kay - mmc: Poll eMMC device status to ensure `EXT_CSD` command completion 2893c4e8edabSChris Kay 2894c4e8edabSChris Kay - mmc: Correctly check return code from `mmc_fill_device_info` 2895c4e8edabSChris Kay 2896c4e8edabSChris Kay- External Libraries 2897c4e8edabSChris Kay 2898c4e8edabSChris Kay - libfdt: Upgraded from 1.4.2 to 1.4.6-9 2899c4e8edabSChris Kay 2900c4e8edabSChris Kay > 2901c4e8edabSChris Kay 2902c4e8edabSChris Kay - mbed TLS: Upgraded from 2.12 to 2.16 2903c4e8edabSChris Kay 2904c4e8edabSChris Kay > 2905c4e8edabSChris Kay 2906c4e8edabSChris Kay This change incorporates fixes for security issues that should be reviewed to 2907c4e8edabSChris Kay determine if they are relevant for software implementations using Trusted 2908c4e8edabSChris Kay Firmware-A. See the [mbed TLS releases] page for details on changes from the 2909c4e8edabSChris Kay 2.12 to the 2.16 release. 2910c4e8edabSChris Kay 2911c4e8edabSChris Kay- Library Code 2912c4e8edabSChris Kay 2913c4e8edabSChris Kay - compiler-rt: Updated `lshrdi3.c` and `int_lib.h` with changes from LLVM 2914c4e8edabSChris Kay master branch (r345645) 2915c4e8edabSChris Kay - cpu: Updated macro that checks need for `CVE-2017-5715` mitigation 2916c4e8edabSChris Kay - libc: Made setjmp and longjmp C standard compliant 2917c4e8edabSChris Kay - libc: Allowed overriding the default libc (use `OVERRIDE_LIBC`) 2918c4e8edabSChris Kay - libc: Moved setjmp and longjmp to the `libc/` directory 2919c4e8edabSChris Kay 2920c4e8edabSChris Kay- Platforms 2921c4e8edabSChris Kay 2922c4e8edabSChris Kay - Removed Mbed TLS dependency from plat_bl_common.c 2923c4e8edabSChris Kay 2924c4e8edabSChris Kay - arm: Removed unused `ARM_MAP_BL_ROMLIB` macro 2925c4e8edabSChris Kay 2926c4e8edabSChris Kay - arm: Removed `ARM_BOARD_OPTIMISE_MEM` feature and build flag 2927c4e8edabSChris Kay 2928c4e8edabSChris Kay - arm: Moved several components into `drivers/` directory 2929c4e8edabSChris Kay 2930c4e8edabSChris Kay This affects the SDS, SCP, SCPI, MHU and SCMI components 2931c4e8edabSChris Kay 2932c4e8edabSChris Kay - arm/juno: Increased maximum BL2 image size to `0xF000` 2933c4e8edabSChris Kay 2934c4e8edabSChris Kay This change was required to accommodate a larger `libfdt` library 2935c4e8edabSChris Kay 2936c4e8edabSChris Kay- SCMI 2937c4e8edabSChris Kay 2938c4e8edabSChris Kay - Optimized bakery locks when hardware-assisted coherency is enabled using the 2939c4e8edabSChris Kay `HW_ASSISTED_COHERENCY` build flag 2940c4e8edabSChris Kay 2941c4e8edabSChris Kay- SDEI 2942c4e8edabSChris Kay 2943c4e8edabSChris Kay - Added support for unconditionally resuming secure world execution after {{ 2944c4e8edabSChris Kay SDEI }} event processing completes 2945c4e8edabSChris Kay 2946c4e8edabSChris Kay {{ SDEI }} interrupts, although targeting EL3, occur on behalf of the 2947c4e8edabSChris Kay non-secure world, and may have higher priority than secure world interrupts. 2948c4e8edabSChris Kay Therefore they might preempt secure execution and yield execution to the 2949c4e8edabSChris Kay non-secure {{ SDEI }} handler. Upon completion of {{ SDEI }} event handling, 2950c4e8edabSChris Kay resume secure execution if it was preempted. 2951c4e8edabSChris Kay 2952c4e8edabSChris Kay- Translation Tables (XLAT) 2953c4e8edabSChris Kay 2954c4e8edabSChris Kay - Dynamically detect need for `Common not Private (TTBRn_ELx.CnP)` bit 2955c4e8edabSChris Kay 2956c4e8edabSChris Kay Properly handle the case where `ARMv8.2-TTCNP` is implemented in a CPU that 2957c4e8edabSChris Kay does not implement all mandatory v8.2 features (and so must claim to 2958c4e8edabSChris Kay implement a lower architecture version). 2959c4e8edabSChris Kay 2960c4e8edabSChris Kay### Resolved Issues 2961c4e8edabSChris Kay 2962c4e8edabSChris Kay- Architecture 2963c4e8edabSChris Kay - Incorrect check for SSBS feature detection 2964c4e8edabSChris Kay - Unintentional register clobber in AArch32 reset_handler function 2965c4e8edabSChris Kay- Build System 2966c4e8edabSChris Kay - Dependency issue during DTB image build 2967c4e8edabSChris Kay - Incorrect variable expansion in Arm platform makefiles 2968c4e8edabSChris Kay - Building on Windows with verbose mode (`V=1`) enabled is broken 2969c4e8edabSChris Kay - AArch32 compilation flags is missing `$(march32-directive)` 2970c4e8edabSChris Kay- BL-Specific Issues 2971c4e8edabSChris Kay - bl2: `uintptr_t is not defined` error when `BL2_IN_XIP_MEM` is defined 2972c4e8edabSChris Kay - bl2: Missing prototype warning in `bl2_arch_setup` 2973c4e8edabSChris Kay - bl31: Omission of Global Offset Table (GOT) section 2974c4e8edabSChris Kay- Code Quality Issues 2975c4e8edabSChris Kay - Multiple MISRA compliance issues 2976c4e8edabSChris Kay - Potential NULL pointer dereference (Coverity-detected) 2977c4e8edabSChris Kay- Drivers 2978c4e8edabSChris Kay - mmc: Local declaration of `scr` variable causes a cache issue when 2979c4e8edabSChris Kay invalidating after the read DMA transfer completes 2980c4e8edabSChris Kay - mmc: `ACMD41` does not send voltage information during initialization, 2981c4e8edabSChris Kay resulting in the command being treated as a query. This prevents the command 2982c4e8edabSChris Kay from initializing the controller. 2983c4e8edabSChris Kay - mmc: When checking device state using `mmc_device_state()` there are no 2984c4e8edabSChris Kay retries attempted in the event of an error 2985c4e8edabSChris Kay - ccn: Incorrect Region ID calculation for RN-I nodes 2986c4e8edabSChris Kay - console: `Fix MULTI_CONSOLE_API` when used as a crash console 2987c4e8edabSChris Kay - partition: Improper NULL checking in gpt.c 2988c4e8edabSChris Kay - partition: Compilation failure in `VERBOSE` mode (`V=1`) 2989c4e8edabSChris Kay- Library Code 2990c4e8edabSChris Kay - common: Incorrect check for Address Authentication support 2991c4e8edabSChris Kay 2992c4e8edabSChris Kay - xlat: Fix XLAT_V1 / XLAT_V2 incompatibility 2993c4e8edabSChris Kay 2994c4e8edabSChris Kay The file `arm_xlat_tables.h` has been renamed to `xlat_tables_compat.h` and 2995c4e8edabSChris Kay has been moved to a common folder. This header can be used to guarantee 2996c4e8edabSChris Kay compatibility, as it includes the correct header based on 2997c4e8edabSChris Kay `XLAT_TABLES_LIB_V2`. 2998c4e8edabSChris Kay 2999c4e8edabSChris Kay - xlat: armclang unused-function warning on `xlat_clean_dcache_range` 3000c4e8edabSChris Kay 3001c4e8edabSChris Kay - xlat: Invalid `mm_cursor` checks in `mmap_add` and `mmap_add_ctx` 3002c4e8edabSChris Kay 3003c4e8edabSChris Kay - sdei: Missing `context.h` header 3004c4e8edabSChris Kay- Platforms 3005c4e8edabSChris Kay - common: Missing prototype warning for `plat_log_get_prefix` 3006c4e8edabSChris Kay 3007c4e8edabSChris Kay - arm: Insufficient maximum BL33 image size 3008c4e8edabSChris Kay 3009c4e8edabSChris Kay - arm: Potential memory corruption during BL2-BL31 transition 3010c4e8edabSChris Kay 3011c4e8edabSChris Kay On Arm platforms, the BL2 memory can be overlaid by BL31/BL32. The memory 3012c4e8edabSChris Kay descriptors describing the list of executable images are created in BL2 R/W 3013c4e8edabSChris Kay memory, which could be possibly corrupted later on by BL31/BL32 due to 3014c4e8edabSChris Kay overlay. This patch creates a reserved location in SRAM for these 3015c4e8edabSChris Kay descriptors and are copied over by BL2 before handing over to next BL image. 3016c4e8edabSChris Kay 3017c4e8edabSChris Kay - juno: Invalid behaviour when `CSS_USE_SCMI_SDS_DRIVER` is not set 3018c4e8edabSChris Kay 3019c4e8edabSChris Kay In `juno_pm.c` the `css_scmi_override_pm_ops` function was used regardless 3020c4e8edabSChris Kay of whether the build flag was set. The original behaviour has been restored 3021c4e8edabSChris Kay in the case where the build flag is not set. 3022c4e8edabSChris Kay- Tools 3023c4e8edabSChris Kay - fiptool: Incorrect UUID parsing of blob parameters 3024c4e8edabSChris Kay - doimage: Incorrect object rules in Makefile 3025c4e8edabSChris Kay 3026c4e8edabSChris Kay### Deprecations 3027c4e8edabSChris Kay 3028c4e8edabSChris Kay- Common Code 3029c4e8edabSChris Kay - `plat_crash_console_init` function 3030c4e8edabSChris Kay - `plat_crash_console_putc` function 3031c4e8edabSChris Kay - `plat_crash_console_flush` function 3032c4e8edabSChris Kay - `finish_console_register` macro 3033c4e8edabSChris Kay- AArch64-specific Code 3034c4e8edabSChris Kay - helpers: `get_afflvl_shift` 3035c4e8edabSChris Kay - helpers: `mpidr_mask_lower_afflvls` 3036c4e8edabSChris Kay - helpers: `eret` 3037c4e8edabSChris Kay- Secure Partition Manager (SPM) 3038c4e8edabSChris Kay - Boot-info structure 3039c4e8edabSChris Kay 3040c4e8edabSChris Kay### Known Issues 3041c4e8edabSChris Kay 3042c4e8edabSChris Kay- Build System Issues 3043c4e8edabSChris Kay - dtb: DTB creation not supported when building on a Windows host. 3044c4e8edabSChris Kay 3045c4e8edabSChris Kay This step in the build process is skipped when running on a Windows host. A 3046c4e8edabSChris Kay known issue from the 1.6 release. 3047c4e8edabSChris Kay- Platform Issues 3048c4e8edabSChris Kay - arm/juno: System suspend from Linux does not function as documented in the 3049c4e8edabSChris Kay user guide 3050c4e8edabSChris Kay 3051c4e8edabSChris Kay Following the instructions provided in the user guide document does not 3052c4e8edabSChris Kay result in the platform entering system suspend state as expected. A message 3053c4e8edabSChris Kay relating to the hdlcd driver failing to suspend will be emitted on the Linux 3054c4e8edabSChris Kay terminal. 3055c4e8edabSChris Kay 3056c4e8edabSChris Kay - arm/juno: The firmware update use-cases do not work with motherboard 3057c4e8edabSChris Kay firmware version \< v1.5.0 (the reset reason is not preserved). The Linaro 3058c4e8edabSChris Kay 18.04 release has MB v1.4.9. The MB v1.5.0 is available in Linaro 18.10 3059c4e8edabSChris Kay release. 3060c4e8edabSChris Kay 3061c4e8edabSChris Kay - mediatek/mt6795: This platform does not build in this release 3062c4e8edabSChris Kay 3063c4e8edabSChris Kay## 2.0 (2018-10-02) 3064c4e8edabSChris Kay 3065c4e8edabSChris Kay### New Features 3066c4e8edabSChris Kay 3067c4e8edabSChris Kay- Removal of a number of deprecated APIs 3068c4e8edabSChris Kay 3069c4e8edabSChris Kay - A new Platform Compatibility Policy document has been created which 3070c4e8edabSChris Kay references a wiki page that maintains a listing of deprecated interfaces and 3071c4e8edabSChris Kay the release after which they will be removed. 3072c4e8edabSChris Kay - All deprecated interfaces except the MULTI_CONSOLE_API have been removed 3073c4e8edabSChris Kay from the code base. 3074c4e8edabSChris Kay - Various Arm and partner platforms have been updated to remove the use of 3075c4e8edabSChris Kay removed APIs in this release. 3076c4e8edabSChris Kay - This release is otherwise unchanged from 1.6 release 3077c4e8edabSChris Kay 3078c4e8edabSChris Kay### Issues resolved since last release 3079c4e8edabSChris Kay 3080c4e8edabSChris Kay- No issues known at 1.6 release resolved in 2.0 release 3081c4e8edabSChris Kay 3082c4e8edabSChris Kay### Known Issues 3083c4e8edabSChris Kay 3084c4e8edabSChris Kay- DTB creation not supported when building on a Windows host. This step in the 3085c4e8edabSChris Kay build process is skipped when running on a Windows host. Known issue from 1.6 3086c4e8edabSChris Kay version. 3087c4e8edabSChris Kay- As a result of removal of deprecated interfaces the Nvidia Tegra, Marvell 3088c4e8edabSChris Kay Armada 8K and MediaTek MT6795 platforms do not build in this release. Also 3089c4e8edabSChris Kay MediaTek MT8173, NXP QorIQ LS1043A, NXP i.MX8QX, NXP i.MX8QMa, Rockchip 3090c4e8edabSChris Kay RK3328, Rockchip RK3368 and Rockchip RK3399 platforms have not been confirmed 3091c4e8edabSChris Kay to be working after the removal of the deprecated interfaces although they do 3092c4e8edabSChris Kay build. 3093c4e8edabSChris Kay 3094c4e8edabSChris Kay## 1.6 (2018-09-21) 3095c4e8edabSChris Kay 3096c4e8edabSChris Kay### New Features 3097c4e8edabSChris Kay 3098c4e8edabSChris Kay- Addressing Speculation Security Vulnerabilities 3099c4e8edabSChris Kay 3100c4e8edabSChris Kay - Implement static workaround for CVE-2018-3639 for AArch32 and AArch64 3101c4e8edabSChris Kay - Add support for dynamic mitigation for CVE-2018-3639 3102c4e8edabSChris Kay - Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76 3103c4e8edabSChris Kay - Ensure {{ SDEI }} handler executes with CVE-2018-3639 mitigation enabled 3104c4e8edabSChris Kay 3105c4e8edabSChris Kay- Introduce RAS handling on AArch64 3106c4e8edabSChris Kay 3107c4e8edabSChris Kay - Some RAS extensions are mandatory for Armv8.2 CPUs, with others mandatory 3108c4e8edabSChris Kay for Armv8.4 CPUs however, all extensions are also optional extensions to the 3109c4e8edabSChris Kay base Armv8.0 architecture. 3110c4e8edabSChris Kay - The Armv8 RAS Extensions introduced Standard Error Records which are a set 3111c4e8edabSChris Kay of standard registers to configure RAS node policy and allow RAS Nodes to 3112c4e8edabSChris Kay record and expose error information for error handling agents. 3113c4e8edabSChris Kay - Capabilities are provided to support RAS Node enumeration and iteration 3114c4e8edabSChris Kay along with individual interrupt registrations and fault injections support. 3115c4e8edabSChris Kay - Introduce handlers for Uncontainable errors, Double Faults and EL3 External 3116c4e8edabSChris Kay Aborts 3117c4e8edabSChris Kay 3118c4e8edabSChris Kay- Enable Memory Partitioning And Monitoring (MPAM) for lower EL's 3119c4e8edabSChris Kay 3120c4e8edabSChris Kay - Memory Partitioning And Monitoring is an Armv8.4 feature that enables 3121c4e8edabSChris Kay various memory system components and resources to define partitions. 3122c4e8edabSChris Kay Software running at various ELs can then assign themselves to the desired 3123c4e8edabSChris Kay partition to control their performance aspects. 3124c4e8edabSChris Kay - When ENABLE_MPAM_FOR_LOWER_ELS is set to 1, EL3 allows lower ELs to access 3125c4e8edabSChris Kay their own MPAM registers without trapping to EL3. This patch however, 3126c4e8edabSChris Kay doesn't make use of partitioning in EL3; platform initialisation code should 3127c4e8edabSChris Kay configure and use partitions in EL3 if required. 3128c4e8edabSChris Kay 3129c4e8edabSChris Kay- Introduce ROM Lib Feature 3130c4e8edabSChris Kay 3131c4e8edabSChris Kay - Support combining several libraries into a self-called "romlib" image, that 3132c4e8edabSChris Kay may be shared across images to reduce memory footprint. The romlib image is 3133c4e8edabSChris Kay stored in ROM but is accessed through a jump-table that may be stored in 3134c4e8edabSChris Kay read-write memory, allowing for the library code to be patched. 3135c4e8edabSChris Kay 3136c4e8edabSChris Kay- Introduce Backtrace Feature 3137c4e8edabSChris Kay 3138c4e8edabSChris Kay - This function displays the backtrace, the current EL and security state to 3139c4e8edabSChris Kay allow a post-processing tool to choose the right binary to interpret the 3140c4e8edabSChris Kay dump. 3141c4e8edabSChris Kay - Print backtrace in assert() and panic() to the console. 3142c4e8edabSChris Kay 3143c4e8edabSChris Kay- Code hygiene changes and alignment with MISRA C-2012 guideline with fixes 3144c4e8edabSChris Kay addressing issues complying to the following rules: 3145c4e8edabSChris Kay 3146c4e8edabSChris Kay - MISRA rules 4.9, 5.1, 5.3, 5.7, 8.2-8.5, 8.8, 8.13, 9.3, 10.1, 10.3-10.4, 3147c4e8edabSChris Kay 10.8, 11.3, 11.6, 12.1, 14.4, 15.7, 16.1-16.7, 17.7-17.8, 20.7, 20.10, 3148c4e8edabSChris Kay 20.12, 21.1, 21.15, 22.7 3149c4e8edabSChris Kay - Clean up the usage of void pointers to access symbols 3150c4e8edabSChris Kay - Increase usage of static qualifier to locally used functions and data 3151c4e8edabSChris Kay - Migrated to use of u_register_t for register read/write to better match 3152c4e8edabSChris Kay AArch32 and AArch64 type sizes 3153c4e8edabSChris Kay - Use int-ll64 for both AArch32 and AArch64 to assist in consistent format 3154c4e8edabSChris Kay strings between architectures 3155c4e8edabSChris Kay - Clean up TF-A libc by removing non arm copyrighted implementations and 3156c4e8edabSChris Kay replacing them with modified FreeBSD and SCC implementations 3157c4e8edabSChris Kay 3158c4e8edabSChris Kay- Various changes to support Clang linker and assembler 3159c4e8edabSChris Kay 3160c4e8edabSChris Kay - The clang assembler/preprocessor is used when Clang is selected. However, 3161c4e8edabSChris Kay the clang linker is not used because it is unable to link TF-A objects due 3162c4e8edabSChris Kay to immaturity of clang linker functionality at this time. 3163c4e8edabSChris Kay 3164c4e8edabSChris Kay- Refactor support APIs into Libraries 3165c4e8edabSChris Kay 3166c4e8edabSChris Kay - Evolve libfdt, mbed TLS library and standard C library sources as proper 3167c4e8edabSChris Kay libraries that TF-A may be linked against. 3168c4e8edabSChris Kay 3169c4e8edabSChris Kay- CPU Enhancements 3170c4e8edabSChris Kay 3171c4e8edabSChris Kay - Add CPU support for Cortex-Ares and Cortex-A76 3172c4e8edabSChris Kay - Add AMU support for Cortex-Ares 3173c4e8edabSChris Kay - Add initial CPU support for Cortex-Deimos 3174c4e8edabSChris Kay - Add initial CPU support for Cortex-Helios 3175c4e8edabSChris Kay - Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76 3176c4e8edabSChris Kay - Implement Cortex-Ares erratum 1043202 workaround 3177c4e8edabSChris Kay - Implement DSU erratum 936184 workaround 3178c4e8edabSChris Kay - Check presence of fix for errata 843419 in Cortex-A53 3179c4e8edabSChris Kay - Check presence of fix for errata 835769 in Cortex-A53 3180c4e8edabSChris Kay 3181c4e8edabSChris Kay- Translation Tables Enhancements 3182c4e8edabSChris Kay 3183c4e8edabSChris Kay - The xlat v2 library has been refactored in order to be reused by different 3184c4e8edabSChris Kay TF components at different EL's including the addition of EL2. Some 3185c4e8edabSChris Kay refactoring to make the code more generic and less specific to TF, in order 3186c4e8edabSChris Kay to reuse the library outside of this project. 3187c4e8edabSChris Kay 3188c4e8edabSChris Kay- SPM Enhancements 3189c4e8edabSChris Kay 3190c4e8edabSChris Kay - General cleanups and refactoring to pave the way to multiple partitions 3191c4e8edabSChris Kay support 3192c4e8edabSChris Kay 3193c4e8edabSChris Kay- SDEI Enhancements 3194c4e8edabSChris Kay 3195c4e8edabSChris Kay - Allow platforms to define explicit events 3196c4e8edabSChris Kay - Determine client EL from NS context's SCR_EL3 3197c4e8edabSChris Kay - Make dispatches synchronous 3198c4e8edabSChris Kay - Introduce jump primitives for BL31 3199c4e8edabSChris Kay - Mask events after CPU wakeup in {{ SDEI }} dispatcher to conform to the 3200c4e8edabSChris Kay specification 3201c4e8edabSChris Kay 3202c4e8edabSChris Kay- Misc TF-A Core Common Code Enhancements 3203c4e8edabSChris Kay 3204c4e8edabSChris Kay - Add support for eXecute In Place (XIP) memory in BL2 3205c4e8edabSChris Kay - Add support for the SMC Calling Convention 2.0 3206c4e8edabSChris Kay - Introduce External Abort handling on AArch64 External Abort routed to EL3 3207c4e8edabSChris Kay was reported as an unhandled exception and caused a panic. This change 3208c4e8edabSChris Kay enables Trusted Firmware-A to handle External Aborts routed to EL3. 3209c4e8edabSChris Kay - Save value of ACTLR_EL1 implementation-defined register in the CPU context 3210c4e8edabSChris Kay structure rather than forcing it to 0. 3211c4e8edabSChris Kay - Introduce ARM_LINUX_KERNEL_AS_BL33 build option, which allows BL31 to 3212c4e8edabSChris Kay directly jump to a Linux kernel. This makes for a quicker and simpler boot 3213c4e8edabSChris Kay flow, which might be useful in some test environments. 3214c4e8edabSChris Kay - Add dynamic configurations for BL31, BL32 and BL33 enabling support for 3215c4e8edabSChris Kay Chain of Trust (COT). 3216c4e8edabSChris Kay - Make TF UUID RFC 4122 compliant 3217c4e8edabSChris Kay 3218c4e8edabSChris Kay- New Platform Support 3219c4e8edabSChris Kay 3220c4e8edabSChris Kay - Arm SGI-575 3221c4e8edabSChris Kay - Arm SGM-775 3222c4e8edabSChris Kay - Allwinner sun50i_64 3223c4e8edabSChris Kay - Allwinner sun50i_h6 3224c4e8edabSChris Kay - NXP QorIQ LS1043A 3225c4e8edabSChris Kay - NXP i.MX8QX 3226c4e8edabSChris Kay - NXP i.MX8QM 3227c4e8edabSChris Kay - NXP i.MX7Solo WaRP7 3228c4e8edabSChris Kay - TI K3 3229c4e8edabSChris Kay - Socionext Synquacer SC2A11 3230c4e8edabSChris Kay - Marvell Armada 8K 3231c4e8edabSChris Kay - STMicroelectronics STM32MP1 3232c4e8edabSChris Kay 3233c4e8edabSChris Kay- Misc Generic Platform Common Code Enhancements 3234c4e8edabSChris Kay 3235c4e8edabSChris Kay - Add MMC framework that supports both eMMC and SD card devices 3236c4e8edabSChris Kay 3237c4e8edabSChris Kay- Misc Arm Platform Common Code Enhancements 3238c4e8edabSChris Kay 3239c4e8edabSChris Kay - Demonstrate PSCI MEM_PROTECT from el3_runtime 3240c4e8edabSChris Kay - Provide RAS support 3241c4e8edabSChris Kay - Migrate AArch64 port to the multi console driver. The old API is deprecated 3242c4e8edabSChris Kay and will eventually be removed. 3243c4e8edabSChris Kay - Move BL31 below BL2 to enable BL2 overlay resulting in changes in the layout 3244c4e8edabSChris Kay of BL images in memory to enable more efficient use of available space. 3245c4e8edabSChris Kay - Add cpp build processing for dtb that allows processing device tree with 3246c4e8edabSChris Kay external includes. 3247c4e8edabSChris Kay - Extend FIP io driver to support multiple FIP devices 3248c4e8edabSChris Kay - Add support for SCMI AP core configuration protocol v1.0 3249c4e8edabSChris Kay - Use SCMI AP core protocol to set the warm boot entrypoint 3250c4e8edabSChris Kay - Add support to Mbed TLS drivers for shared heap among different BL images to 3251c4e8edabSChris Kay help optimise memory usage 3252c4e8edabSChris Kay - Enable non-secure access to UART1 through a build option to support a serial 3253c4e8edabSChris Kay debug port for debugger connection 3254c4e8edabSChris Kay 3255c4e8edabSChris Kay- Enhancements for Arm Juno Platform 3256c4e8edabSChris Kay 3257c4e8edabSChris Kay - Add support for TrustZone Media Protection 1 (TZMP1) 3258c4e8edabSChris Kay 3259c4e8edabSChris Kay- Enhancements for Arm FVP Platform 3260c4e8edabSChris Kay 3261c4e8edabSChris Kay - Dynamic_config: remove the FVP dtb files 3262c4e8edabSChris Kay - Set DYNAMIC_WORKAROUND_CVE_2018_3639=1 on FVP by default 3263c4e8edabSChris Kay - Set the ability to dynamically disable Trusted Boot Board authentication to 3264c4e8edabSChris Kay be off by default with DYN_DISABLE_AUTH 3265c4e8edabSChris Kay - Add librom enhancement support in FVP 3266c4e8edabSChris Kay - Support shared Mbed TLS heap between BL1 and BL2 that allow a reduction in 3267c4e8edabSChris Kay BL2 size for FVP 3268c4e8edabSChris Kay 3269c4e8edabSChris Kay- Enhancements for Arm SGI/SGM Platform 3270c4e8edabSChris Kay 3271c4e8edabSChris Kay - Enable ARM_PLAT_MT flag for SGI-575 3272c4e8edabSChris Kay - Add dts files to enable support for dynamic config 3273c4e8edabSChris Kay - Add RAS support 3274c4e8edabSChris Kay - Support shared Mbed TLS heap for SGI and SGM between BL1 and BL2 3275c4e8edabSChris Kay 3276c4e8edabSChris Kay- Enhancements for Non Arm Platforms 3277c4e8edabSChris Kay 3278c4e8edabSChris Kay - Raspberry Pi Platform 3279c4e8edabSChris Kay - Hikey Platforms 3280c4e8edabSChris Kay - Xilinx Platforms 3281c4e8edabSChris Kay - QEMU Platform 3282c4e8edabSChris Kay - Rockchip rk3399 Platform 3283c4e8edabSChris Kay - TI Platforms 3284c4e8edabSChris Kay - Socionext Platforms 3285c4e8edabSChris Kay - Allwinner Platforms 3286c4e8edabSChris Kay - NXP Platforms 3287c4e8edabSChris Kay - NVIDIA Tegra Platform 3288c4e8edabSChris Kay - Marvell Platforms 3289c4e8edabSChris Kay - STMicroelectronics STM32MP1 Platform 3290c4e8edabSChris Kay 3291c4e8edabSChris Kay### Issues resolved since last release 3292c4e8edabSChris Kay 3293c4e8edabSChris Kay- No issues known at 1.5 release resolved in 1.6 release 3294c4e8edabSChris Kay 3295c4e8edabSChris Kay### Known Issues 3296c4e8edabSChris Kay 3297c4e8edabSChris Kay- DTB creation not supported when building on a Windows host. This step in the 3298c4e8edabSChris Kay build process is skipped when running on a Windows host. Known issue from 1.5 3299c4e8edabSChris Kay version. 3300c4e8edabSChris Kay 3301c4e8edabSChris Kay## 1.5 (2018-03-20) 3302c4e8edabSChris Kay 3303c4e8edabSChris Kay### New features 3304c4e8edabSChris Kay 3305c4e8edabSChris Kay- Added new firmware support to enable RAS (Reliability, Availability, and 3306c4e8edabSChris Kay Serviceability) functionality. 3307c4e8edabSChris Kay 3308c4e8edabSChris Kay - Secure Partition Manager (SPM): A Secure Partition is a software execution 3309c4e8edabSChris Kay environment instantiated in S-EL0 that can be used to implement simple 3310c4e8edabSChris Kay management and security services. The SPM is the firmware component that is 3311c4e8edabSChris Kay responsible for managing a Secure Partition. 3312c4e8edabSChris Kay 3313c4e8edabSChris Kay - SDEI dispatcher: Support for interrupt-based {{ SDEI }} events and all 3314c4e8edabSChris Kay interfaces as defined by the {{ SDEI }} specification v1.0, see 3315c4e8edabSChris Kay [SDEI Specification] 3316c4e8edabSChris Kay 3317c4e8edabSChris Kay - Exception Handling Framework (EHF): Framework that allows dispatching of EL3 3318c4e8edabSChris Kay interrupts to their registered handlers which are registered based on their 3319c4e8edabSChris Kay priorities. Facilitates firmware-first error handling policy where 3320c4e8edabSChris Kay asynchronous exceptions may be routed to EL3. 3321c4e8edabSChris Kay 3322c4e8edabSChris Kay Integrated the TSPD with EHF. 3323c4e8edabSChris Kay 3324c4e8edabSChris Kay- Updated PSCI support: 3325c4e8edabSChris Kay 3326c4e8edabSChris Kay - Implemented PSCI v1.1 optional features `MEM_PROTECT` and `SYSTEM_RESET2`. 3327c4e8edabSChris Kay The supported PSCI version was updated to v1.1. 3328c4e8edabSChris Kay 3329c4e8edabSChris Kay - Improved PSCI STAT timestamp collection, including moving accounting for 3330c4e8edabSChris Kay retention states to be inside the locks and fixing handling of wrap-around 3331c4e8edabSChris Kay when calculating residency in AArch32 execution state. 3332c4e8edabSChris Kay 3333c4e8edabSChris Kay - Added optional handler for early suspend that executes when suspending to a 3334c4e8edabSChris Kay power-down state and with data caches enabled. 3335c4e8edabSChris Kay 3336c4e8edabSChris Kay This may provide a performance improvement on platforms where it is safe to 3337c4e8edabSChris Kay perform some or all of the platform actions from `pwr_domain_suspend` with 3338c4e8edabSChris Kay the data caches enabled. 3339c4e8edabSChris Kay 3340c4e8edabSChris Kay- Enabled build option, BL2_AT_EL3, for BL2 to allow execution at EL3 without 3341c4e8edabSChris Kay any dependency on TF BL1. 3342c4e8edabSChris Kay 3343c4e8edabSChris Kay This allows platforms which already have a non-TF Boot ROM to directly load 3344c4e8edabSChris Kay and execute BL2 and subsequent BL stages without need for BL1. This was not 3345c4e8edabSChris Kay previously possible because BL2 executes at S-EL1 and cannot jump straight to 3346c4e8edabSChris Kay EL3. 3347c4e8edabSChris Kay 3348c4e8edabSChris Kay- Implemented support for SMCCC v1.1, including `SMCCC_VERSION` and 3349c4e8edabSChris Kay `SMCCC_ARCH_FEATURES`. 3350c4e8edabSChris Kay 3351c4e8edabSChris Kay Additionally, added support for `SMCCC_VERSION` in PSCI features to enable 3352c4e8edabSChris Kay discovery of the SMCCC version via PSCI feature call. 3353c4e8edabSChris Kay 3354c4e8edabSChris Kay- Added Dynamic Configuration framework which enables each of the boot loader 3355c4e8edabSChris Kay stages to be dynamically configured at runtime if required by the platform. 3356c4e8edabSChris Kay The boot loader stage may optionally specify a firmware configuration file 3357c4e8edabSChris Kay and/or hardware configuration file that can then be shared with the next boot 3358c4e8edabSChris Kay loader stage. 3359c4e8edabSChris Kay 3360c4e8edabSChris Kay Introduced a new BL handover interface that essentially allows passing of 4 3361c4e8edabSChris Kay arguments between the different BL stages. 3362c4e8edabSChris Kay 3363c4e8edabSChris Kay Updated cert_create and fip_tool to support the dynamic configuration files. 3364c4e8edabSChris Kay The COT also updated to support these new files. 3365c4e8edabSChris Kay 3366c4e8edabSChris Kay- Code hygiene changes and alignment with MISRA guideline: 3367c4e8edabSChris Kay 3368c4e8edabSChris Kay - Fix use of undefined macros. 3369c4e8edabSChris Kay - Achieved compliance with Mandatory MISRA coding rules. 3370c4e8edabSChris Kay - Achieved compliance for following Required MISRA rules for the default build 3371c4e8edabSChris Kay configurations on FVP and Juno platforms : 7.3, 8.3, 8.4, 8.5 and 8.8. 3372c4e8edabSChris Kay 3373c4e8edabSChris Kay- Added support for Armv8.2-A architectural features: 3374c4e8edabSChris Kay 3375c4e8edabSChris Kay - Updated translation table set-up to set the CnP (Common not Private) bit for 3376c4e8edabSChris Kay secure page tables so that multiple PEs in the same Inner Shareable domain 3377c4e8edabSChris Kay can use the same translation table entries for a given stage of translation 3378c4e8edabSChris Kay in a particular translation regime. 3379c4e8edabSChris Kay - Extended the supported values of ID_AA64MMFR0_EL1.PARange to include the 3380c4e8edabSChris Kay 52-bit Physical Address range. 3381c4e8edabSChris Kay - Added support for the Scalable Vector Extension to allow Normal world 3382c4e8edabSChris Kay software to access SVE functionality but disable access to SVE, SIMD and 3383c4e8edabSChris Kay floating point functionality from the Secure world in order to prevent 3384c4e8edabSChris Kay corruption of the Z-registers. 3385c4e8edabSChris Kay 3386c4e8edabSChris Kay- Added support for Armv8.4-A architectural feature Activity Monitor Unit (AMU) 3387c4e8edabSChris Kay 3388c4e8edabSChris Kay extensions. 3389c4e8edabSChris Kay 3390c4e8edabSChris Kay In addition to the v8.4 architectural extension, AMU support on Cortex-A75 was 3391c4e8edabSChris Kay implemented. 3392c4e8edabSChris Kay 3393c4e8edabSChris Kay- Enhanced OP-TEE support to enable use of pageable OP-TEE image. The Arm 3394c4e8edabSChris Kay standard platforms are updated to load up to 3 images for OP-TEE; header, 3395c4e8edabSChris Kay pager image and paged image. 3396c4e8edabSChris Kay 3397c4e8edabSChris Kay The chain of trust is extended to support the additional images. 3398c4e8edabSChris Kay 3399c4e8edabSChris Kay- Enhancements to the translation table library: 3400c4e8edabSChris Kay 3401c4e8edabSChris Kay - Introduced APIs to get and set the memory attributes of a region. 3402c4e8edabSChris Kay - Added support to manage both privilege levels in translation regimes that 3403c4e8edabSChris Kay describe translations for 2 Exception levels, specifically the EL1&0 3404c4e8edabSChris Kay translation regime, and extended the memory map region attributes to include 3405c4e8edabSChris Kay specifying Non-privileged access. 3406c4e8edabSChris Kay - Added support to specify the granularity of the mappings of each region, for 3407c4e8edabSChris Kay instance a 2MB region can be specified to be mapped with 4KB page tables 3408c4e8edabSChris Kay instead of a 2MB block. 3409c4e8edabSChris Kay - Disabled the higher VA range to avoid unpredictable behaviour if there is an 3410c4e8edabSChris Kay attempt to access addresses in the higher VA range. 3411c4e8edabSChris Kay - Added helpers for Device and Normal memory MAIR encodings that align with 3412c4e8edabSChris Kay the Arm Architecture Reference Manual for Armv8-A (Arm DDI0487B.b). 3413c4e8edabSChris Kay - Code hygiene including fixing type length and signedness of constants, 3414c4e8edabSChris Kay refactoring of function to enable the MMU, removing all instances where the 3415c4e8edabSChris Kay virtual address space is hardcoded and added comments that document 3416c4e8edabSChris Kay alignment needed between memory attributes and attributes specified in 3417c4e8edabSChris Kay TCR_ELx. 3418c4e8edabSChris Kay 3419c4e8edabSChris Kay- Updated GIC support: 3420c4e8edabSChris Kay 3421c4e8edabSChris Kay - Introduce new APIs for GICv2 and GICv3 that provide the capability to 3422c4e8edabSChris Kay specify interrupt properties rather than list of interrupt numbers alone. 3423c4e8edabSChris Kay The Arm platforms and other upstream platforms are migrated to use interrupt 3424c4e8edabSChris Kay properties. 3425c4e8edabSChris Kay 3426c4e8edabSChris Kay - Added helpers to save / restore the GICv3 context, specifically the 3427c4e8edabSChris Kay Distributor and Redistributor contexts and architectural parts of the ITS 3428c4e8edabSChris Kay power management. The Distributor and Redistributor helpers also support the 3429c4e8edabSChris Kay implementation-defined part of GIC-500 and GIC-600. 3430c4e8edabSChris Kay 3431c4e8edabSChris Kay Updated the Arm FVP platform to save / restore the GICv3 context on system 3432c4e8edabSChris Kay suspend / resume as an example of how to use the helpers. 3433c4e8edabSChris Kay 3434c4e8edabSChris Kay Introduced a new TZC secured DDR carve-out for use by Arm platforms for 3435c4e8edabSChris Kay storing EL3 runtime data such as the GICv3 register context. 3436c4e8edabSChris Kay 3437c4e8edabSChris Kay- Added support for Armv7-A architecture via build option ARM_ARCH_MAJOR=7. This 3438c4e8edabSChris Kay includes following features: 3439c4e8edabSChris Kay 3440c4e8edabSChris Kay - Updates GICv2 driver to manage GICv1 with security extensions. 3441c4e8edabSChris Kay - Software implementation for 32bit division. 3442c4e8edabSChris Kay - Enabled use of generic timer for platforms that do not set 3443c4e8edabSChris Kay ARM_CORTEX_Ax=yes. 3444c4e8edabSChris Kay - Support for Armv7-A Virtualization extensions \[DDI0406C_C\]. 3445c4e8edabSChris Kay - Support for both Armv7-A platforms that only have 32-bit addressing and 3446c4e8edabSChris Kay Armv7-A platforms that support large page addressing. 3447c4e8edabSChris Kay - Included support for following Armv7 CPUs: Cortex-A12, Cortex-A17, 3448c4e8edabSChris Kay Cortex-A7, Cortex-A5, Cortex-A9, Cortex-A15. 3449c4e8edabSChris Kay - Added support in QEMU for Armv7-A/Cortex-A15. 3450c4e8edabSChris Kay 3451c4e8edabSChris Kay- Enhancements to Firmware Update feature: 3452c4e8edabSChris Kay 3453c4e8edabSChris Kay - Updated the FWU documentation to describe the additional images needed for 3454c4e8edabSChris Kay Firmware update, and how they are used for both the Juno platform and the 3455c4e8edabSChris Kay Arm FVP platforms. 3456c4e8edabSChris Kay 3457c4e8edabSChris Kay- Enhancements to Trusted Board Boot feature: 3458c4e8edabSChris Kay 3459c4e8edabSChris Kay - Added support to cert_create tool for RSA PKCS1# v1.5 and SHA384, SHA512 and 3460c4e8edabSChris Kay SHA256. 3461c4e8edabSChris Kay - For Arm platforms added support to use ECDSA keys. 3462c4e8edabSChris Kay - Enhanced the mbed TLS wrapper layer to include support for both RSA and 3463c4e8edabSChris Kay ECDSA to enable runtime selection between RSA and ECDSA keys. 3464c4e8edabSChris Kay 3465c4e8edabSChris Kay- Added support for secure interrupt handling in AArch32 sp_min, hardcoded to 3466c4e8edabSChris Kay only handle FIQs. 3467c4e8edabSChris Kay 3468c4e8edabSChris Kay- Added support to allow a platform to load images from multiple boot sources, 3469c4e8edabSChris Kay for example from a second flash drive. 3470c4e8edabSChris Kay 3471c4e8edabSChris Kay- Added a logging framework that allows platforms to reduce the logging level at 3472c4e8edabSChris Kay runtime and additionally the prefix string can be defined by the platform. 3473c4e8edabSChris Kay 3474c4e8edabSChris Kay- Further improvements to register initialisation: 3475c4e8edabSChris Kay 3476c4e8edabSChris Kay - Control register PMCR_EL0 / PMCR is set to prohibit cycle counting in the 3477c4e8edabSChris Kay secure world. This register is added to the list of registers that are saved 3478c4e8edabSChris Kay and restored during world switch. 3479c4e8edabSChris Kay - When EL3 is running in AArch32 execution state, the Non-secure version of 3480c4e8edabSChris Kay SCTLR is explicitly initialised during the warmboot flow rather than relying 3481c4e8edabSChris Kay on the hardware to set the correct reset values. 3482c4e8edabSChris Kay 3483c4e8edabSChris Kay- Enhanced support for Arm platforms: 3484c4e8edabSChris Kay 3485c4e8edabSChris Kay - Introduced driver for Shared-Data-Structure (SDS) framework which is used 3486c4e8edabSChris Kay for communication between SCP and the AP CPU, replacing Boot-Over_MHU (BOM) 3487c4e8edabSChris Kay protocol. 3488c4e8edabSChris Kay 3489c4e8edabSChris Kay The Juno platform is migrated to use SDS with the SCMI support added in v1.3 3490c4e8edabSChris Kay and is set as default. 3491c4e8edabSChris Kay 3492c4e8edabSChris Kay The driver can be found in the plat/arm/css/drivers folder. 3493c4e8edabSChris Kay 3494c4e8edabSChris Kay - Improved memory usage by only mapping TSP memory region when the TSPD has 3495c4e8edabSChris Kay been included in the build. This reduces the memory footprint and avoids 3496c4e8edabSChris Kay unnecessary memory being mapped. 3497c4e8edabSChris Kay 3498c4e8edabSChris Kay - Updated support for multi-threading CPUs for FVP platforms - always check 3499c4e8edabSChris Kay the MT field in MPDIR and access the bit fields accordingly. 3500c4e8edabSChris Kay 3501c4e8edabSChris Kay - Support building for platforms that model DynamIQ configuration by 3502c4e8edabSChris Kay implementing all CPUs in a single cluster. 3503c4e8edabSChris Kay 3504c4e8edabSChris Kay - Improved nor flash driver, for instance clearing status registers before 3505c4e8edabSChris Kay sending commands. Driver can be found plat/arm/board/common folder. 3506c4e8edabSChris Kay 3507c4e8edabSChris Kay- Enhancements to QEMU platform: 3508c4e8edabSChris Kay 3509c4e8edabSChris Kay - Added support for TBB. 3510c4e8edabSChris Kay - Added support for using OP-TEE pageable image. 3511c4e8edabSChris Kay - Added support for LOAD_IMAGE_V2. 3512c4e8edabSChris Kay - Migrated to use translation table library v2 by default. 3513c4e8edabSChris Kay - Added support for SEPARATE_CODE_AND_RODATA. 3514c4e8edabSChris Kay 3515c4e8edabSChris Kay- Applied workarounds CVE-2017-5715 on Arm Cortex-A57, -A72, -A73 and -A75, and 3516c4e8edabSChris Kay for Armv7-A CPUs Cortex-A9, -A15 and -A17. 3517c4e8edabSChris Kay 3518c4e8edabSChris Kay- Applied errata workaround for Arm Cortex-A57: 859972. 3519c4e8edabSChris Kay 3520c4e8edabSChris Kay- Applied errata workaround for Arm Cortex-A72: 859971. 3521c4e8edabSChris Kay 3522c4e8edabSChris Kay- Added support for Poplar 96Board platform. 3523c4e8edabSChris Kay 3524c4e8edabSChris Kay- Added support for Raspberry Pi 3 platform. 3525c4e8edabSChris Kay 3526c4e8edabSChris Kay- Added Call Frame Information (CFI) assembler directives to the vector entries 3527c4e8edabSChris Kay which enables debuggers to display the backtrace of functions that triggered a 3528c4e8edabSChris Kay synchronous abort. 3529c4e8edabSChris Kay 3530c4e8edabSChris Kay- Added ability to build dtb. 3531c4e8edabSChris Kay 3532c4e8edabSChris Kay- Added support for pre-tool (cert_create and fiptool) image processing enabling 3533c4e8edabSChris Kay compression of the image files before processing by cert_create and fiptool. 3534c4e8edabSChris Kay 3535c4e8edabSChris Kay This can reduce fip size and may also speed up loading of images. The image 3536c4e8edabSChris Kay verification will also get faster because certificates are generated based on 3537c4e8edabSChris Kay compressed images. 3538c4e8edabSChris Kay 3539c4e8edabSChris Kay Imported zlib 1.2.11 to implement gunzip() for data compression. 3540c4e8edabSChris Kay 3541c4e8edabSChris Kay- Enhancements to fiptool: 3542c4e8edabSChris Kay 3543c4e8edabSChris Kay - Enabled the fiptool to be built using Visual Studio. 3544c4e8edabSChris Kay - Added padding bytes at the end of the last image in the fip to be facilitate 3545c4e8edabSChris Kay transfer by DMA. 3546c4e8edabSChris Kay 3547c4e8edabSChris Kay### Issues resolved since last release 3548c4e8edabSChris Kay 3549c4e8edabSChris Kay- TF-A can be built with optimisations disabled (-O0). 3550c4e8edabSChris Kay- Memory layout updated to enable Trusted Board Boot on Juno platform when 3551c4e8edabSChris Kay running TF-A in AArch32 execution mode (resolving [tf-issue#501]). 3552c4e8edabSChris Kay 3553c4e8edabSChris Kay### Known Issues 3554c4e8edabSChris Kay 3555c4e8edabSChris Kay- DTB creation not supported when building on a Windows host. This step in the 3556c4e8edabSChris Kay build process is skipped when running on a Windows host. 3557c4e8edabSChris Kay 3558c4e8edabSChris Kay## 1.4 (2017-07-07) 3559c4e8edabSChris Kay 3560c4e8edabSChris Kay### New features 3561c4e8edabSChris Kay 3562c4e8edabSChris Kay- Enabled support for platforms with hardware assisted coherency. 3563c4e8edabSChris Kay 3564c4e8edabSChris Kay A new build option HW_ASSISTED_COHERENCY allows platforms to take advantage of 3565c4e8edabSChris Kay the following optimisations: 3566c4e8edabSChris Kay 3567c4e8edabSChris Kay - Skip performing cache maintenance during power-up and power-down. 3568c4e8edabSChris Kay - Use spin-locks instead of bakery locks. 3569c4e8edabSChris Kay - Enable data caches early on warm-booted CPUs. 3570c4e8edabSChris Kay 3571c4e8edabSChris Kay- Added support for Cortex-A75 and Cortex-A55 processors. 3572c4e8edabSChris Kay 3573c4e8edabSChris Kay Both Cortex-A75 and Cortex-A55 processors use the Arm DynamIQ Shared Unit 3574c4e8edabSChris Kay (DSU). The power-down and power-up sequences are therefore mostly managed in 3575c4e8edabSChris Kay hardware, reducing complexity of the software operations. 3576c4e8edabSChris Kay 3577c4e8edabSChris Kay- Introduced Arm GIC-600 driver. 3578c4e8edabSChris Kay 3579c4e8edabSChris Kay Arm GIC-600 IP complies with Arm GICv3 architecture. For FVP platforms, the 3580c4e8edabSChris Kay GIC-600 driver is chosen when FVP_USE_GIC_DRIVER is set to FVP_GIC600. 3581c4e8edabSChris Kay 3582c4e8edabSChris Kay- Updated GICv3 support: 3583c4e8edabSChris Kay 3584c4e8edabSChris Kay - Introduced power management APIs for GICv3 Redistributor. These APIs allow 3585c4e8edabSChris Kay platforms to power down the Redistributor during CPU power on/off. Requires 3586c4e8edabSChris Kay the GICv3 implementations to have power management operations. 3587c4e8edabSChris Kay 3588c4e8edabSChris Kay Implemented the power management APIs for FVP. 3589c4e8edabSChris Kay 3590c4e8edabSChris Kay - GIC driver data is flushed by the primary CPU so that secondary CPU do not 3591c4e8edabSChris Kay read stale GIC data. 3592c4e8edabSChris Kay 3593c4e8edabSChris Kay- Added support for Arm System Control and Management Interface v1.0 (SCMI). 3594c4e8edabSChris Kay 3595c4e8edabSChris Kay The SCMI driver implements the power domain management and system power 3596c4e8edabSChris Kay management protocol of the SCMI specification (Arm DEN 0056ASCMI) for 3597c4e8edabSChris Kay communicating with any compliant power controller. 3598c4e8edabSChris Kay 3599c4e8edabSChris Kay Support is added for the Juno platform. The driver can be found in the 3600c4e8edabSChris Kay plat/arm/css/drivers folder. 3601c4e8edabSChris Kay 3602c4e8edabSChris Kay- Added support to enable pre-integration of TBB with the Arm TrustZone 3603c4e8edabSChris Kay CryptoCell product, to take advantage of its hardware Root of Trust and crypto 3604c4e8edabSChris Kay acceleration services. 3605c4e8edabSChris Kay 3606c4e8edabSChris Kay- Enabled Statistical Profiling Extensions for lower ELs. 3607c4e8edabSChris Kay 3608c4e8edabSChris Kay The firmware support is limited to the use of SPE in the Non-secure state and 3609c4e8edabSChris Kay accesses to the SPE specific registers from S-EL1 will trap to EL3. 3610c4e8edabSChris Kay 3611c4e8edabSChris Kay The SPE are architecturally specified for AArch64 only. 3612c4e8edabSChris Kay 3613c4e8edabSChris Kay- Code hygiene changes aligned with MISRA guidelines: 3614c4e8edabSChris Kay 3615c4e8edabSChris Kay - Fixed signed / unsigned comparison warnings in the translation table 3616c4e8edabSChris Kay library. 3617c4e8edabSChris Kay - Added U(\_x) macro and together with the existing ULL(\_x) macro fixed some 3618c4e8edabSChris Kay of the signed-ness defects flagged by the MISRA scanner. 3619c4e8edabSChris Kay 3620c4e8edabSChris Kay- Enhancements to Firmware Update feature: 3621c4e8edabSChris Kay 3622c4e8edabSChris Kay - The FWU logic now checks for overlapping images to prevent execution of 3623c4e8edabSChris Kay unauthenticated arbitrary code. 3624c4e8edabSChris Kay - Introduced new FWU_SMC_IMAGE_RESET SMC that changes the image loading state 3625c4e8edabSChris Kay machine to go from COPYING, COPIED or AUTHENTICATED states to RESET state. 3626c4e8edabSChris Kay Previously, this was only possible when the authentication of an image 3627c4e8edabSChris Kay failed or when the execution of the image finished. 3628c4e8edabSChris Kay - Fixed integer overflow which addressed TFV-1: Malformed Firmware Update SMC 3629c4e8edabSChris Kay can result in copy of unexpectedly large data into secure memory. 3630c4e8edabSChris Kay 3631c4e8edabSChris Kay- Introduced support for Arm Compiler 6 and LLVM (clang). 3632c4e8edabSChris Kay 3633c4e8edabSChris Kay TF-A can now also be built with the Arm Compiler 6 or the clang compilers. The 3634c4e8edabSChris Kay assembler and linker must be provided by the GNU toolchain. 3635c4e8edabSChris Kay 3636c4e8edabSChris Kay Tested with Arm CC 6.7 and clang 3.9.x and 4.0.x. 3637c4e8edabSChris Kay 3638c4e8edabSChris Kay- Memory footprint improvements: 3639c4e8edabSChris Kay 3640c4e8edabSChris Kay - Introduced `tf_snprintf`, a reduced version of `snprintf` which has support 3641c4e8edabSChris Kay for a limited set of formats. 3642c4e8edabSChris Kay 3643c4e8edabSChris Kay The mbedtls driver is updated to optionally use `tf_snprintf` instead of 3644c4e8edabSChris Kay `snprintf`. 3645c4e8edabSChris Kay 3646c4e8edabSChris Kay - The `assert()` is updated to no longer print the function name, and 3647c4e8edabSChris Kay additional logging options are supported via an optional platform define 3648c4e8edabSChris Kay `PLAT_LOG_LEVEL_ASSERT`, which controls how verbose the assert output is. 3649c4e8edabSChris Kay 3650c4e8edabSChris Kay- Enhancements to TF-A support when running in AArch32 execution state: 3651c4e8edabSChris Kay 3652c4e8edabSChris Kay - Support booting SP_MIN and BL33 in AArch32 execution mode on Juno. Due to 3653c4e8edabSChris Kay hardware limitations, BL1 and BL2 boot in AArch64 state and there is 3654c4e8edabSChris Kay additional trampoline code to warm reset into SP_MIN in AArch32 execution 3655c4e8edabSChris Kay state. 3656c4e8edabSChris Kay - Added support for Arm Cortex-A53/57/72 MPCore processors including the 3657c4e8edabSChris Kay errata workarounds that are already implemented for AArch64 execution state. 3658c4e8edabSChris Kay - For FVP platforms, added AArch32 Trusted Board Boot support, including the 3659c4e8edabSChris Kay Firmware Update feature. 3660c4e8edabSChris Kay 3661c4e8edabSChris Kay- Introduced Arm SiP service for use by Arm standard platforms. 3662c4e8edabSChris Kay 3663c4e8edabSChris Kay - Added new Arm SiP Service SMCs to enable the Non-secure world to read PMF 3664c4e8edabSChris Kay timestamps. 3665c4e8edabSChris Kay 3666c4e8edabSChris Kay Added PMF instrumentation points in TF-A in order to quantify the overall 3667c4e8edabSChris Kay time spent in the PSCI software implementation. 3668c4e8edabSChris Kay 3669c4e8edabSChris Kay - Added new Arm SiP service SMC to switch execution state. 3670c4e8edabSChris Kay 3671c4e8edabSChris Kay This allows the lower exception level to change its execution state from 3672c4e8edabSChris Kay AArch64 to AArch32, or vice verse, via a request to EL3. 3673c4e8edabSChris Kay 3674c4e8edabSChris Kay- Migrated to use SPDX\[0\] license identifiers to make software license 3675c4e8edabSChris Kay auditing simpler. 3676c4e8edabSChris Kay 3677c4e8edabSChris Kay \:::\{note} Files that have been imported by FreeBSD have not been modified. 3678c4e8edabSChris Kay \::: 3679c4e8edabSChris Kay 3680c4e8edabSChris Kay \[0\]: <https://spdx.org/> 3681c4e8edabSChris Kay 3682c4e8edabSChris Kay- Enhancements to the translation table library: 3683c4e8edabSChris Kay 3684c4e8edabSChris Kay - Added version 2 of translation table library that allows different 3685c4e8edabSChris Kay translation tables to be modified by using different 'contexts'. Version 1 3686c4e8edabSChris Kay of the translation table library only allows the current EL's translation 3687c4e8edabSChris Kay tables to be modified. 3688c4e8edabSChris Kay 3689c4e8edabSChris Kay Version 2 of the translation table also added support for dynamic regions; 3690c4e8edabSChris Kay regions that can be added and removed dynamically whilst the MMU is enabled. 3691c4e8edabSChris Kay Static regions can only be added or removed before the MMU is enabled. 3692c4e8edabSChris Kay 3693c4e8edabSChris Kay The dynamic mapping functionality is enabled or disabled when compiling by 3694c4e8edabSChris Kay setting the build option PLAT_XLAT_TABLES_DYNAMIC to 1 or 0. This can be 3695c4e8edabSChris Kay done per-image. 3696c4e8edabSChris Kay 3697c4e8edabSChris Kay - Added support for translation regimes with two virtual address spaces such 3698c4e8edabSChris Kay as the one shared by EL1 and EL0. 3699c4e8edabSChris Kay 3700c4e8edabSChris Kay The library does not support initializing translation tables for EL0 3701c4e8edabSChris Kay software. 3702c4e8edabSChris Kay 3703c4e8edabSChris Kay - Added support to mark the translation tables as non-cacheable using an 3704c4e8edabSChris Kay additional build option `XLAT_TABLE_NC`. 3705c4e8edabSChris Kay 3706c4e8edabSChris Kay- Added support for GCC stack protection. A new build option 3707c4e8edabSChris Kay ENABLE_STACK_PROTECTOR was introduced that enables compilation of all BL 3708c4e8edabSChris Kay images with one of the GCC -fstack-protector-\* options. 3709c4e8edabSChris Kay 3710c4e8edabSChris Kay A new platform function plat_get_stack_protector_canary() was introduced that 3711c4e8edabSChris Kay returns a value used to initialize the canary for stack corruption detection. 3712c4e8edabSChris Kay For increased effectiveness of protection platforms must provide an 3713c4e8edabSChris Kay implementation that returns a random value. 3714c4e8edabSChris Kay 3715c4e8edabSChris Kay- Enhanced support for Arm platforms: 3716c4e8edabSChris Kay 3717c4e8edabSChris Kay - Added support for multi-threading CPUs, indicated by `MT` field in MPDIR. A 3718c4e8edabSChris Kay new build flag `ARM_PLAT_MT` is added, and when enabled, the functions 3719c4e8edabSChris Kay accessing MPIDR assume that the `MT` bit is set for the platform and access 3720c4e8edabSChris Kay the bit fields accordingly. 3721c4e8edabSChris Kay 3722c4e8edabSChris Kay Also, a new API `plat_arm_get_cpu_pe_count` is added when `ARM_PLAT_MT` is 3723c4e8edabSChris Kay enabled, returning the Processing Element count within the physical CPU 3724c4e8edabSChris Kay corresponding to `mpidr`. 3725c4e8edabSChris Kay 3726c4e8edabSChris Kay - The Arm platforms migrated to use version 2 of the translation tables. 3727c4e8edabSChris Kay 3728c4e8edabSChris Kay - Introduced a new Arm platform layer API `plat_arm_psci_override_pm_ops` 3729c4e8edabSChris Kay which allows Arm platforms to modify `plat_arm_psci_pm_ops` and therefore 3730c4e8edabSChris Kay dynamically define PSCI capability. 3731c4e8edabSChris Kay 3732c4e8edabSChris Kay - The Arm platforms migrated to use IMAGE_LOAD_V2 by default. 3733c4e8edabSChris Kay 3734c4e8edabSChris Kay- Enhanced reporting of errata workaround status with the following policy: 3735c4e8edabSChris Kay 3736c4e8edabSChris Kay - If an errata workaround is enabled: 3737c4e8edabSChris Kay 3738c4e8edabSChris Kay - If it applies (i.e. the CPU is affected by the errata), an INFO message is 3739c4e8edabSChris Kay printed, confirming that the errata workaround has been applied. 3740c4e8edabSChris Kay - If it does not apply, a VERBOSE message is printed, confirming that the 3741c4e8edabSChris Kay errata workaround has been skipped. 3742c4e8edabSChris Kay 3743c4e8edabSChris Kay - If an errata workaround is not enabled, but would have applied had it been, 3744c4e8edabSChris Kay a WARN message is printed, alerting that errata workaround is missing. 3745c4e8edabSChris Kay 3746c4e8edabSChris Kay- Added build options ARM_ARCH_MAJOR and ARM_ARM_MINOR to choose the 3747c4e8edabSChris Kay architecture version to target TF-A. 3748c4e8edabSChris Kay 3749c4e8edabSChris Kay- Updated the spin lock implementation to use the more efficient CAS (Compare 3750c4e8edabSChris Kay And Swap) instruction when available. This instruction was introduced in 3751c4e8edabSChris Kay Armv8.1-A. 3752c4e8edabSChris Kay 3753c4e8edabSChris Kay- Applied errata workaround for Arm Cortex-A53: 855873. 3754c4e8edabSChris Kay 3755c4e8edabSChris Kay- Applied errata workaround for Arm-Cortex-A57: 813419. 3756c4e8edabSChris Kay 3757c4e8edabSChris Kay- Enabled all A53 and A57 errata workarounds for Juno, both in AArch64 and 3758c4e8edabSChris Kay AArch32 execution states. 3759c4e8edabSChris Kay 3760c4e8edabSChris Kay- Added support for Socionext UniPhier SoC platform. 3761c4e8edabSChris Kay 3762c4e8edabSChris Kay- Added support for Hikey960 and Hikey platforms. 3763c4e8edabSChris Kay 3764c4e8edabSChris Kay- Added support for Rockchip RK3328 platform. 3765c4e8edabSChris Kay 3766c4e8edabSChris Kay- Added support for NVidia Tegra T186 platform. 3767c4e8edabSChris Kay 3768c4e8edabSChris Kay- Added support for Designware emmc driver. 3769c4e8edabSChris Kay 3770c4e8edabSChris Kay- Imported libfdt v1.4.2 that addresses buffer overflow in fdt_offset_ptr(). 3771c4e8edabSChris Kay 3772c4e8edabSChris Kay- Enhanced the CPU operations framework to allow power handlers to be registered 3773c4e8edabSChris Kay on per-level basis. This enables support for future CPUs that have multiple 3774c4e8edabSChris Kay threads which might need powering down individually. 3775c4e8edabSChris Kay 3776c4e8edabSChris Kay- Updated register initialisation to prevent unexpected behaviour: 3777c4e8edabSChris Kay 3778c4e8edabSChris Kay - Debug registers MDCR-EL3/SDCR and MDCR_EL2/HDCR are initialised to avoid 3779c4e8edabSChris Kay unexpected traps into the higher exception levels and disable secure 3780c4e8edabSChris Kay self-hosted debug. Additionally, secure privileged external debug on Juno is 3781c4e8edabSChris Kay disabled by programming the appropriate Juno SoC registers. 3782c4e8edabSChris Kay - EL2 and EL3 configurable controls are initialised to avoid unexpected traps 3783c4e8edabSChris Kay in the higher exception levels. 3784c4e8edabSChris Kay - Essential control registers are fully initialised on EL3 start-up, when 3785c4e8edabSChris Kay initialising the non-secure and secure context structures and when preparing 3786c4e8edabSChris Kay to leave EL3 for a lower EL. This gives better alignment with the Arm ARM 3787c4e8edabSChris Kay which states that software must initialise RES0 and RES1 fields with 0 / 1. 3788c4e8edabSChris Kay 3789c4e8edabSChris Kay- Enhanced PSCI support: 3790c4e8edabSChris Kay 3791c4e8edabSChris Kay - Introduced new platform interfaces that decouple PSCI stat residency 3792c4e8edabSChris Kay calculation from PMF, enabling platforms to use alternative methods of 3793c4e8edabSChris Kay capturing timestamps. 3794c4e8edabSChris Kay - PSCI stat accounting performed for retention/standby states when requested 3795c4e8edabSChris Kay at multiple power levels. 3796c4e8edabSChris Kay 3797c4e8edabSChris Kay- Simplified fiptool to have a single linked list of image descriptors. 3798c4e8edabSChris Kay 3799c4e8edabSChris Kay- For the TSP, resolved corruption of pre-empted secure context by aborting any 3800c4e8edabSChris Kay pre-empted SMC during PSCI power management requests. 3801c4e8edabSChris Kay 3802c4e8edabSChris Kay### Issues resolved since last release 3803c4e8edabSChris Kay 3804c4e8edabSChris Kay- TF-A can be built with the latest mbed TLS version (v2.4.2). The earlier 3805c4e8edabSChris Kay version 2.3.0 cannot be used due to build warnings that the TF-A build system 3806c4e8edabSChris Kay interprets as errors. 3807c4e8edabSChris Kay- TBBR, including the Firmware Update feature is now supported on FVP platforms 3808c4e8edabSChris Kay when running TF-A in AArch32 state. 3809c4e8edabSChris Kay- The version of the AEMv8 Base FVP used in this release has resolved the issue 3810c4e8edabSChris Kay of the model executing a reset instead of terminating in response to a 3811c4e8edabSChris Kay shutdown request using the PSCI SYSTEM_OFF API. 3812c4e8edabSChris Kay 3813c4e8edabSChris Kay### Known Issues 3814c4e8edabSChris Kay 3815c4e8edabSChris Kay- Building TF-A with compiler optimisations disabled (-O0) fails. 3816c4e8edabSChris Kay- Trusted Board Boot currently does not work on Juno when running Trusted 3817c4e8edabSChris Kay Firmware in AArch32 execution state due to error when loading the sp_min to 3818c4e8edabSChris Kay memory because of lack of free space available. See [tf-issue#501] for more 3819c4e8edabSChris Kay details. 3820c4e8edabSChris Kay- The errata workaround for A53 errata 843419 is only available from binutils 3821c4e8edabSChris Kay 2.26 and is not present in GCC4.9. If this errata is applicable to the 3822c4e8edabSChris Kay platform, please use GCC compiler version of at least 5.0. See [PR#1002] for 3823c4e8edabSChris Kay more details. 3824c4e8edabSChris Kay 3825c4e8edabSChris Kay## 1.3 (2016-10-13) 3826c4e8edabSChris Kay 3827c4e8edabSChris Kay### New features 3828c4e8edabSChris Kay 3829c4e8edabSChris Kay- Added support for running TF-A in AArch32 execution state. 3830c4e8edabSChris Kay 3831c4e8edabSChris Kay The PSCI library has been refactored to allow integration with **EL3 Runtime 3832c4e8edabSChris Kay Software**. This is software that is executing at the highest secure privilege 3833c4e8edabSChris Kay which is EL3 in AArch64 or Secure SVC/Monitor mode in AArch32. See 3834c4e8edabSChris Kay \{ref}`PSCI Library Integration guide for Armv8-A AArch32 systems`. 3835c4e8edabSChris Kay 3836c4e8edabSChris Kay Included is a minimal AArch32 Secure Payload, **SP-MIN**, that illustrates the 3837c4e8edabSChris Kay usage and integration of the PSCI library with EL3 Runtime Software running in 3838c4e8edabSChris Kay AArch32 state. 3839c4e8edabSChris Kay 3840c4e8edabSChris Kay Booting to the BL1/BL2 images as well as booting straight to the Secure 3841c4e8edabSChris Kay Payload is supported. 3842c4e8edabSChris Kay 3843c4e8edabSChris Kay- Improvements to the initialization framework for the PSCI service and Arm 3844c4e8edabSChris Kay Standard Services in general. 3845c4e8edabSChris Kay 3846c4e8edabSChris Kay The PSCI service is now initialized as part of Arm Standard Service 3847c4e8edabSChris Kay initialization. This consolidates the initializations of any Arm Standard 3848c4e8edabSChris Kay Service that may be added in the future. 3849c4e8edabSChris Kay 3850c4e8edabSChris Kay A new function `get_arm_std_svc_args()` is introduced to get arguments 3851c4e8edabSChris Kay corresponding to each standard service and must be implemented by the EL3 3852c4e8edabSChris Kay Runtime Software. 3853c4e8edabSChris Kay 3854c4e8edabSChris Kay For PSCI, a new versioned structure `psci_lib_args_t` is introduced to 3855c4e8edabSChris Kay initialize the PSCI Library. **Note** this is a compatibility break due to the 3856c4e8edabSChris Kay change in the prototype of `psci_setup()`. 3857c4e8edabSChris Kay 3858c4e8edabSChris Kay- To support AArch32 builds of BL1 and BL2, implemented a new, alternative 3859c4e8edabSChris Kay firmware image loading mechanism that adds flexibility. 3860c4e8edabSChris Kay 3861c4e8edabSChris Kay The current mechanism has a hard-coded set of images and execution order 3862c4e8edabSChris Kay (BL31, BL32, etc). The new mechanism is data-driven by a list of image 3863c4e8edabSChris Kay descriptors provided by the platform code. 3864c4e8edabSChris Kay 3865c4e8edabSChris Kay Arm platforms have been updated to support the new loading mechanism. 3866c4e8edabSChris Kay 3867c4e8edabSChris Kay The new mechanism is enabled by a build flag (`LOAD_IMAGE_V2`) which is 3868c4e8edabSChris Kay currently off by default for the AArch64 build. 3869c4e8edabSChris Kay 3870c4e8edabSChris Kay **Note** `TRUSTED_BOARD_BOOT` is currently not supported when `LOAD_IMAGE_V2` 3871c4e8edabSChris Kay is enabled. 3872c4e8edabSChris Kay 3873c4e8edabSChris Kay- Updated requirements for making contributions to TF-A. 3874c4e8edabSChris Kay 3875c4e8edabSChris Kay Commits now must have a 'Signed-off-by:' field to certify that the 3876c4e8edabSChris Kay contribution has been made under the terms of the 3877c4e8edabSChris Kay {download}`Developer Certificate of Origin <../dco.txt>`. 3878c4e8edabSChris Kay 3879c4e8edabSChris Kay A signed CLA is no longer required. 3880c4e8edabSChris Kay 3881c4e8edabSChris Kay The {ref}`Contributor's Guide` has been updated to reflect this change. 3882c4e8edabSChris Kay 3883c4e8edabSChris Kay- Introduced Performance Measurement Framework (PMF) which provides support for 3884c4e8edabSChris Kay capturing, storing, dumping and retrieving time-stamps to measure the 3885c4e8edabSChris Kay execution time of critical paths in the firmware. This relies on defining 3886c4e8edabSChris Kay fixed sample points at key places in the code. 3887c4e8edabSChris Kay 3888c4e8edabSChris Kay- To support the QEMU platform port, imported libfdt v1.4.1 from 3889c4e8edabSChris Kay <https://git.kernel.org/pub/scm/utils/dtc/dtc.git> 3890c4e8edabSChris Kay 3891c4e8edabSChris Kay- Updated PSCI support: 3892c4e8edabSChris Kay 3893c4e8edabSChris Kay - Added support for PSCI NODE_HW_STATE API for Arm platforms. 3894c4e8edabSChris Kay - New optional platform hook, `pwr_domain_pwr_down_wfi()`, in `plat_psci_ops` 3895c4e8edabSChris Kay to enable platforms to perform platform-specific actions needed to enter 3896c4e8edabSChris Kay powerdown, including the 'wfi' invocation. 3897c4e8edabSChris Kay - PSCI STAT residency and count functions have been added on Arm platforms by 3898c4e8edabSChris Kay using PMF. 3899c4e8edabSChris Kay 3900c4e8edabSChris Kay- Enhancements to the translation table library: 3901c4e8edabSChris Kay 3902c4e8edabSChris Kay - Limited memory mapping support for region overlaps to only allow regions to 3903c4e8edabSChris Kay overlap that are identity mapped or have the same virtual to physical 3904c4e8edabSChris Kay address offset, and overlap completely but must not cover the same area. 3905c4e8edabSChris Kay 3906c4e8edabSChris Kay This limitation will enable future enhancements without having to support 3907c4e8edabSChris Kay complex edge cases that may not be necessary. 3908c4e8edabSChris Kay 3909c4e8edabSChris Kay - The initial translation lookup level is now inferred from the virtual 3910c4e8edabSChris Kay address space size. Previously, it was hard-coded. 3911c4e8edabSChris Kay 3912c4e8edabSChris Kay - Added support for mapping Normal, Inner Non-cacheable, Outer Non-cacheable 3913c4e8edabSChris Kay memory in the translation table library. 3914c4e8edabSChris Kay 3915c4e8edabSChris Kay This can be useful to map a non-cacheable memory region, such as a DMA 3916c4e8edabSChris Kay buffer. 3917c4e8edabSChris Kay 3918c4e8edabSChris Kay - Introduced the MT_EXECUTE/MT_EXECUTE_NEVER memory mapping attributes to 3919c4e8edabSChris Kay specify the access permissions for instruction execution of a memory region. 3920c4e8edabSChris Kay 3921c4e8edabSChris Kay- Enabled support to isolate code and read-only data on separate memory pages, 3922c4e8edabSChris Kay allowing independent access control to be applied to each. 3923c4e8edabSChris Kay 3924c4e8edabSChris Kay- Enabled SCR_EL3.SIF (Secure Instruction Fetch) bit in BL1 and BL31 common 3925c4e8edabSChris Kay architectural setup code, preventing fetching instructions from non-secure 3926c4e8edabSChris Kay memory when in secure state. 3927c4e8edabSChris Kay 3928c4e8edabSChris Kay- Enhancements to FIP support: 3929c4e8edabSChris Kay 3930c4e8edabSChris Kay - Replaced `fip_create` with `fiptool` which provides a more consistent and 3931c4e8edabSChris Kay intuitive interface as well as additional support to remove an image from a 3932c4e8edabSChris Kay FIP file. 3933c4e8edabSChris Kay - Enabled printing the SHA256 digest with info command, allowing quick 3934c4e8edabSChris Kay verification of an image within a FIP without having to extract the image 3935c4e8edabSChris Kay and running sha256sum on it. 3936c4e8edabSChris Kay - Added support for unpacking the contents of an existing FIP file into the 3937c4e8edabSChris Kay working directory. 3938c4e8edabSChris Kay - Aligned command line options for specifying images to use same naming 3939c4e8edabSChris Kay convention as specified by TBBR and already used in cert_create tool. 3940c4e8edabSChris Kay 3941c4e8edabSChris Kay- Refactored the TZC-400 driver to also support memory controllers that 3942c4e8edabSChris Kay integrate TZC functionality, for example Arm CoreLink DMC-500. Also added 3943c4e8edabSChris Kay DMC-500 specific support. 3944c4e8edabSChris Kay 3945c4e8edabSChris Kay- Implemented generic delay timer based on the system generic counter and 3946c4e8edabSChris Kay migrated all platforms to use it. 3947c4e8edabSChris Kay 3948c4e8edabSChris Kay- Enhanced support for Arm platforms: 3949c4e8edabSChris Kay 3950c4e8edabSChris Kay - Updated image loading support to make SCP images (SCP_BL2 and SCP_BL2U) 3951c4e8edabSChris Kay optional. 3952c4e8edabSChris Kay - Enhanced topology description support to allow multi-cluster topology 3953c4e8edabSChris Kay definitions. 3954c4e8edabSChris Kay - Added interconnect abstraction layer to help platform ports select the right 3955c4e8edabSChris Kay interconnect driver, CCI or CCN, for the platform. 3956c4e8edabSChris Kay - Added support to allow loading BL31 in the TZC-secured DRAM instead of the 3957c4e8edabSChris Kay default secure SRAM. 3958c4e8edabSChris Kay - Added support to use a System Security Control (SSC) Registers Unit enabling 3959c4e8edabSChris Kay TF-A to be compiled to support multiple Arm platforms and then select one at 3960c4e8edabSChris Kay runtime. 3961c4e8edabSChris Kay - Restricted mapping of Trusted ROM in BL1 to what is actually needed by BL1 3962c4e8edabSChris Kay rather than entire Trusted ROM region. 3963c4e8edabSChris Kay - Flash is now mapped as execute-never by default. This increases security by 3964c4e8edabSChris Kay restricting the executable region to what is strictly needed. 3965c4e8edabSChris Kay 3966c4e8edabSChris Kay- Applied following erratum workarounds for Cortex-A57: 833471, 826977, 829520, 3967c4e8edabSChris Kay 828024 and 826974. 3968c4e8edabSChris Kay 3969c4e8edabSChris Kay- Added support for Mediatek MT6795 platform. 3970c4e8edabSChris Kay 3971c4e8edabSChris Kay- Added support for QEMU virtualization Armv8-A target. 3972c4e8edabSChris Kay 3973c4e8edabSChris Kay- Added support for Rockchip RK3368 and RK3399 platforms. 3974c4e8edabSChris Kay 3975c4e8edabSChris Kay- Added support for Xilinx Zynq UltraScale+ MPSoC platform. 3976c4e8edabSChris Kay 3977c4e8edabSChris Kay- Added support for Arm Cortex-A73 MPCore Processor. 3978c4e8edabSChris Kay 3979c4e8edabSChris Kay- Added support for Arm Cortex-A72 processor. 3980c4e8edabSChris Kay 3981c4e8edabSChris Kay- Added support for Arm Cortex-A35 processor. 3982c4e8edabSChris Kay 3983c4e8edabSChris Kay- Added support for Arm Cortex-A32 MPCore Processor. 3984c4e8edabSChris Kay 3985c4e8edabSChris Kay- Enabled preloaded BL33 alternative boot flow, in which BL2 does not load BL33 3986c4e8edabSChris Kay from non-volatile storage and BL31 hands execution over to a preloaded BL33. 3987c4e8edabSChris Kay The User Guide has been updated with an example of how to use this option with 3988c4e8edabSChris Kay a bootwrapped kernel. 3989c4e8edabSChris Kay 3990c4e8edabSChris Kay- Added support to build TF-A on a Windows-based host machine. 3991c4e8edabSChris Kay 3992c4e8edabSChris Kay- Updated Trusted Board Boot prototype implementation: 3993c4e8edabSChris Kay 3994c4e8edabSChris Kay - Enabled the ability for a production ROM with TBBR enabled to boot test 3995c4e8edabSChris Kay software before a real ROTPK is deployed (e.g. manufacturing mode). Added 3996c4e8edabSChris Kay support to use ROTPK in certificate without verifying against the platform 3997c4e8edabSChris Kay value when `ROTPK_NOT_DEPLOYED` bit is set. 3998c4e8edabSChris Kay - Added support for non-volatile counter authentication to the Authentication 3999c4e8edabSChris Kay Module to protect against roll-back. 4000c4e8edabSChris Kay 4001c4e8edabSChris Kay- Updated GICv3 support: 4002c4e8edabSChris Kay 4003c4e8edabSChris Kay - Enabled processor power-down and automatic power-on using GICv3. 4004c4e8edabSChris Kay - Enabled G1S or G0 interrupts to be configured independently. 4005c4e8edabSChris Kay - Changed FVP default interrupt driver to be the GICv3-only driver. **Note** 4006c4e8edabSChris Kay the default build of TF-A will not be able to boot Linux kernel with GICv2 4007c4e8edabSChris Kay FDT blob. 4008c4e8edabSChris Kay - Enabled wake-up from CPU_SUSPEND to stand-by by temporarily re-routing 4009c4e8edabSChris Kay interrupts and then restoring after resume. 4010c4e8edabSChris Kay 4011c4e8edabSChris Kay### Issues resolved since last release 4012c4e8edabSChris Kay 4013c4e8edabSChris Kay### Known issues 4014c4e8edabSChris Kay 4015c4e8edabSChris Kay- The version of the AEMv8 Base FVP used in this release resets the model 4016c4e8edabSChris Kay instead of terminating its execution in response to a shutdown request using 4017c4e8edabSChris Kay the PSCI `SYSTEM_OFF` API. This issue will be fixed in a future version of the 4018c4e8edabSChris Kay model. 4019c4e8edabSChris Kay- Building TF-A with compiler optimisations disabled (`-O0`) fails. 4020c4e8edabSChris Kay- TF-A cannot be built with mbed TLS version v2.3.0 due to build warnings that 4021c4e8edabSChris Kay the TF-A build system interprets as errors. 4022c4e8edabSChris Kay- TBBR is not currently supported when running TF-A in AArch32 state. 4023c4e8edabSChris Kay 4024c4e8edabSChris Kay## 1.2 (2015-12-22) 4025c4e8edabSChris Kay 4026c4e8edabSChris Kay### New features 4027c4e8edabSChris Kay 4028c4e8edabSChris Kay- The Trusted Board Boot implementation on Arm platforms now conforms to the 4029c4e8edabSChris Kay mandatory requirements of the TBBR specification. 4030c4e8edabSChris Kay 4031c4e8edabSChris Kay In particular, the boot process is now guarded by a Trusted Watchdog, which 4032c4e8edabSChris Kay will reset the system in case of an authentication or loading error. On Arm 4033c4e8edabSChris Kay platforms, a secure instance of Arm SP805 is used as the Trusted Watchdog. 4034c4e8edabSChris Kay 4035c4e8edabSChris Kay Also, a firmware update process has been implemented. It enables authenticated 4036c4e8edabSChris Kay firmware to update firmware images from external interfaces to SoC 4037c4e8edabSChris Kay Non-Volatile memories. This feature functions even when the current firmware 4038c4e8edabSChris Kay in the system is corrupt or missing; it therefore may be used as a recovery 4039c4e8edabSChris Kay mode. 4040c4e8edabSChris Kay 4041c4e8edabSChris Kay- Improvements have been made to the Certificate Generation Tool (`cert_create`) 4042c4e8edabSChris Kay as follows. 4043c4e8edabSChris Kay 4044c4e8edabSChris Kay - Added support for the Firmware Update process by extending the Chain of 4045c4e8edabSChris Kay Trust definition in the tool to include the Firmware Update certificate and 4046c4e8edabSChris Kay the required extensions. 4047c4e8edabSChris Kay - Introduced a new API that allows one to specify command line options in the 4048c4e8edabSChris Kay Chain of Trust description. This makes the declaration of the tool's 4049c4e8edabSChris Kay arguments more flexible and easier to extend. 4050c4e8edabSChris Kay - The tool has been reworked to follow a data driven approach, which makes it 4051c4e8edabSChris Kay easier to maintain and extend. 4052c4e8edabSChris Kay 4053c4e8edabSChris Kay- Extended the FIP tool (`fip_create`) to support the new set of images involved 4054c4e8edabSChris Kay in the Firmware Update process. 4055c4e8edabSChris Kay 4056c4e8edabSChris Kay- Various memory footprint improvements. In particular: 4057c4e8edabSChris Kay 4058c4e8edabSChris Kay - The bakery lock structure for coherent memory has been optimised. 4059c4e8edabSChris Kay - The mbed TLS SHA1 functions are not needed, as SHA256 is used to generate 4060c4e8edabSChris Kay the certificate signature. Therefore, they have been compiled out, reducing 4061c4e8edabSChris Kay the memory footprint of BL1 and BL2 by approximately 6 KB. 4062c4e8edabSChris Kay - On Arm development platforms, each BL stage now individually defines the 4063c4e8edabSChris Kay number of regions that it needs to map in the MMU. 4064c4e8edabSChris Kay 4065c4e8edabSChris Kay- Added the following new design documents: 4066c4e8edabSChris Kay 4067c4e8edabSChris Kay - {ref}`Authentication Framework & Chain of Trust` 4068c4e8edabSChris Kay - {ref}`Firmware Update (FWU)` 4069c4e8edabSChris Kay - {ref}`CPU Reset` 4070c4e8edabSChris Kay - {ref}`PSCI Power Domain Tree Structure` 4071c4e8edabSChris Kay 4072c4e8edabSChris Kay- Applied the new image terminology to the code base and documentation, as 4073c4e8edabSChris Kay described in the {ref}`Image Terminology` document. 4074c4e8edabSChris Kay 4075c4e8edabSChris Kay- The build system has been reworked to improve readability and facilitate 4076c4e8edabSChris Kay adding future extensions. 4077c4e8edabSChris Kay 4078c4e8edabSChris Kay- On Arm standard platforms, BL31 uses the boot console during cold boot but 4079c4e8edabSChris Kay switches to the runtime console for any later logs at runtime. The TSP uses 4080c4e8edabSChris Kay the runtime console for all output. 4081c4e8edabSChris Kay 4082c4e8edabSChris Kay- Implemented a basic NOR flash driver for Arm platforms. It programs the device 4083c4e8edabSChris Kay using CFI (Common Flash Interface) standard commands. 4084c4e8edabSChris Kay 4085c4e8edabSChris Kay- Implemented support for booting EL3 payloads on Arm platforms, which reduces 4086c4e8edabSChris Kay the complexity of developing EL3 baremetal code by doing essential baremetal 4087c4e8edabSChris Kay initialization. 4088c4e8edabSChris Kay 4089c4e8edabSChris Kay- Provided separate drivers for GICv3 and GICv2. These expect the entire 4090c4e8edabSChris Kay software stack to use either GICv2 or GICv3; hybrid GIC software systems are 4091c4e8edabSChris Kay no longer supported and the legacy Arm GIC driver has been deprecated. 4092c4e8edabSChris Kay 4093c4e8edabSChris Kay- Added support for Juno r1 and r2. A single set of Juno TF-A binaries can run 4094c4e8edabSChris Kay on Juno r0, r1 and r2 boards. Note that this TF-A version depends on a Linaro 4095c4e8edabSChris Kay release that does *not* contain Juno r2 support. 4096c4e8edabSChris Kay 4097c4e8edabSChris Kay- Added support for MediaTek mt8173 platform. 4098c4e8edabSChris Kay 4099c4e8edabSChris Kay- Implemented a generic driver for Arm CCN IP. 4100c4e8edabSChris Kay 4101c4e8edabSChris Kay- Major rework of the PSCI implementation. 4102c4e8edabSChris Kay 4103c4e8edabSChris Kay - Added framework to handle composite power states. 4104c4e8edabSChris Kay - Decoupled the notions of affinity instances (which describes the 4105c4e8edabSChris Kay hierarchical arrangement of cores) and of power domain topology, instead of 4106c4e8edabSChris Kay assuming a one-to-one mapping. 4107c4e8edabSChris Kay - Better alignment with version 1.0 of the PSCI specification. 4108c4e8edabSChris Kay 4109c4e8edabSChris Kay- Added support for the SYSTEM_SUSPEND PSCI API on Arm platforms. When invoked 4110c4e8edabSChris Kay on the last running core on a supported platform, this puts the system into a 4111c4e8edabSChris Kay low power mode with memory retention. 4112c4e8edabSChris Kay 4113c4e8edabSChris Kay- Unified the reset handling code as much as possible across BL stages. Also 4114c4e8edabSChris Kay introduced some build options to enable optimization of the reset path on 4115c4e8edabSChris Kay platforms that support it. 4116c4e8edabSChris Kay 4117c4e8edabSChris Kay- Added a simple delay timer API, as well as an SP804 timer driver, which is 4118c4e8edabSChris Kay enabled on FVP. 4119c4e8edabSChris Kay 4120c4e8edabSChris Kay- Added support for NVidia Tegra T210 and T132 SoCs. 4121c4e8edabSChris Kay 4122c4e8edabSChris Kay- Reorganised Arm platforms ports to greatly improve code shareability and 4123c4e8edabSChris Kay facilitate the reuse of some of this code by other platforms. 4124c4e8edabSChris Kay 4125c4e8edabSChris Kay- Added support for Arm Cortex-A72 processor in the CPU specific framework. 4126c4e8edabSChris Kay 4127c4e8edabSChris Kay- Provided better error handling. Platform ports can now define their own error 4128c4e8edabSChris Kay handling, for example to perform platform specific bookkeeping or post-error 4129c4e8edabSChris Kay actions. 4130c4e8edabSChris Kay 4131c4e8edabSChris Kay- Implemented a unified driver for Arm Cache Coherent Interconnects used for 4132c4e8edabSChris Kay both CCI-400 & CCI-500 IPs. Arm platforms ports have been migrated to this 4133c4e8edabSChris Kay common driver. The standalone CCI-400 driver has been deprecated. 4134c4e8edabSChris Kay 4135c4e8edabSChris Kay### Issues resolved since last release 4136c4e8edabSChris Kay 4137c4e8edabSChris Kay- The Trusted Board Boot implementation has been redesigned to provide greater 4138c4e8edabSChris Kay modularity and scalability. See the 4139c4e8edabSChris Kay \{ref}`Authentication Framework & Chain of Trust` document. All missing 4140c4e8edabSChris Kay mandatory features are now implemented. 4141c4e8edabSChris Kay- The FVP and Juno ports may now use the hash of the ROTPK stored in the Trusted 4142c4e8edabSChris Kay Key Storage registers to verify the ROTPK. Alternatively, a development public 4143c4e8edabSChris Kay key hash embedded in the BL1 and BL2 binaries might be used instead. The 4144c4e8edabSChris Kay location of the ROTPK is chosen at build-time using the `ARM_ROTPK_LOCATION` 4145c4e8edabSChris Kay build option. 4146c4e8edabSChris Kay- GICv3 is now fully supported and stable. 4147c4e8edabSChris Kay 4148c4e8edabSChris Kay### Known issues 4149c4e8edabSChris Kay 4150c4e8edabSChris Kay- The version of the AEMv8 Base FVP used in this release resets the model 4151c4e8edabSChris Kay instead of terminating its execution in response to a shutdown request using 4152c4e8edabSChris Kay the PSCI `SYSTEM_OFF` API. This issue will be fixed in a future version of the 4153c4e8edabSChris Kay model. 4154c4e8edabSChris Kay- While this version has low on-chip RAM requirements, there are further RAM 4155c4e8edabSChris Kay usage enhancements that could be made. 4156c4e8edabSChris Kay- The upstream documentation could be improved for structural consistency, 4157c4e8edabSChris Kay clarity and completeness. In particular, the design documentation is 4158c4e8edabSChris Kay incomplete for PSCI, the TSP(D) and the Juno platform. 4159c4e8edabSChris Kay- Building TF-A with compiler optimisations disabled (`-O0`) fails. 4160c4e8edabSChris Kay 4161c4e8edabSChris Kay## 1.1 (2015-02-04) 4162c4e8edabSChris Kay 4163c4e8edabSChris Kay### New features 4164c4e8edabSChris Kay 4165c4e8edabSChris Kay- A prototype implementation of Trusted Board Boot has been added. Boot loader 4166c4e8edabSChris Kay images are verified by BL1 and BL2 during the cold boot path. BL1 and BL2 use 4167c4e8edabSChris Kay the PolarSSL SSL library to verify certificates and images. The OpenSSL 4168c4e8edabSChris Kay library is used to create the X.509 certificates. Support has been added to 4169c4e8edabSChris Kay `fip_create` tool to package the certificates in a FIP. 4170c4e8edabSChris Kay 4171c4e8edabSChris Kay- Support for calling CPU and platform specific reset handlers upon entry into 4172c4e8edabSChris Kay BL3-1 during the cold and warm boot paths has been added. This happens after 4173c4e8edabSChris Kay another Boot ROM `reset_handler()` has already run. This enables a developer 4174c4e8edabSChris Kay to perform additional actions or undo actions already performed during the 4175c4e8edabSChris Kay first call of the reset handlers e.g. apply additional errata workarounds. 4176c4e8edabSChris Kay 4177c4e8edabSChris Kay- Support has been added to demonstrate routing of IRQs to EL3 instead of S-EL1 4178c4e8edabSChris Kay when execution is in secure world. 4179c4e8edabSChris Kay 4180c4e8edabSChris Kay- The PSCI implementation now conforms to version 1.0 of the PSCI specification. 4181c4e8edabSChris Kay All the mandatory APIs and selected optional APIs are supported. In 4182c4e8edabSChris Kay particular, support for the `PSCI_FEATURES` API has been added. A capability 4183c4e8edabSChris Kay variable is constructed during initialization by examining the `plat_pm_ops` 4184c4e8edabSChris Kay and `spd_pm_ops` exported by the platform and the Secure Payload Dispatcher. 4185c4e8edabSChris Kay This is used by the PSCI FEATURES function to determine which PSCI APIs are 4186c4e8edabSChris Kay supported by the platform. 4187c4e8edabSChris Kay 4188c4e8edabSChris Kay- Improvements have been made to the PSCI code as follows. 4189c4e8edabSChris Kay 4190c4e8edabSChris Kay - The code has been refactored to remove redundant parameters from internal 4191c4e8edabSChris Kay functions. 4192c4e8edabSChris Kay - Changes have been made to the code for PSCI `CPU_SUSPEND`, `CPU_ON` and 4193c4e8edabSChris Kay `CPU_OFF` calls to facilitate an early return to the caller in case a 4194c4e8edabSChris Kay failure condition is detected. For example, a PSCI `CPU_SUSPEND` call 4195c4e8edabSChris Kay returns `SUCCESS` to the caller if a pending interrupt is detected early in 4196c4e8edabSChris Kay the code path. 4197c4e8edabSChris Kay - Optional platform APIs have been added to validate the `power_state` and 4198c4e8edabSChris Kay `entrypoint` parameters early in PSCI `CPU_ON` and `CPU_SUSPEND` code paths. 4199c4e8edabSChris Kay - PSCI migrate APIs have been reworked to invoke the SPD hook to determine the 4200c4e8edabSChris Kay type of Trusted OS and the CPU it is resident on (if applicable). Also, 4201c4e8edabSChris Kay during a PSCI `MIGRATE` call, the SPD hook to migrate the Trusted OS is 4202c4e8edabSChris Kay invoked. 4203c4e8edabSChris Kay 4204c4e8edabSChris Kay- It is now possible to build TF-A without marking at least an extra page of 4205c4e8edabSChris Kay memory as coherent. The build flag `USE_COHERENT_MEM` can be used to choose 4206c4e8edabSChris Kay between the two implementations. This has been made possible through these 4207c4e8edabSChris Kay changes. 4208c4e8edabSChris Kay 4209c4e8edabSChris Kay - An implementation of Bakery locks, where the locks are not allocated in 4210c4e8edabSChris Kay coherent memory has been added. 4211c4e8edabSChris Kay - Memory which was previously marked as coherent is now kept coherent through 4212c4e8edabSChris Kay the use of software cache maintenance operations. 4213c4e8edabSChris Kay 4214c4e8edabSChris Kay Approximately, 4K worth of memory is saved for each boot loader stage when 4215c4e8edabSChris Kay `USE_COHERENT_MEM=0`. Enabling this option increases the latencies associated 4216c4e8edabSChris Kay with acquire and release of locks. It also requires changes to the platform 4217c4e8edabSChris Kay ports. 4218c4e8edabSChris Kay 4219c4e8edabSChris Kay- It is now possible to specify the name of the FIP at build time by defining 4220c4e8edabSChris Kay the `FIP_NAME` variable. 4221c4e8edabSChris Kay 4222c4e8edabSChris Kay- Issues with dependencies on the 'fiptool' makefile target have been rectified. 4223c4e8edabSChris Kay The `fip_create` tool is now rebuilt whenever its source files change. 4224c4e8edabSChris Kay 4225c4e8edabSChris Kay- The BL3-1 runtime console is now also used as the crash console. The crash 4226c4e8edabSChris Kay console is changed to SoC UART0 (UART2) from the previous FPGA UART0 (UART0) 4227c4e8edabSChris Kay on Juno. In FVP, it is changed from UART0 to UART1. 4228c4e8edabSChris Kay 4229c4e8edabSChris Kay- CPU errata workarounds are applied only when the revision and part number 4230c4e8edabSChris Kay match. This behaviour has been made consistent across the debug and release 4231c4e8edabSChris Kay builds. The debug build additionally prints a warning if a mismatch is 4232c4e8edabSChris Kay detected. 4233c4e8edabSChris Kay 4234c4e8edabSChris Kay- It is now possible to issue cache maintenance operations by set/way for a 4235c4e8edabSChris Kay particular level of data cache. Levels 1-3 are currently supported. 4236c4e8edabSChris Kay 4237c4e8edabSChris Kay- The following improvements have been made to the FVP port. 4238c4e8edabSChris Kay 4239c4e8edabSChris Kay - The build option `FVP_SHARED_DATA_LOCATION` which allowed relocation of 4240c4e8edabSChris Kay shared data into the Trusted DRAM has been deprecated. Shared data is now 4241c4e8edabSChris Kay always located at the base of Trusted SRAM. 4242c4e8edabSChris Kay - BL2 Translation tables have been updated to map only the region of DRAM 4243c4e8edabSChris Kay which is accessible to normal world. This is the region of the 2GB DDR-DRAM 4244c4e8edabSChris Kay memory at 0x80000000 excluding the top 16MB. The top 16MB is accessible to 4245c4e8edabSChris Kay only the secure world. 4246c4e8edabSChris Kay - BL3-2 can now reside in the top 16MB of DRAM which is accessible only to the 4247c4e8edabSChris Kay secure world. This can be done by setting the build flag 4248c4e8edabSChris Kay `FVP_TSP_RAM_LOCATION` to the value `dram`. 4249c4e8edabSChris Kay 4250c4e8edabSChris Kay- Separate translation tables are created for each boot loader image. The 4251c4e8edabSChris Kay `IMAGE_BLx` build options are used to do this. This allows each stage to 4252c4e8edabSChris Kay create mappings only for areas in the memory map that it needs. 4253c4e8edabSChris Kay 4254c4e8edabSChris Kay- A Secure Payload Dispatcher (OPTEED) for the OP-TEE Trusted OS has been added. 4255c4e8edabSChris Kay Details of using it with TF-A can be found in {ref}`OP-TEE Dispatcher` 4256c4e8edabSChris Kay 4257c4e8edabSChris Kay### Issues resolved since last release 4258c4e8edabSChris Kay 4259c4e8edabSChris Kay- The Juno port has been aligned with the FVP port as follows. 4260c4e8edabSChris Kay 4261c4e8edabSChris Kay - Support for reclaiming all BL1 RW memory and BL2 memory by overlaying the 4262c4e8edabSChris Kay BL3-1/BL3-2 NOBITS sections on top of them has been added to the Juno port. 4263c4e8edabSChris Kay - The top 16MB of the 2GB DDR-DRAM memory at 0x80000000 is configured using 4264c4e8edabSChris Kay the TZC-400 controller to be accessible only to the secure world. 4265c4e8edabSChris Kay - The Arm GIC driver is used to configure the GIC-400 instead of using a GIC 4266c4e8edabSChris Kay driver private to the Juno port. 4267c4e8edabSChris Kay - PSCI `CPU_SUSPEND` calls that target a standby state are now supported. 4268c4e8edabSChris Kay - The TZC-400 driver is used to configure the controller instead of direct 4269c4e8edabSChris Kay accesses to the registers. 4270c4e8edabSChris Kay 4271c4e8edabSChris Kay- The Linux kernel version referred to in the user guide has DVFS and HMP 4272c4e8edabSChris Kay support enabled. 4273c4e8edabSChris Kay 4274c4e8edabSChris Kay- DS-5 v5.19 did not detect Version 5.8 of the Cortex-A57-A53 Base FVPs in CADI 4275c4e8edabSChris Kay server mode. This issue is not seen with DS-5 v5.20 and Version 6.2 of the 4276c4e8edabSChris Kay Cortex-A57-A53 Base FVPs. 4277c4e8edabSChris Kay 4278c4e8edabSChris Kay### Known issues 4279c4e8edabSChris Kay 4280c4e8edabSChris Kay- The Trusted Board Boot implementation is a prototype. There are issues with 4281c4e8edabSChris Kay the modularity and scalability of the design. Support for a Trusted Watchdog, 4282c4e8edabSChris Kay firmware update mechanism, recovery images and Trusted debug is absent. These 4283c4e8edabSChris Kay issues will be addressed in future releases. 4284c4e8edabSChris Kay- The FVP and Juno ports do not use the hash of the ROTPK stored in the Trusted 4285c4e8edabSChris Kay Key Storage registers to verify the ROTPK in the `plat_match_rotpk()` 4286c4e8edabSChris Kay function. This prevents the correct establishment of the Chain of Trust at the 4287c4e8edabSChris Kay first step in the Trusted Board Boot process. 4288c4e8edabSChris Kay- The version of the AEMv8 Base FVP used in this release resets the model 4289c4e8edabSChris Kay instead of terminating its execution in response to a shutdown request using 4290c4e8edabSChris Kay the PSCI `SYSTEM_OFF` API. This issue will be fixed in a future version of the 4291c4e8edabSChris Kay model. 4292c4e8edabSChris Kay- GICv3 support is experimental. There are known issues with GICv3 4293c4e8edabSChris Kay initialization in the TF-A. 4294c4e8edabSChris Kay- While this version greatly reduces the on-chip RAM requirements, there are 4295c4e8edabSChris Kay further RAM usage enhancements that could be made. 4296c4e8edabSChris Kay- The firmware design documentation for the Test Secure-EL1 Payload (TSP) and 4297c4e8edabSChris Kay its dispatcher (TSPD) is incomplete. Similarly for the PSCI section. 4298c4e8edabSChris Kay- The Juno-specific firmware design documentation is incomplete. 4299c4e8edabSChris Kay 4300c4e8edabSChris Kay## 1.0 (2014-08-28) 4301c4e8edabSChris Kay 4302c4e8edabSChris Kay### New features 4303c4e8edabSChris Kay 4304c4e8edabSChris Kay- It is now possible to map higher physical addresses using non-flat virtual to 4305c4e8edabSChris Kay physical address mappings in the MMU setup. 4306c4e8edabSChris Kay 4307c4e8edabSChris Kay- Wider use is now made of the per-CPU data cache in BL3-1 to store: 4308c4e8edabSChris Kay 4309c4e8edabSChris Kay - Pointers to the non-secure and secure security state contexts. 4310c4e8edabSChris Kay - A pointer to the CPU-specific operations. 4311c4e8edabSChris Kay - A pointer to PSCI specific information (for example the current power 4312c4e8edabSChris Kay state). 4313c4e8edabSChris Kay - A crash reporting buffer. 4314c4e8edabSChris Kay 4315c4e8edabSChris Kay- The following RAM usage improvements result in a BL3-1 RAM usage reduction 4316c4e8edabSChris Kay from 96KB to 56KB (for FVP with TSPD), and a total RAM usage reduction across 4317c4e8edabSChris Kay all images from 208KB to 88KB, compared to the previous release. 4318c4e8edabSChris Kay 4319c4e8edabSChris Kay - Removed the separate `early_exception` vectors from BL3-1 (2KB code size 4320c4e8edabSChris Kay saving). 4321c4e8edabSChris Kay - Removed NSRAM from the FVP memory map, allowing the removal of one (4KB) 4322c4e8edabSChris Kay translation table. 4323c4e8edabSChris Kay - Eliminated the internal `psci_suspend_context` array, saving 2KB. 4324c4e8edabSChris Kay - Correctly dimensioned the PSCI `aff_map_node` array, saving 1.5KB in the FVP 4325c4e8edabSChris Kay port. 4326c4e8edabSChris Kay - Removed calling CPU mpidr from the bakery lock API, saving 160 bytes. 4327c4e8edabSChris Kay - Removed current CPU mpidr from PSCI common code, saving 160 bytes. 4328c4e8edabSChris Kay - Inlined the mmio accessor functions, saving 360 bytes. 4329c4e8edabSChris Kay - Fully reclaimed all BL1 RW memory and BL2 memory on the FVP port by 4330c4e8edabSChris Kay overlaying the BL3-1/BL3-2 NOBITS sections on top of these at runtime. 4331c4e8edabSChris Kay - Made storing the FP register context optional, saving 0.5KB per context (8KB 4332c4e8edabSChris Kay on the FVP port, with TSPD enabled and running on 8 CPUs). 4333c4e8edabSChris Kay - Implemented a leaner `tf_printf()` function, allowing the stack to be 4334c4e8edabSChris Kay greatly reduced. 4335c4e8edabSChris Kay - Removed coherent stacks from the codebase. Stacks allocated in normal memory 4336c4e8edabSChris Kay are now used before and after the MMU is enabled. This saves 768 bytes per 4337c4e8edabSChris Kay CPU in BL3-1. 4338c4e8edabSChris Kay - Reworked the crash reporting in BL3-1 to use less stack. 4339c4e8edabSChris Kay - Optimized the EL3 register state stored in the `cpu_context` structure so 4340c4e8edabSChris Kay that registers that do not change during normal execution are re-initialized 4341c4e8edabSChris Kay each time during cold/warm boot, rather than restored from memory. This 4342c4e8edabSChris Kay saves about 1.2KB. 4343c4e8edabSChris Kay - As a result of some of the above, reduced the runtime stack size in all BL 4344c4e8edabSChris Kay images. For BL3-1, this saves 1KB per CPU. 4345c4e8edabSChris Kay 4346c4e8edabSChris Kay- PSCI SMC handler improvements to correctly handle calls from secure states and 4347c4e8edabSChris Kay from AArch32. 4348c4e8edabSChris Kay 4349c4e8edabSChris Kay- CPU contexts are now initialized from the `entry_point_info`. BL3-1 fully 4350c4e8edabSChris Kay determines the exception level to use for the non-trusted firmware (BL3-3) 4351c4e8edabSChris Kay based on the SPSR value provided by the BL2 platform code (or otherwise 4352c4e8edabSChris Kay provided to BL3-1). This allows platform code to directly run non-trusted 4353c4e8edabSChris Kay firmware payloads at either EL2 or EL1 without requiring an EL2 stub or OS 4354c4e8edabSChris Kay loader. 4355c4e8edabSChris Kay 4356c4e8edabSChris Kay- Code refactoring improvements: 4357c4e8edabSChris Kay 4358c4e8edabSChris Kay - Refactored `fvp_config` into a common platform header. 4359c4e8edabSChris Kay - Refactored the fvp gic code to be a generic driver that no longer has an 4360c4e8edabSChris Kay explicit dependency on platform code. 4361c4e8edabSChris Kay - Refactored the CCI-400 driver to not have dependency on platform code. 4362c4e8edabSChris Kay - Simplified the IO driver so it's no longer necessary to call `io_init()` and 4363c4e8edabSChris Kay moved all the IO storage framework code to one place. 4364c4e8edabSChris Kay - Simplified the interface the the TZC-400 driver. 4365c4e8edabSChris Kay - Clarified the platform porting interface to the TSP. 4366c4e8edabSChris Kay - Reworked the TSPD setup code to support the alternate BL3-2 initialization 4367c4e8edabSChris Kay flow where BL3-1 generic code hands control to BL3-2, rather than expecting 4368c4e8edabSChris Kay the TSPD to hand control directly to BL3-2. 4369c4e8edabSChris Kay - Considerable rework to PSCI generic code to support CPU specific operations. 4370c4e8edabSChris Kay 4371c4e8edabSChris Kay- Improved console log output, by: 4372c4e8edabSChris Kay 4373c4e8edabSChris Kay - Adding the concept of debug log levels. 4374c4e8edabSChris Kay - Rationalizing the existing debug messages and adding new ones. 4375c4e8edabSChris Kay - Printing out the version of each BL stage at runtime. 4376c4e8edabSChris Kay - Adding support for printing console output from assembler code, including 4377c4e8edabSChris Kay when a crash occurs before the C runtime is initialized. 4378c4e8edabSChris Kay 4379c4e8edabSChris Kay- Moved up to the latest versions of the FVPs, toolchain, EDK2, kernel, Linaro 4380c4e8edabSChris Kay file system and DS-5. 4381c4e8edabSChris Kay 4382c4e8edabSChris Kay- On the FVP port, made the use of the Trusted DRAM region optional at build 4383c4e8edabSChris Kay time (off by default). Normal platforms will not have such a "ready-to-use" 4384c4e8edabSChris Kay DRAM area so it is not a good example to use it. 4385c4e8edabSChris Kay 4386c4e8edabSChris Kay- Added support for PSCI `SYSTEM_OFF` and `SYSTEM_RESET` APIs. 4387c4e8edabSChris Kay 4388c4e8edabSChris Kay- Added support for CPU specific reset sequences, power down sequences and 4389c4e8edabSChris Kay register dumping during crash reporting. The CPU specific reset sequences 4390c4e8edabSChris Kay include support for errata workarounds. 4391c4e8edabSChris Kay 4392c4e8edabSChris Kay- Merged the Juno port into the master branch. Added support for CPU hotplug and 4393c4e8edabSChris Kay CPU idle. Updated the user guide to describe how to build and run on the Juno 4394c4e8edabSChris Kay platform. 4395c4e8edabSChris Kay 4396c4e8edabSChris Kay### Issues resolved since last release 4397c4e8edabSChris Kay 4398c4e8edabSChris Kay- Removed the concept of top/bottom image loading. The image loader now 4399c4e8edabSChris Kay automatically detects the position of the image inside the current memory 4400c4e8edabSChris Kay layout and updates the layout to minimize fragmentation. This resolves the 4401c4e8edabSChris Kay image loader limitations of previously releases. There are currently no plans 4402c4e8edabSChris Kay to support dynamic image loading. 4403c4e8edabSChris Kay- CPU idle now works on the publicized version of the Foundation FVP. 4404c4e8edabSChris Kay- All known issues relating to the compiler version used have now been resolved. 4405c4e8edabSChris Kay This TF-A version uses Linaro toolchain 14.07 (based on GCC 4.9). 4406c4e8edabSChris Kay 4407c4e8edabSChris Kay### Known issues 4408c4e8edabSChris Kay 4409c4e8edabSChris Kay- GICv3 support is experimental. The Linux kernel patches to support this are 4410c4e8edabSChris Kay not widely available. There are known issues with GICv3 initialization in the 4411c4e8edabSChris Kay TF-A. 4412c4e8edabSChris Kay 4413c4e8edabSChris Kay- While this version greatly reduces the on-chip RAM requirements, there are 4414c4e8edabSChris Kay further RAM usage enhancements that could be made. 4415c4e8edabSChris Kay 4416c4e8edabSChris Kay- The firmware design documentation for the Test Secure-EL1 Payload (TSP) and 4417c4e8edabSChris Kay its dispatcher (TSPD) is incomplete. Similarly for the PSCI section. 4418c4e8edabSChris Kay 4419c4e8edabSChris Kay- The Juno-specific firmware design documentation is incomplete. 4420c4e8edabSChris Kay 4421c4e8edabSChris Kay- Some recent enhancements to the FVP port have not yet been translated into the 4422c4e8edabSChris Kay Juno port. These will be tracked via the tf-issues project. 4423c4e8edabSChris Kay 4424c4e8edabSChris Kay- The Linux kernel version referred to in the user guide has DVFS and HMP 4425c4e8edabSChris Kay support disabled due to some known instabilities at the time of this release. 4426c4e8edabSChris Kay A future kernel version will re-enable these features. 4427c4e8edabSChris Kay 4428c4e8edabSChris Kay- DS-5 v5.19 does not detect Version 5.8 of the Cortex-A57-A53 Base FVPs in CADI 4429c4e8edabSChris Kay server mode. This is because the `<SimName>` reported by the FVP in this 4430c4e8edabSChris Kay version has changed. For example, for the Cortex-A57x4-A53x4 Base FVP, the 4431c4e8edabSChris Kay `<SimName>` reported by the FVP is `FVP_Base_Cortex_A57x4_A53x4`, while DS-5 4432c4e8edabSChris Kay expects it to be `FVP_Base_A57x4_A53x4`. 4433c4e8edabSChris Kay 4434c4e8edabSChris Kay The temporary fix to this problem is to change the name of the FVP in 4435c4e8edabSChris Kay `sw/debugger/configdb/Boards/ARM FVP/Base_A57x4_A53x4/cadi_config.xml`. Change 4436c4e8edabSChris Kay the following line: 4437c4e8edabSChris Kay 4438c4e8edabSChris Kay ``` 4439c4e8edabSChris Kay <SimName>System Generator:FVP_Base_A57x4_A53x4</SimName> 4440c4e8edabSChris Kay ``` 4441c4e8edabSChris Kay 4442c4e8edabSChris Kay to System Generator:FVP_Base_Cortex-A57x4_A53x4 4443c4e8edabSChris Kay 4444c4e8edabSChris Kay A similar change can be made to the other Cortex-A57-A53 Base FVP variants. 4445c4e8edabSChris Kay 4446c4e8edabSChris Kay## 0.4 (2014-06-03) 4447c4e8edabSChris Kay 4448c4e8edabSChris Kay### New features 4449c4e8edabSChris Kay 4450c4e8edabSChris Kay- Makefile improvements: 4451c4e8edabSChris Kay 4452c4e8edabSChris Kay - Improved dependency checking when building. 4453c4e8edabSChris Kay - Removed `dump` target (build now always produces dump files). 4454c4e8edabSChris Kay - Enabled platform ports to optionally make use of parts of the Trusted 4455c4e8edabSChris Kay Firmware (e.g. BL3-1 only), rather than being forced to use all parts. Also 4456c4e8edabSChris Kay made the `fip` target optional. 4457c4e8edabSChris Kay - Specified the full path to source files and removed use of the `vpath` 4458c4e8edabSChris Kay keyword. 4459c4e8edabSChris Kay 4460c4e8edabSChris Kay- Provided translation table library code for potential re-use by platforms 4461c4e8edabSChris Kay other than the FVPs. 4462c4e8edabSChris Kay 4463c4e8edabSChris Kay- Moved architectural timer setup to platform-specific code. 4464c4e8edabSChris Kay 4465c4e8edabSChris Kay- Added standby state support to PSCI cpu_suspend implementation. 4466c4e8edabSChris Kay 4467c4e8edabSChris Kay- SRAM usage improvements: 4468c4e8edabSChris Kay 4469c4e8edabSChris Kay - Started using the `-ffunction-sections`, `-fdata-sections` and 4470c4e8edabSChris Kay `--gc-sections` compiler/linker options to remove unused code and data from 4471c4e8edabSChris Kay the images. Previously, all common functions were being built into all 4472c4e8edabSChris Kay binary images, whether or not they were actually used. 4473c4e8edabSChris Kay - Placed all assembler functions in their own section to allow more unused 4474c4e8edabSChris Kay functions to be removed from images. 4475c4e8edabSChris Kay - Updated BL1 and BL2 to use a single coherent stack each, rather than one per 4476c4e8edabSChris Kay CPU. 4477c4e8edabSChris Kay - Changed variables that were unnecessarily declared and initialized as 4478c4e8edabSChris Kay non-const (i.e. in the .data section) so they are either uninitialized (zero 4479c4e8edabSChris Kay init) or const. 4480c4e8edabSChris Kay 4481c4e8edabSChris Kay- Moved the Test Secure-EL1 Payload (BL3-2) to execute in Trusted SRAM by 4482c4e8edabSChris Kay default. The option for it to run in Trusted DRAM remains. 4483c4e8edabSChris Kay 4484c4e8edabSChris Kay- Implemented a TrustZone Address Space Controller (TZC-400) driver. A default 4485c4e8edabSChris Kay configuration is provided for the Base FVPs. This means the model parameter 4486c4e8edabSChris Kay `-C bp.secure_memory=1` is now supported. 4487c4e8edabSChris Kay 4488c4e8edabSChris Kay- Started saving the PSCI cpu_suspend 'power_state' parameter prior to 4489c4e8edabSChris Kay suspending a CPU. This allows platforms that implement multiple power-down 4490c4e8edabSChris Kay states at the same affinity level to identify a specific state. 4491c4e8edabSChris Kay 4492c4e8edabSChris Kay- Refactored the entire codebase to reduce the amount of nesting in header files 4493c4e8edabSChris Kay and to make the use of system/user includes more consistent. Also split 4494c4e8edabSChris Kay platform.h to separate out the platform porting declarations from the required 4495c4e8edabSChris Kay platform porting definitions and the definitions/declarations specific to the 4496c4e8edabSChris Kay platform port. 4497c4e8edabSChris Kay 4498c4e8edabSChris Kay- Optimized the data cache clean/invalidate operations. 4499c4e8edabSChris Kay 4500c4e8edabSChris Kay- Improved the BL3-1 unhandled exception handling and reporting. Unhandled 4501c4e8edabSChris Kay exceptions now result in a dump of registers to the console. 4502c4e8edabSChris Kay 4503c4e8edabSChris Kay- Major rework to the handover interface between BL stages, in particular the 4504c4e8edabSChris Kay interface to BL3-1. The interface now conforms to a specification and is more 4505c4e8edabSChris Kay future proof. 4506c4e8edabSChris Kay 4507c4e8edabSChris Kay- Added support for optionally making the BL3-1 entrypoint a reset handler 4508c4e8edabSChris Kay (instead of BL1). This allows platforms with an alternative image loading 4509c4e8edabSChris Kay architecture to re-use BL3-1 with fewer modifications to generic code. 4510c4e8edabSChris Kay 4511c4e8edabSChris Kay- Reserved some DDR DRAM for secure use on FVP platforms to avoid future 4512c4e8edabSChris Kay compatibility problems with non-secure software. 4513c4e8edabSChris Kay 4514c4e8edabSChris Kay- Added support for secure interrupts targeting the Secure-EL1 Payload (SP) 4515c4e8edabSChris Kay (using GICv2 routing only). Demonstrated this working by adding an interrupt 4516c4e8edabSChris Kay target and supporting test code to the TSP. Also demonstrated non-secure 4517c4e8edabSChris Kay interrupt handling during TSP processing. 4518c4e8edabSChris Kay 4519c4e8edabSChris Kay### Issues resolved since last release 4520c4e8edabSChris Kay 4521c4e8edabSChris Kay- Now support use of the model parameter `-C bp.secure_memory=1` in the Base 4522c4e8edabSChris Kay FVPs (see **New features**). 4523c4e8edabSChris Kay- Support for secure world interrupt handling now available (see **New 4524c4e8edabSChris Kay features**). 4525c4e8edabSChris Kay- Made enough SRAM savings (see **New features**) to enable the Test Secure-EL1 4526c4e8edabSChris Kay Payload (BL3-2) to execute in Trusted SRAM by default. 4527c4e8edabSChris Kay- The tested filesystem used for this release (Linaro AArch64 OpenEmbedded 4528c4e8edabSChris Kay 14.04) now correctly reports progress in the console. 4529c4e8edabSChris Kay- Improved the Makefile structure to make it easier to separate out parts of the 4530c4e8edabSChris Kay TF-A for re-use in platform ports. Also, improved target dependency checking. 4531c4e8edabSChris Kay 4532c4e8edabSChris Kay### Known issues 4533c4e8edabSChris Kay 4534c4e8edabSChris Kay- GICv3 support is experimental. The Linux kernel patches to support this are 4535c4e8edabSChris Kay not widely available. There are known issues with GICv3 initialization in the 4536c4e8edabSChris Kay TF-A. 4537c4e8edabSChris Kay- Dynamic image loading is not available yet. The current image loader 4538c4e8edabSChris Kay implementation (used to load BL2 and all subsequent images) has some 4539c4e8edabSChris Kay limitations. Changing BL2 or BL3-1 load addresses in certain ways can lead to 4540c4e8edabSChris Kay loading errors, even if the images should theoretically fit in memory. 4541c4e8edabSChris Kay- TF-A still uses too much on-chip Trusted SRAM. A number of RAM usage 4542c4e8edabSChris Kay enhancements have been identified to rectify this situation. 4543c4e8edabSChris Kay- CPU idle does not work on the advertised version of the Foundation FVP. Some 4544c4e8edabSChris Kay FVP fixes are required that are not available externally at the time of 4545c4e8edabSChris Kay writing. This can be worked around by disabling CPU idle in the Linux kernel. 4546c4e8edabSChris Kay- Various bugs in TF-A, UEFI and the Linux kernel have been observed when using 4547c4e8edabSChris Kay Linaro toolchain versions later than 13.11. Although most of these have been 4548c4e8edabSChris Kay fixed, some remain at the time of writing. These mainly seem to relate to a 4549c4e8edabSChris Kay subtle change in the way the compiler converts between 64-bit and 32-bit 4550c4e8edabSChris Kay values (e.g. during casting operations), which reveals previously hidden bugs 4551c4e8edabSChris Kay in client code. 4552c4e8edabSChris Kay- The firmware design documentation for the Test Secure-EL1 Payload (TSP) and 4553c4e8edabSChris Kay its dispatcher (TSPD) is incomplete. Similarly for the PSCI section. 4554c4e8edabSChris Kay 4555c4e8edabSChris Kay## 0.3 (2014-02-28) 4556c4e8edabSChris Kay 4557c4e8edabSChris Kay### New features 4558c4e8edabSChris Kay 4559c4e8edabSChris Kay- Support for Foundation FVP Version 2.0 added. The documented UEFI 4560c4e8edabSChris Kay configuration disables some devices that are unavailable in the Foundation 4561c4e8edabSChris Kay FVP, including MMC and CLCD. The resultant UEFI binary can be used on the 4562c4e8edabSChris Kay AEMv8 and Cortex-A57-A53 Base FVPs, as well as the Foundation FVP. 4563c4e8edabSChris Kay 4564c4e8edabSChris Kay \:::\{note} The software will not work on Version 1.0 of the Foundation FVP. 4565c4e8edabSChris Kay \::: 4566c4e8edabSChris Kay 4567c4e8edabSChris Kay- Enabled third party contributions. Added a new contributing.md containing 4568c4e8edabSChris Kay instructions for how to contribute and updated copyright text in all files to 4569c4e8edabSChris Kay acknowledge contributors. 4570c4e8edabSChris Kay 4571c4e8edabSChris Kay- The PSCI CPU_SUSPEND API has been stabilised to the extent where it can be 4572c4e8edabSChris Kay used for entry into power down states with the following restrictions: 4573c4e8edabSChris Kay 4574c4e8edabSChris Kay - Entry into standby states is not supported. 4575c4e8edabSChris Kay - The API is only supported on the AEMv8 and Cortex-A57-A53 Base FVPs. 4576c4e8edabSChris Kay 4577c4e8edabSChris Kay- The PSCI AFFINITY_INFO api has undergone limited testing on the Base FVPs to 4578c4e8edabSChris Kay allow experimental use. 4579c4e8edabSChris Kay 4580c4e8edabSChris Kay- Required C library and runtime header files are now included locally in TF-A 4581c4e8edabSChris Kay instead of depending on the toolchain standard include paths. The local 4582c4e8edabSChris Kay implementation has been cleaned up and reduced in scope. 4583c4e8edabSChris Kay 4584c4e8edabSChris Kay- Added I/O abstraction framework, primarily to allow generic code to load 4585c4e8edabSChris Kay images in a platform-independent way. The existing image loading code has been 4586c4e8edabSChris Kay reworked to use the new framework. Semi-hosting and NOR flash I/O drivers are 4587c4e8edabSChris Kay provided. 4588c4e8edabSChris Kay 4589c4e8edabSChris Kay- Introduced Firmware Image Package (FIP) handling code and tools. A FIP 4590c4e8edabSChris Kay combines multiple firmware images with a Table of Contents (ToC) into a single 4591c4e8edabSChris Kay binary image. The new FIP driver is another type of I/O driver. The Makefile 4592c4e8edabSChris Kay builds a FIP by default and the FVP platform code expect to load a FIP from 4593c4e8edabSChris Kay NOR flash, although some support for image loading using semi- hosting is 4594c4e8edabSChris Kay retained. 4595c4e8edabSChris Kay 4596c4e8edabSChris Kay \:::\{note} Building a FIP by default is a non-backwards-compatible change. ::: 4597c4e8edabSChris Kay 4598c4e8edabSChris Kay \:::\{note} Generic BL2 code now loads a BL3-3 (non-trusted firmware) image 4599c4e8edabSChris Kay into DRAM instead of expecting this to be pre-loaded at known location. This 4600c4e8edabSChris Kay is also a non-backwards-compatible change. ::: 4601c4e8edabSChris Kay 4602c4e8edabSChris Kay \:::\{note} Some non-trusted firmware (e.g. UEFI) will need to be rebuilt so 4603c4e8edabSChris Kay that it knows the new location to execute from and no longer needs to copy 4604c4e8edabSChris Kay particular code modules to DRAM itself. ::: 4605c4e8edabSChris Kay 4606c4e8edabSChris Kay- Reworked BL2 to BL3-1 handover interface. A new composite structure 4607c4e8edabSChris Kay (bl31_args) holds the superset of information that needs to be passed from BL2 4608c4e8edabSChris Kay to BL3-1, including information on how handover execution control to BL3-2 (if 4609c4e8edabSChris Kay present) and BL3-3 (non-trusted firmware). 4610c4e8edabSChris Kay 4611c4e8edabSChris Kay- Added library support for CPU context management, allowing the saving and 4612c4e8edabSChris Kay restoring of 4613c4e8edabSChris Kay 4614c4e8edabSChris Kay - Shared system registers between Secure-EL1 and EL1. 4615c4e8edabSChris Kay - VFP registers. 4616c4e8edabSChris Kay - Essential EL3 system registers. 4617c4e8edabSChris Kay 4618c4e8edabSChris Kay- Added a framework for implementing EL3 runtime services. Reworked the PSCI 4619c4e8edabSChris Kay implementation to be one such runtime service. 4620c4e8edabSChris Kay 4621c4e8edabSChris Kay- Reworked the exception handling logic, making use of both SP_EL0 and SP_EL3 4622c4e8edabSChris Kay stack pointers for determining the type of exception, managing general purpose 4623c4e8edabSChris Kay and system register context on exception entry/exit, and handling SMCs. SMCs 4624c4e8edabSChris Kay are directed to the correct EL3 runtime service. 4625c4e8edabSChris Kay 4626c4e8edabSChris Kay- Added support for a Test Secure-EL1 Payload (TSP) and a corresponding 4627c4e8edabSChris Kay Dispatcher (TSPD), which is loaded as an EL3 runtime service. The TSPD 4628c4e8edabSChris Kay implements Secure Monitor functionality such as world switching and EL1 4629c4e8edabSChris Kay context management, and is responsible for communication with the TSP. 4630c4e8edabSChris Kay 4631c4e8edabSChris Kay \:::\{note} The TSPD does not yet contain support for secure world interrupts. 4632c4e8edabSChris Kay \::: 4633c4e8edabSChris Kay 4634c4e8edabSChris Kay \:::\{note} The TSP/TSPD is not built by default. ::: 4635c4e8edabSChris Kay 4636c4e8edabSChris Kay### Issues resolved since last release 4637c4e8edabSChris Kay 4638c4e8edabSChris Kay- Support has been added for switching context between secure and normal worlds 4639c4e8edabSChris Kay in EL3. 4640c4e8edabSChris Kay- PSCI API calls `AFFINITY_INFO` & `PSCI_VERSION` have now been tested (to a 4641c4e8edabSChris Kay limited extent). 4642c4e8edabSChris Kay- The TF-A build artifacts are now placed in the `./build` directory and 4643c4e8edabSChris Kay sub-directories instead of being placed in the root of the project. 4644c4e8edabSChris Kay- TF-A is now free from build warnings. Build warnings are now treated as 4645c4e8edabSChris Kay errors. 4646c4e8edabSChris Kay- TF-A now provides C library support locally within the project to maintain 4647c4e8edabSChris Kay compatibility between toolchains/systems. 4648c4e8edabSChris Kay- The PSCI locking code has been reworked so it no longer takes locks in an 4649c4e8edabSChris Kay incorrect sequence. 4650c4e8edabSChris Kay- The RAM-disk method of loading a Linux file-system has been confirmed to work 4651c4e8edabSChris Kay with the TF-A and Linux kernel version (based on version 3.13) used in this 4652c4e8edabSChris Kay release, for both Foundation and Base FVPs. 4653c4e8edabSChris Kay 4654c4e8edabSChris Kay### Known issues 4655c4e8edabSChris Kay 4656c4e8edabSChris KayThe following is a list of issues which are expected to be fixed in the future 4657c4e8edabSChris Kayreleases of TF-A. 4658c4e8edabSChris Kay 4659c4e8edabSChris Kay- The TrustZone Address Space Controller (TZC-400) is not being programmed yet. 4660c4e8edabSChris Kay Use of model parameter `-C bp.secure_memory=1` is not supported. 4661c4e8edabSChris Kay- No support yet for secure world interrupt handling. 4662c4e8edabSChris Kay- GICv3 support is experimental. The Linux kernel patches to support this are 4663c4e8edabSChris Kay not widely available. There are known issues with GICv3 initialization in 4664c4e8edabSChris Kay TF-A. 4665c4e8edabSChris Kay- Dynamic image loading is not available yet. The current image loader 4666c4e8edabSChris Kay implementation (used to load BL2 and all subsequent images) has some 4667c4e8edabSChris Kay limitations. Changing BL2 or BL3-1 load addresses in certain ways can lead to 4668c4e8edabSChris Kay loading errors, even if the images should theoretically fit in memory. 4669c4e8edabSChris Kay- TF-A uses too much on-chip Trusted SRAM. Currently the Test Secure-EL1 Payload 4670c4e8edabSChris Kay (BL3-2) executes in Trusted DRAM since there is not enough SRAM. A number of 4671c4e8edabSChris Kay RAM usage enhancements have been identified to rectify this situation. 4672c4e8edabSChris Kay- CPU idle does not work on the advertised version of the Foundation FVP. Some 4673c4e8edabSChris Kay FVP fixes are required that are not available externally at the time of 4674c4e8edabSChris Kay writing. 4675c4e8edabSChris Kay- Various bugs in TF-A, UEFI and the Linux kernel have been observed when using 4676c4e8edabSChris Kay Linaro toolchain versions later than 13.11. Although most of these have been 4677c4e8edabSChris Kay fixed, some remain at the time of writing. These mainly seem to relate to a 4678c4e8edabSChris Kay subtle change in the way the compiler converts between 64-bit and 32-bit 4679c4e8edabSChris Kay values (e.g. during casting operations), which reveals previously hidden bugs 4680c4e8edabSChris Kay in client code. 4681c4e8edabSChris Kay- The tested filesystem used for this release (Linaro AArch64 OpenEmbedded 4682c4e8edabSChris Kay 14.01) does not report progress correctly in the console. It only seems to 4683c4e8edabSChris Kay produce error output, not standard output. It otherwise appears to function 4684c4e8edabSChris Kay correctly. Other filesystem versions on the same software stack do not exhibit 4685c4e8edabSChris Kay the problem. 4686c4e8edabSChris Kay- The Makefile structure doesn't make it easy to separate out parts of the TF-A 4687c4e8edabSChris Kay for re-use in platform ports, for example if only BL3-1 is required in a 4688c4e8edabSChris Kay platform port. Also, dependency checking in the Makefile is flawed. 4689c4e8edabSChris Kay- The firmware design documentation for the Test Secure-EL1 Payload (TSP) and 4690c4e8edabSChris Kay its dispatcher (TSPD) is incomplete. Similarly for the PSCI section. 4691c4e8edabSChris Kay 4692c4e8edabSChris Kay## 0.2 (2013-10-25) 4693c4e8edabSChris Kay 4694c4e8edabSChris Kay### New features 4695c4e8edabSChris Kay 4696c4e8edabSChris Kay- First source release. 4697c4e8edabSChris Kay- Code for the PSCI suspend feature is supplied, although this is not enabled by 4698c4e8edabSChris Kay default since there are known issues (see below). 4699c4e8edabSChris Kay 4700c4e8edabSChris Kay### Issues resolved since last release 4701c4e8edabSChris Kay 4702c4e8edabSChris Kay- The "psci" nodes in the FDTs provided in this release now fully comply with 4703c4e8edabSChris Kay the recommendations made in the PSCI specification. 4704c4e8edabSChris Kay 4705c4e8edabSChris Kay### Known issues 4706c4e8edabSChris Kay 4707c4e8edabSChris KayThe following is a list of issues which are expected to be fixed in the future 4708c4e8edabSChris Kayreleases of TF-A. 4709c4e8edabSChris Kay 4710c4e8edabSChris Kay- The TrustZone Address Space Controller (TZC-400) is not being programmed yet. 4711c4e8edabSChris Kay Use of model parameter `-C bp.secure_memory=1` is not supported. 4712c4e8edabSChris Kay- No support yet for secure world interrupt handling or for switching context 4713c4e8edabSChris Kay between secure and normal worlds in EL3. 4714c4e8edabSChris Kay- GICv3 support is experimental. The Linux kernel patches to support this are 4715c4e8edabSChris Kay not widely available. There are known issues with GICv3 initialization in 4716c4e8edabSChris Kay TF-A. 4717c4e8edabSChris Kay- Dynamic image loading is not available yet. The current image loader 4718c4e8edabSChris Kay implementation (used to load BL2 and all subsequent images) has some 4719c4e8edabSChris Kay limitations. Changing BL2 or BL3-1 load addresses in certain ways can lead to 4720c4e8edabSChris Kay loading errors, even if the images should theoretically fit in memory. 4721c4e8edabSChris Kay- Although support for PSCI `CPU_SUSPEND` is present, it is not yet stable and 4722c4e8edabSChris Kay ready for use. 4723c4e8edabSChris Kay- PSCI API calls `AFFINITY_INFO` & `PSCI_VERSION` are implemented but have not 4724c4e8edabSChris Kay been tested. 4725c4e8edabSChris Kay- The TF-A make files result in all build artifacts being placed in the root of 4726c4e8edabSChris Kay the project. These should be placed in appropriate sub-directories. 4727c4e8edabSChris Kay- The compilation of TF-A is not free from compilation warnings. Some of these 4728c4e8edabSChris Kay warnings have not been investigated yet so they could mask real bugs. 4729c4e8edabSChris Kay- TF-A currently uses toolchain/system include files like stdio.h. It should 4730c4e8edabSChris Kay provide versions of these within the project to maintain compatibility between 4731c4e8edabSChris Kay toolchains/systems. 4732c4e8edabSChris Kay- The PSCI code takes some locks in an incorrect sequence. This may cause 4733c4e8edabSChris Kay problems with suspend and hotplug in certain conditions. 4734c4e8edabSChris Kay- The Linux kernel used in this release is based on version 3.12-rc4. Using this 4735c4e8edabSChris Kay kernel with the TF-A fails to start the file-system as a RAM-disk. It fails to 4736c4e8edabSChris Kay execute user-space `init` from the RAM-disk. As an alternative, the 4737c4e8edabSChris Kay VirtioBlock mechanism can be used to provide a file-system to the kernel. 4738c4e8edabSChris Kay 4739c4e8edabSChris Kay______________________________________________________________________ 4740c4e8edabSChris Kay 4741c4e8edabSChris Kay*Copyright (c) 2013-2020, Arm Limited and Contributors. All rights reserved.* 4742c4e8edabSChris Kay 4743c4e8edabSChris Kay[mbed tls releases]: https://tls.mbed.org/tech-updates/releases 4744c4e8edabSChris Kay[pr#1002]: https://github.com/ARM-software/arm-trusted-firmware/pull/1002#issuecomment-312650193 4745c4e8edabSChris Kay[sdei specification]: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf 4746c4e8edabSChris Kay[tf-issue#501]: https://github.com/ARM-software/tf-issues/issues/501 4747