fix(arm): fix GIC macros for GICv4.1 supportNewer platforms such as Neoverse V2 with GICv4.1 will report0x3 instead of 0x1 in ID_AA64PFR0_EL1.Update the logic to not accidentially take the GICv2
fix(arm): fix GIC macros for GICv4.1 supportNewer platforms such as Neoverse V2 with GICv4.1 will report0x3 instead of 0x1 in ID_AA64PFR0_EL1.Update the logic to not accidentially take the GICv2 pathwhen printing the GIC registers.Change-Id: Ia0d546cc5dcaa0dcad49a75b5921b0df5e176d34Signed-off-by: Moritz Fischer <moritzf@google.com>
show more ...
AArch64: Align crash reporting outputThis patch modifies crash reporting for AArch64 to providealigned output of register dump and GIC registers.Change-Id: I8743bf1d2d6d56086e735df43785ef28051c5
AArch64: Align crash reporting outputThis patch modifies crash reporting for AArch64 to providealigned output of register dump and GIC registers.Change-Id: I8743bf1d2d6d56086e735df43785ef28051c5fc3Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
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>
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>
Remove string concatenation in assembler filesClang assembler doesn't support concatenation of adjacent strings.Change-Id: I092a1e30c137d431c6adcc13519fc2d595f92f14Signed-off-by: Roberto Vargas
Remove string concatenation in assembler filesClang assembler doesn't support concatenation of adjacent strings.Change-Id: I092a1e30c137d431c6adcc13519fc2d595f92f14Signed-off-by: Roberto Vargas <roberto.vargas@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>
Rework use of interconnect driversARM Trusted Firmware supports 2 different interconnect peripheraldrivers: CCI and CCN. ARM platforms are implemented using either of theinterconnect peripherals.
Rework use of interconnect driversARM Trusted Firmware supports 2 different interconnect peripheraldrivers: CCI and CCN. ARM platforms are implemented using either of theinterconnect peripherals.This patch adds a layer of abstraction to help ARM platform ports tochoose the right interconnect driver and corresponding platform support.This is as described below:1. A set of ARM common functions have been implemented to initialise aninterconnect and for entering/exiting a cluster from coherency. Thesefunctions are prefixed as "plat_arm_interconnect_". Weak definitions ofthese functions have been provided for each type of driver.2.`plat_print_interconnect_regs` macro used for printing CCI registers ismoved from a common arm_macros.S to cci_macros.S.3. The `ARM_CONFIG_HAS_CCI` flag used in `arm_config_flags` structureis renamed to `ARM_CONFIG_HAS_INTERCONNECT`.Change-Id: I02f31184fbf79b784175892d5ce1161b65a0066c
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
Prepare platforms to use refactored ARM GIC driversThis patch adds platform helpers for the new GICv2 and GICv3 drivers inplat_gicv2.c and plat_gicv3.c. The platforms can include the appropriatef
Prepare platforms to use refactored ARM GIC driversThis patch adds platform helpers for the new GICv2 and GICv3 drivers inplat_gicv2.c and plat_gicv3.c. The platforms can include the appropriatefile in their build according to the GIC driver to be used. The existingplat_gic.c is only meant for the legacy GIC driver.In the case of ARM platforms, the major changes are as follows:1. The crash reporting helper macro `arm_print_gic_regs` that prints the GIC CPU interface register values has been modified to detect the type of CPU interface being used (System register or memory mappped interface) before using the right interface to print the registers.2. The power management helper function that is called after a core is powered up has been further refactored. This is to highlight that the per-cpu distributor interface should be initialised only when the core was originally powered down using the CPU_OFF PSCI API and not when the CPU_SUSPEND PSCI API was used.3. In the case of CSS platforms, the system power domain restore helper `arm_system_pwr_domain_resume()` is now only invoked in the `suspend_finish` handler as the system power domain is always expected to be initialized when the `on_finish` handler is invoked.Change-Id: I7fc27d61fc6c2a60cea2436b676c5737d0257df6
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