From 7f56f240d336801e923ad8e8620e6e469810b5fe Mon Sep 17 00:00:00 2001 From: Chee Hong Ang Date: Fri, 24 Apr 2020 21:51:00 +0800 Subject: [PATCH] intel: clear 'PLAT_SEC_ENTRY' in early platform setup Ensure 'PLAT_SEC_ENTRY' is cleared during early platform setup. This is to prevent the slave CPU cores jump to the stale entry point after warm reset when using U-Boot SPL as first stage boot loader. Signed-off-by: Chee Hong Ang Change-Id: I3294ce2f74aa691d0cf311fa30f27f9d4fb8800a --- plat/intel/soc/agilex/bl31_plat_setup.c | 6 ++++-- plat/intel/soc/common/include/platform_def.h | 2 ++ plat/intel/soc/stratix10/bl31_plat_setup.c | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plat/intel/soc/agilex/bl31_plat_setup.c b/plat/intel/soc/agilex/bl31_plat_setup.c index 6f32aff4a..436538b39 100644 --- a/plat/intel/soc/agilex/bl31_plat_setup.c +++ b/plat/intel/soc/agilex/bl31_plat_setup.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. - * Copyright (c) 2019, Intel Corporation. All rights reserved. + * Copyright (c) 2019-2020, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2019-2020, Intel Corporation. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -39,6 +39,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, { static console_t console; + mmio_write_64(PLAT_SEC_ENTRY, PLAT_SEC_WARM_ENTRY); + console_16550_register(PLAT_UART0_BASE, PLAT_UART_CLOCK, PLAT_BAUDRATE, &console); /* diff --git a/plat/intel/soc/common/include/platform_def.h b/plat/intel/soc/common/include/platform_def.h index 046d13880..55600ee69 100644 --- a/plat/intel/soc/common/include/platform_def.h +++ b/plat/intel/soc/common/include/platform_def.h @@ -134,6 +134,8 @@ #define PLAT_CPUID_RELEASE (BL_DATA_LIMIT - 16) #define PLAT_SEC_ENTRY (BL_DATA_LIMIT - 8) +#define PLAT_SEC_WARM_ENTRY 0 + /******************************************************************************* * Platform specific page table and MMU setup constants ******************************************************************************/ diff --git a/plat/intel/soc/stratix10/bl31_plat_setup.c b/plat/intel/soc/stratix10/bl31_plat_setup.c index 5813c8f8c..e0c3054ed 100644 --- a/plat/intel/soc/stratix10/bl31_plat_setup.c +++ b/plat/intel/soc/stratix10/bl31_plat_setup.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. - * Copyright (c) 2019, Intel Corporation. All rights reserved. + * Copyright (c) 2019-2020, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2019-2020, Intel Corporation. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -47,6 +47,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, { static console_t console; + mmio_write_64(PLAT_SEC_ENTRY, PLAT_SEC_WARM_ENTRY); + console_16550_register(PLAT_UART0_BASE, PLAT_UART_CLOCK, PLAT_BAUDRATE, &console); /*