diff --git a/include/lib/cpus/aarch64/neoverse_n3.h b/include/lib/cpus/aarch64/neoverse_n3.h index a3bb42aad..91963305d 100644 --- a/include/lib/cpus/aarch64/neoverse_n3.h +++ b/include/lib/cpus/aarch64/neoverse_n3.h @@ -13,6 +13,7 @@ * CPU Extended Control register specific definitions ******************************************************************************/ #define NEOVERSE_N3_CPUECTLR_EL1 S3_0_C15_C1_4 +#define NEOVERSE_N3_CPUECTLR_EL1_EXTLLC_BIT (ULL(1) << 0) /******************************************************************************* * CPU Power Control register specific definitions diff --git a/lib/cpus/aarch64/neoverse_n3.S b/lib/cpus/aarch64/neoverse_n3.S index 9c1ccafdd..0b33b7ed0 100644 --- a/lib/cpus/aarch64/neoverse_n3.S +++ b/lib/cpus/aarch64/neoverse_n3.S @@ -24,6 +24,11 @@ cpu_reset_func_start neoverse_n3 /* Disable speculative loads */ msr SSBS, xzr + +#if NEOVERSE_Nx_EXTERNAL_LLC + /* Some systems may have External LLC, core needs to be made aware */ + sysreg_bit_set NEOVERSE_N3_CPUECTLR_EL1, NEOVERSE_N3_CPUECTLR_EL1_EXTLLC_BIT +#endif cpu_reset_func_end neoverse_n3 /* ----------------------------------------------------