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