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