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>
Add common ARM and CSS platform codeThis major change pulls out the common functionality from theFVP and Juno platform ports into the following categories:* (include/)plat/common. Common platf
Add common ARM and CSS platform codeThis major change pulls out the common functionality from theFVP and Juno platform ports into the following categories:* (include/)plat/common. Common platform porting functionality thattypically may be used by all platforms.* (include/)plat/arm/common. Common platform porting functionalitythat may be used by all ARM standard platforms. This includes allARM development platforms like FVP and Juno but may also includenon-ARM-owned platforms.* (include/)plat/arm/board/common. Common platform portingfunctionality for ARM development platforms at the board(off SoC) level.* (include/)plat/arm/css/common. Common platform portingfunctionality at the ARM Compute SubSystem (CSS) level. Junois an example of a CSS-based platform.* (include/)plat/arm/soc/common. Common platform portingfunctionality at the ARM SoC level, which is not already definedat the ARM CSS level.No guarantees are made about the backward compatibility offunctionality provided in (include/)plat/arm.Also remove any unnecessary variation between the ARM developmentplatform ports, including:* Unify the way BL2 passes `bl31_params_t` to BL3-1. Use theJuno implementation, which copies the information from BL2 memoryinstead of expecting it to persist in shared memory.* Unify the TZC configuration. There is no need to add a regionfor SCP in Juno; it's enough to simply not allow any access tothis reserved region. Also set region 0 to provide no access bydefault instead of assuming this is the case.* Unify the number of memory map regions required for ARMdevelopment platforms, although the actual ranges mapped for eachplatform may be different. For the FVP port, this reduces themapped peripheral address space.These latter changes will only be observed when the platform portsare migrated to use the new common platform code in subsequentpatches.Change-Id: Id9c269dd3dc6e74533d0e5116fdd826d53946dc8