From 1b49ba0fde5eb9e47fe50152c192579101feb718 Mon Sep 17 00:00:00 2001 From: Takuya Sakata Date: Wed, 1 Dec 2021 13:37:02 +0900 Subject: [PATCH 1/2] fix(plat/rcar3): fix SYSTEM_OFF processing for R-Car D3 Fixed an issue where the CPU and Cluster could not be turned OFF when the SYSTEM_OFF has executed. Signed-off-by: Hideyuki Nitta Signed-off-by: Toshiyuki Ogasahara Signed-off-by: Yoshifumi Hosoya Change-Id: Id476f815b58246ae0574c04ccb3eb201d09039b9 --- plat/renesas/common/plat_pm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/plat/renesas/common/plat_pm.c b/plat/renesas/common/plat_pm.c index cc677f394..9810596de 100644 --- a/plat/renesas/common/plat_pm.c +++ b/plat/renesas/common/plat_pm.c @@ -178,19 +178,22 @@ static void __dead2 rcar_system_off(void) ERROR("BL3-1:Failed the SYSTEM-RESET.\n"); #endif #else - u_register_t cpu = read_mpidr_el1() & 0x0000ffffU; + u_register_t mpidr = read_mpidr_el1(); + u_register_t cpu = mpidr & 0x0000ffffU; int32_t rtn_on; - rtn_on = rcar_pwrc_cpu_on_check(cpu); + rtn_on = rcar_pwrc_cpu_on_check(mpidr); - if (cpu == rcar_boot_mpidr) + if (cpu != rcar_boot_mpidr) { panic(); + } - if (rtn_on) + if (rtn_on != 0) { panic(); + } - rcar_pwrc_cpuoff(cpu); - rcar_pwrc_clusteroff(cpu); + rcar_pwrc_cpuoff(mpidr); + rcar_pwrc_clusteroff(mpidr); #endif /* PMIC_ROHM_BD9571 */ wfi(); From d544dfcc4959d203b06dbfb85fb0ad895178b379 Mon Sep 17 00:00:00 2001 From: Takuya Sakata Date: Wed, 1 Dec 2021 13:41:33 +0900 Subject: [PATCH 2/2] fix(plat/rcar3): change stack size of BL31 Increase the stack size to avoid stack overflow when the LOG_LEVEL compile option is set high. Signed-off-by: Hideyuki Nitta Signed-off-by: Toshiyuki Ogasahara Signed-off-by: Yoshifumi Hosoya Change-Id: I25047322763bff148dba13848a3a40f4c7cf90b7 --- plat/renesas/common/include/platform_def.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plat/renesas/common/include/platform_def.h b/plat/renesas/common/include/platform_def.h index 1213a3c96..ab071ec08 100644 --- a/plat/renesas/common/include/platform_def.h +++ b/plat/renesas/common/include/platform_def.h @@ -40,7 +40,7 @@ #define PLATFORM_STACK_SIZE U(0x400) #endif #elif IMAGE_BL31 -#define PLATFORM_STACK_SIZE U(0x400) +#define PLATFORM_STACK_SIZE U(0x800) #elif IMAGE_BL32 #define PLATFORM_STACK_SIZE U(0x440) #endif