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