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