fix(css): don't require the GICC frame to be defined on GICv3It's used for GICv2 operation, which won't happen with v3. CSS willalways use USE_GIC_DRIVER with the correct version so we can rely on
fix(css): don't require the GICC frame to be defined on GICv3It's used for GICv2 operation, which won't happen with v3. CSS willalways use USE_GIC_DRIVER with the correct version so we can rely onthat to skip passing the GICC frame.Change-Id: I358b99646f98bd7c6ea398bc8d8900cc80ca15bbSigned-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
Standardise header guards across codebaseAll identifiers, regardless of use, that start with two underscores arereserved. This means they can't be used in header guards.The style that this proje
Standardise header guards across codebaseAll identifiers, regardless of use, that start with two underscores arereserved. This means they can't be used in header guards.The style that this project is now to use the full name of the file incapital letters followed by 'H'. For example, for a file called"uart_example.h", the header guard is UART_EXAMPLE_H.The exceptions are files that are imported from other projects:- CryptoCell driver- dt-bindings folders- zlib headersChange-Id: I50561bf6c88b491ec440d0c8385c74650f3c106eSigned-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>
Dump platform-defined regs in crash reportingIt is up to the platform to implement the new plat_crash_print_regs macro toreport all relevant platform registers helpful for troubleshooting.plat_c
Dump platform-defined regs in crash reportingIt is up to the platform to implement the new plat_crash_print_regs macro toreport all relevant platform registers helpful for troubleshooting.plat_crash_print_regs merges or calls previously defined plat_print_gic_regsand plat_print_interconnect_regs macros for each existing platforms.NOTE: THIS COMMIT REQUIRES ALL PLATFORMS THAT ENABLE THE `CRASH_REPORTING`BUILD FLAG TO MIGRATE TO USE THE NEW `plat_crash_print_regs()` MACRO. BYDEFAULT, `CRASH_REPORTING` IS ENABLED IN DEBUG BUILDS FOR ALL PLATFORMS.Fixes: arm-software/tf-issues#373Signed-off-by: Gerald Lejeune <gerald.lejeune@st.com>
Remove dashes from image names: 'BL3-x' --> 'BL3x'This patch removes the dash character from the image name, tofollow the image terminology in the Trusted Firmware Wiki page: https://github.c
Remove dashes from image names: 'BL3-x' --> 'BL3x'This patch removes the dash character from the image name, tofollow the image terminology in the Trusted Firmware Wiki page: https://github.com/ARM-software/arm-trusted-firmware/wikiChanges apply to output messages, comments and documentation.non-ARM platform files have been left unmodified.Change-Id: Ic2a99be4ed929d52afbeb27ac765ceffce46ed76
Rework use of ARM GIC drivers on ARM platformsSuport for ARM GIC v2.0 and v3.0 drivers has been reworked to create threeseparate drivers instead of providing a single driver that can work on both
Rework use of ARM GIC drivers on ARM platformsSuport for ARM GIC v2.0 and v3.0 drivers has been reworked to create threeseparate drivers instead of providing a single driver that can work on bothversions of the GIC architecture. These drivers correspond to the followingsoftware use cases:1. A GICv2 only driver that can run only on ARM GIC v2.0 implementations e.g. GIC-4002. A GICv3 only driver that can run only on ARM GIC v3.0 implementations e.g. GIC-500 in a mode where all interrupt regimes use GICv3 features3. A deprecated GICv3 driver that operates in legacy mode. This driver can operate only in the GICv2 mode in the secure world. On a GICv3 system, this driver allows normal world to run in either GICv3 mode (asymmetric mode) or in the GICv2 mode. Both modes of operation are deprecated on GICv3 systems.ARM platforms implement both versions of the GIC architecture. This patch adds alayer of abstraction to help ARM platform ports chose the right GIC driver andcorresponding platform support. This is as described below:1. A set of ARM common functions have been introduced to initialise the GIC and the driver during cold and warm boot. These functions are prefixed as "plat_arm_gic_". Weak definitions of these functions have been provided for each type of driver.2. Each platform includes the sources that implement the right functions directly into the its makefile. The FVP can be instantiated with different versions of the GIC architecture. It uses the FVP_USE_GIC_DRIVER build option to specify which of the three drivers should be included in the build.3. A list of secure interrupts has to be provided to initialise each of the three GIC drivers. For GIC v3.0 the interrupt ids have to be further categorised as Group 0 and Group 1 Secure interrupts. For GIC v2.0, the two types are merged and treated as Group 0 interrupts. The two lists of interrupts are exported from the platform_def.h. The lists are constructed by adding a list of board specific interrupt ids to a list of ids common to all ARM platforms and Compute sub-systems.This patch also makes some fields of `arm_config` data structure in FVP redundantand these unused fields are removed.Change-Id: Ibc8c087be7a8a6b041b78c2c3bd0c648cd2035d8
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