| diff --git a/plat/arm/board/fvp/aarch64/fvp_fault.S b/plat/arm/board/fvp/aarch64/fvp_fault.S |
| new file mode 100644 |
| index e69de29bb..3a2faca1a 100644 |
| --- /dev/null |
| +++ b/plat/arm/board/fvp/aarch64/fvp_fault.S |
| @@ -0,0 +1,42 @@ |
| + |
| +#include <asm_macros.S> |
| + |
| + .globl plat_handle_uncontainable_ea |
| + |
| +str_uncontainable: |
| + .byte 10 /* Log marker */ |
| + .asciz "Injected Uncontainable Error\n" |
| + |
| +str_double_fault: |
| + .byte 10 /* Log marker */ |
| + .asciz "Injected Double Fault\n" |
| + |
| + /* ----------------------------------------------------- |
| + * Platform handler for Uncontainable External Abort. |
| + * |
| + * x0: EA reason |
| + * x1: EA syndrome |
| + * ----------------------------------------------------- |
| + */ |
| +func plat_handle_uncontainable_ea |
| + adr x0, str_uncontainable |
| + bl tf_log |
| +1: |
| + wfe |
| + b 1b |
| +endfunc plat_handle_uncontainable_ea |
| + |
| + /* ----------------------------------------------------- |
| + * Platform handler for Double Fault. |
| + * |
| + * x0: EA reason |
| + * x1: EA syndrome |
| + * ----------------------------------------------------- |
| + */ |
| +func plat_handle_double_fault |
| + adr x0, str_double_fault |
| + bl tf_log |
| +1: |
| + wfe |
| + b 1b |
| +endfunc plat_handle_double_fault |
| diff --git a/plat/arm/board/fvp/platform.mk b/plat/arm/board/fvp/platform.mk |
| index 2b1e0ac70..461932124 100644 |
| --- a/plat/arm/board/fvp/platform.mk |
| +++ b/plat/arm/board/fvp/platform.mk |
| @@ -4,6 +4,8 @@ |
| # SPDX-License-Identifier: BSD-3-Clause |
| # |
| |
| +BL31_SOURCES += plat/arm/board/fvp/aarch64/fvp_fault.S |
| + |
| # Use the GICv3 driver on the FVP by default |
| FVP_USE_GIC_DRIVER := FVP_GICV3 |
| |