| 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 000000000..f6e6bee1e |
| --- /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 0d2c31971..3f90c7ef0 100644 |
| --- a/plat/arm/board/fvp/platform.mk |
| +++ b/plat/arm/board/fvp/platform.mk |
| @@ -6,6 +6,8 @@ |
| |
| include common/fdt_wrappers.mk |
| |
| +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 |
| |