plat/arm: Fix header dependenciesFrom now on, platform_def.h must include any header with definitions thatare platform-specific (like arm_def.h) and the included headers mustn'tinclude back platf
plat/arm: Fix header dependenciesFrom now on, platform_def.h must include any header with definitions thatare platform-specific (like arm_def.h) and the included headers mustn'tinclude back platform_def.h, and shouldn't be used by other files. Onlyplatform_def.h should be included in other files. This will ensure that allneeded definitions are present, rather than needing to include all theheaders in all the definitions' headers just in case.This also prevents problems like cyclic dependencies.Change-Id: I9d3cf4d1de4b956fa035c79545222697acdaf5caSigned-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
Sanitise includes across codebaseEnforce full include path for includes. Deprecate old paths.The following folders inside include/lib have been left unchanged:- include/lib/cpus/${ARCH}- inclu
Sanitise includes across codebaseEnforce full include path for includes. Deprecate old paths.The following folders inside include/lib have been left unchanged:- include/lib/cpus/${ARCH}- include/lib/el3_runtime/${ARCH}The reason for this change is that having a global namespace forincludes isn't a good idea. It defeats one of the advantages of havingfolders and it introduces problems that are sometimes subtle (becauseyou may not know the header you are actually including if there are twoof them).For example, this patch had to be created because two headers werecalled the same way: e0ea0928d5b7 ("Fix gpio includes of mt8173 platformto avoid collision."). More recently, this patch has had similarproblems: 46f9b2c3a282 ("drivers: add tzc380 support").This problem was introduced in commit 4ecca33988b9 ("Move include andsource files to logical locations"). At that time, there weren't toomany headers so it wasn't a real issue. However, time has shown thatthis creates problems.Platforms that want to preserve the way they include headers may add theremoved paths to PLAT_INCLUDES, but this is discouraged.Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8fSigned-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Use SPDX license identifiersTo make software license auditing simpler, use SPDX[0] licenseidentifiers instead of duplicating the license text in every file.NOTE: Files that have been imported by
Use SPDX license identifiersTo make software license auditing simpler, use SPDX[0] licenseidentifiers instead of duplicating the license text in every file.NOTE: Files that have been imported by FreeBSD have not been modified.[0]: https://spdx.org/Change-Id: I80a00e1f641b8cc075ca5a95b10607ed9ed8761aSigned-off-by: dp-arm <dimitris.papastamos@arm.com>
AArch32: Common changes needed for BL1/BL2This patch adds common changes to support AArch32 state inBL1 and BL2. Following are the changes:* Added functions for disabling MMU from Secure state.
AArch32: Common changes needed for BL1/BL2This patch adds common changes to support AArch32 state inBL1 and BL2. Following are the changes:* Added functions for disabling MMU from Secure state.* Added AArch32 specific SMC function.* Added semihosting support.* Added reporting of unhandled exceptions.* Added uniprocessor stack support.* Added `el3_entrypoint_common` macro that can be shared by BL1 and BL32 (SP_MIN) BL stages. The `el3_entrypoint_common` is similar to the AArch64 counterpart with the main difference in the assembly instructions and the registers that are relevant to AArch32 execution state.* Enabled `LOAD_IMAGE_V2` flag in Makefile for `ARCH=aarch32` and added check to make sure that platform has not overridden to disable it.Change-Id: I33c6d8dfefb2e5d142fdfd06a0f4a7332962e1a3