plat: renesas: Move to common
Move rcar plat code to common directory, so that the same
code can be re-used by both R-Car Gen3 and RZ/G2 platforms.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Change-Id: I1001bea1a8a9232a03ddbf6931ca3c764ba1e181
diff --git a/plat/renesas/rcar/bl2_cpg_init.c b/plat/renesas/rcar/bl2_cpg_init.c
deleted file mode 100644
index 1754344..0000000
--- a/plat/renesas/rcar/bl2_cpg_init.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <common/debug.h>
-#include <lib/mmio.h>
-
-#include "cpg_registers.h"
-#include "rcar_def.h"
-#include "rcar_private.h"
-
-static void bl2_secure_cpg_init(void);
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
-static void bl2_realtime_cpg_init_h3(void);
-static void bl2_system_cpg_init_h3(void);
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_M3)
-static void bl2_realtime_cpg_init_m3(void);
-static void bl2_system_cpg_init_m3(void);
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_M3N)
-static void bl2_realtime_cpg_init_m3n(void);
-static void bl2_system_cpg_init_m3n(void);
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_V3M)
-static void bl2_realtime_cpg_init_v3m(void);
-static void bl2_system_cpg_init_v3m(void);
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_E3)
-static void bl2_realtime_cpg_init_e3(void);
-static void bl2_system_cpg_init_e3(void);
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_D3)
-static void bl2_realtime_cpg_init_d3(void);
-static void bl2_system_cpg_init_d3(void);
-#endif
-
-typedef struct {
- uintptr_t adr;
- uint32_t val;
-} reg_setting_t;
-
-static void bl2_secure_cpg_init(void)
-{
- uint32_t stop_cr2, reset_cr2;
- uint32_t stop_cr4, reset_cr4;
- uint32_t stop_cr5, reset_cr5;
-
-#if (RCAR_LSI == RCAR_D3)
- reset_cr2 = 0x00000000U;
- stop_cr2 = 0xFFFFFFFFU;
-#elif (RCAR_LSI == RCAR_E3)
- reset_cr2 = 0x10000000U;
- stop_cr2 = 0xEFFFFFFFU;
-#else
- reset_cr2 = 0x14000000U;
- stop_cr2 = 0xEBFFFFFFU;
-#endif
-
-#if (RCAR_LSI == RCAR_D3)
- reset_cr4 = 0x00000000U;
- stop_cr4 = 0xFFFFFFFFU;
- reset_cr5 = 0x00000000U;
- stop_cr5 = 0xFFFFFFFFU;
-#else
- reset_cr4 = 0x80000003U;
- stop_cr4 = 0x7FFFFFFFU;
- reset_cr5 = 0x40000000U;
- stop_cr5 = 0xBFFFFFFFU;
-#endif
-
- /* Secure Module Stop Control Registers */
- cpg_write(SCMSTPCR0, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR2, stop_cr2);
- cpg_write(SCMSTPCR3, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR4, stop_cr4);
- cpg_write(SCMSTPCR5, stop_cr5);
- cpg_write(SCMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR8, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR9, 0xFFFDFFFFU);
- cpg_write(SCMSTPCR10, 0xFFFFFFFFU);
- cpg_write(SCMSTPCR11, 0xFFFFFFFFU);
-
- /* Secure Software Reset Access Enable Control Registers */
- cpg_write(SCSRSTECR0, 0x00000000U);
- cpg_write(SCSRSTECR1, 0x00000000U);
- cpg_write(SCSRSTECR2, reset_cr2);
- cpg_write(SCSRSTECR3, 0x00000000U);
- cpg_write(SCSRSTECR4, reset_cr4);
- cpg_write(SCSRSTECR5, reset_cr5);
- cpg_write(SCSRSTECR6, 0x00000000U);
- cpg_write(SCSRSTECR7, 0x00000000U);
- cpg_write(SCSRSTECR8, 0x00000000U);
- cpg_write(SCSRSTECR9, 0x00020000U);
- cpg_write(SCSRSTECR10, 0x00000000U);
- cpg_write(SCSRSTECR11, 0x00000000U);
-}
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
-static void bl2_realtime_cpg_init_h3(void)
-{
- uint32_t cut = mmio_read_32(RCAR_PRR) & PRR_CUT_MASK;
- uint32_t cr0, cr8;
-
- cr0 = (cut == PRR_PRODUCT_10 || cut == PRR_PRODUCT_11) ?
- 0x00200000U : 0x00210000U;
- cr8 = (cut == PRR_PRODUCT_10 || cut == PRR_PRODUCT_11) ?
- 0x01F1FFF4U : 0x01F1FFF7U;
-
- cpg_write(RMSTPCR0, cr0);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x040E0FDCU);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000004U);
- cpg_write(RMSTPCR5, 0xC3FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, cr8);
- cpg_write(RMSTPCR9, 0xFFFFFFFEU);
- cpg_write(RMSTPCR10, 0xFFFEFFE0U);
- cpg_write(RMSTPCR11, 0x000000B7U);
-}
-
-static void bl2_system_cpg_init_h3(void)
-{
- /** System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00210000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x040E2FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x80000004U);
- cpg_write(SMSTPCR5, 0xC3FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x01F1FFF5U);
- cpg_write(SMSTPCR9, 0xFFFFFFFFU);
- cpg_write(SMSTPCR10, 0xFFFEFFE0U);
- cpg_write(SMSTPCR11, 0x000000B7U);
-}
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_M3)
-static void bl2_realtime_cpg_init_m3(void)
-{
- /* Realtime Module Stop Control Registers */
- cpg_write(RMSTPCR0, 0x00200000U);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x040E0FDCU);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000004U);
- cpg_write(RMSTPCR5, 0xC3FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, 0x01F1FFF7U);
- cpg_write(RMSTPCR9, 0xFFFFFFFEU);
- cpg_write(RMSTPCR10, 0xFFFEFFE0U);
- cpg_write(RMSTPCR11, 0x000000B7U);
-}
-
-static void bl2_system_cpg_init_m3(void)
-{
- /* System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00200000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x040E2FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x80000004U);
- cpg_write(SMSTPCR5, 0xC3FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x01F1FFF7U);
- cpg_write(SMSTPCR9, 0xFFFFFFFFU);
- cpg_write(SMSTPCR10, 0xFFFEFFE0U);
- cpg_write(SMSTPCR11, 0x000000B7U);
-}
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_M3N)
-static void bl2_realtime_cpg_init_m3n(void)
-{
- /* Realtime Module Stop Control Registers */
- cpg_write(RMSTPCR0, 0x00210000U);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x040E0FDCU);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000004U);
- cpg_write(RMSTPCR5, 0xC3FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, 0x00F1FFF7U);
- cpg_write(RMSTPCR9, 0xFFFFFFFFU);
- cpg_write(RMSTPCR10, 0xFFFFFFE0U);
- cpg_write(RMSTPCR11, 0x000000B7U);
-}
-
-static void bl2_system_cpg_init_m3n(void)
-{
- /* System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00210000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x040E2FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x80000004U);
- cpg_write(SMSTPCR5, 0xC3FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x00F1FFF7U);
- cpg_write(SMSTPCR9, 0xFFFFFFFFU);
- cpg_write(SMSTPCR10, 0xFFFFFFE0U);
- cpg_write(SMSTPCR11, 0x000000B7U);
-}
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_V3M)
-static void bl2_realtime_cpg_init_v3m(void)
-{
- /* Realtime Module Stop Control Registers */
- cpg_write(RMSTPCR0, 0x00230000U);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x14062FD8U);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000184U);
- cpg_write(RMSTPCR5, 0x83FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, 0x7FF3FFF4U);
- cpg_write(RMSTPCR9, 0xFFFFFFFEU);
-}
-
-static void bl2_system_cpg_init_v3m(void)
-{
- /* System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00210000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x340E2FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x80000004U);
- cpg_write(SMSTPCR5, 0xC3FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x01F1FFF5U);
- cpg_write(SMSTPCR9, 0xFFFFFFFEU);
-}
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_E3)
-static void bl2_realtime_cpg_init_e3(void)
-{
- /* Realtime Module Stop Control Registers */
- cpg_write(RMSTPCR0, 0x00210000U);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x000E0FDCU);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000004U);
- cpg_write(RMSTPCR5, 0xC3FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, 0x00F1FFF7U);
- cpg_write(RMSTPCR9, 0xFFFFFFDFU);
- cpg_write(RMSTPCR10, 0xFFFFFFE8U);
- cpg_write(RMSTPCR11, 0x000000B7U);
-}
-
-static void bl2_system_cpg_init_e3(void)
-{
- /* System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00210000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x000E2FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x80000004U);
- cpg_write(SMSTPCR5, 0xC3FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x00F1FFF7U);
- cpg_write(SMSTPCR9, 0xFFFFFFDFU);
- cpg_write(SMSTPCR10, 0xFFFFFFE8U);
- cpg_write(SMSTPCR11, 0x000000B7U);
-}
-#endif
-
-#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_D3)
-static void bl2_realtime_cpg_init_d3(void)
-{
- /* Realtime Module Stop Control Registers */
- cpg_write(RMSTPCR0, 0x00010000U);
- cpg_write(RMSTPCR1, 0xFFFFFFFFU);
- cpg_write(RMSTPCR2, 0x00060FDCU);
- cpg_write(RMSTPCR3, 0xFFFFFFDFU);
- cpg_write(RMSTPCR4, 0x80000184U);
- cpg_write(RMSTPCR5, 0x83FFFFFFU);
- cpg_write(RMSTPCR6, 0xFFFFFFFFU);
- cpg_write(RMSTPCR7, 0xFFFFFFFFU);
- cpg_write(RMSTPCR8, 0x00F1FFF7U);
- cpg_write(RMSTPCR9, 0xF3F5E016U);
- cpg_write(RMSTPCR10, 0xFFFEFFE0U);
- cpg_write(RMSTPCR11, 0x000000B7U);
-}
-
-static void bl2_system_cpg_init_d3(void)
-{
- /* System Module Stop Control Registers */
- cpg_write(SMSTPCR0, 0x00010000U);
- cpg_write(SMSTPCR1, 0xFFFFFFFFU);
- cpg_write(SMSTPCR2, 0x00060FDCU);
- cpg_write(SMSTPCR3, 0xFFFFFBDFU);
- cpg_write(SMSTPCR4, 0x00000084U);
- cpg_write(SMSTPCR5, 0x83FFFFFFU);
- cpg_write(SMSTPCR6, 0xFFFFFFFFU);
- cpg_write(SMSTPCR7, 0xFFFFFFFFU);
- cpg_write(SMSTPCR8, 0x00F1FFF7U);
- cpg_write(SMSTPCR9, 0xF3F5E016U);
- cpg_write(SMSTPCR10, 0xFFFEFFE0U);
- cpg_write(SMSTPCR11, 0x000000B7U);
-}
-#endif
-
-void bl2_cpg_init(void)
-{
- uint32_t boot_cpu = mmio_read_32(RCAR_MODEMR) & MODEMR_BOOT_CPU_MASK;
-#if RCAR_LSI == RCAR_AUTO
- uint32_t product = mmio_read_32(RCAR_PRR) & PRR_PRODUCT_MASK;
-#endif
- bl2_secure_cpg_init();
-
- if (boot_cpu == MODEMR_BOOT_CPU_CA57 ||
- boot_cpu == MODEMR_BOOT_CPU_CA53) {
-#if RCAR_LSI == RCAR_AUTO
-
- switch (product) {
- case PRR_PRODUCT_H3:
- bl2_realtime_cpg_init_h3();
- break;
- case PRR_PRODUCT_M3:
- bl2_realtime_cpg_init_m3();
- break;
- case PRR_PRODUCT_M3N:
- bl2_realtime_cpg_init_m3n();
- break;
- case PRR_PRODUCT_V3M:
- bl2_realtime_cpg_init_v3m();
- break;
- case PRR_PRODUCT_E3:
- bl2_realtime_cpg_init_e3();
- break;
- case PRR_PRODUCT_D3:
- bl2_realtime_cpg_init_d3();
- break;
- default:
- panic();
- break;
- }
-#elif (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
- bl2_realtime_cpg_init_h3();
-#elif RCAR_LSI == RCAR_M3
- bl2_realtime_cpg_init_m3();
-#elif RCAR_LSI == RCAR_M3N
- bl2_realtime_cpg_init_m3n();
-#elif RCAR_LSI == RCAR_V3M
- bl2_realtime_cpg_init_v3m();
-#elif RCAR_LSI == RCAR_E3
- bl2_realtime_cpg_init_e3();
-#elif RCAR_LSI == RCAR_D3
- bl2_realtime_cpg_init_d3();
-#else
-#error "Don't have CPG initialize routine(unknown)."
-#endif
- }
-}
-
-void bl2_system_cpg_init(void)
-{
-#if RCAR_LSI == RCAR_AUTO
- uint32_t product = mmio_read_32(RCAR_PRR) & PRR_PRODUCT_MASK;
-
- switch (product) {
- case PRR_PRODUCT_H3:
- bl2_system_cpg_init_h3();
- break;
- case PRR_PRODUCT_M3:
- bl2_system_cpg_init_m3();
- break;
- case PRR_PRODUCT_M3N:
- bl2_system_cpg_init_m3n();
- break;
- case PRR_PRODUCT_V3M:
- bl2_system_cpg_init_v3m();
- break;
- case PRR_PRODUCT_E3:
- bl2_system_cpg_init_e3();
- break;
- case PRR_PRODUCT_D3:
- bl2_system_cpg_init_d3();
- break;
- default:
- panic();
- break;
- }
-#elif (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
- bl2_system_cpg_init_h3();
-#elif RCAR_LSI == RCAR_M3
- bl2_system_cpg_init_m3();
-#elif RCAR_LSI == RCAR_M3N
- bl2_system_cpg_init_m3n();
-#elif RCAR_LSI == RCAR_V3M
- bl2_system_cpg_init_v3m();
-#elif RCAR_LSI == RCAR_E3
- bl2_system_cpg_init_e3();
-#elif RCAR_LSI == RCAR_D3
- bl2_system_cpg_init_d3();
-#else
-#error "Don't have CPG initialize routine(unknown)."
-#endif
-}
diff --git a/plat/renesas/rcar/bl2_interrupt_error.c b/plat/renesas/rcar/bl2_interrupt_error.c
deleted file mode 100644
index d9a4b8e..0000000
--- a/plat/renesas/rcar/bl2_interrupt_error.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2015-2017, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <arch_helpers.h>
-#include <common/bl_common.h>
-#include <common/debug.h>
-#include <common/runtime_svc.h>
-#include <drivers/arm/gicv2.h>
-#include <lib/mmio.h>
-
-#include "rcar_def.h"
-
-#define SWDT_ERROR_ID (1024U)
-#define SWDT_ERROR_TYPE (16U)
-#define SWDT_CHAR_MAX (13U)
-
-extern void rcar_swdt_release(void);
-
-void bl2_interrupt_error_id(uint32_t int_id)
-{
- ERROR("\n");
- if (int_id >= SWDT_ERROR_ID) {
- ERROR("Unhandled exception occurred.\n");
- ERROR(" Exception type = FIQ_SP_EL0\n");
- panic();
- }
-
- /* Clear the interrupt request */
- gicv2_end_of_interrupt((uint32_t) int_id);
- rcar_swdt_release();
- ERROR("Unhandled exception occurred.\n");
- ERROR(" Exception type = FIQ_SP_EL0\n");
- ERROR(" SPSR_EL3 = 0x%x\n", (uint32_t) read_spsr_el3());
- ERROR(" ELR_EL3 = 0x%x\n", (uint32_t) read_elr_el3());
- ERROR(" ESR_EL3 = 0x%x\n", (uint32_t) read_esr_el3());
- ERROR(" FAR_EL3 = 0x%x\n", (uint32_t) read_far_el3());
- ERROR("\n");
- panic();
-}
-
-void bl2_interrupt_error_type(uint32_t ex_type)
-{
- const uint8_t interrupt_ex[SWDT_ERROR_TYPE][SWDT_CHAR_MAX] = {
- "SYNC SP EL0",
- "IRQ SP EL0",
- "FIQ SP EL0",
- "SERR SP EL0",
- "SYNC SP ELx",
- "IRQ SP ELx",
- "FIQ SP ELx",
- "SERR SP ELx",
- "SYNC AARCH64",
- "IRQ AARCH64",
- "FIQ AARCH64",
- "SERR AARCH64",
- "SYNC AARCH32",
- "IRQ AARCH32",
- "FIQ AARCH32",
- "SERR AARCH32"
- };
- char msg[128];
-
- /* Clear the interrupt request */
- if (ex_type >= SWDT_ERROR_TYPE) {
- ERROR("\n");
- ERROR("Unhandled exception occurred.\n");
- ERROR(" Exception type = Unknown (%d)\n", ex_type);
- goto loop;
- }
-
- rcar_swdt_release();
- ERROR("\n");
- ERROR("Unhandled exception occurred.\n");
- snprintf(msg, sizeof(msg), " Exception type = %s\n",
- &interrupt_ex[ex_type][0]);
- ERROR("%s", msg);
- switch (ex_type) {
- case SYNC_EXCEPTION_SP_EL0:
- ERROR(" SPSR_EL3 = 0x%x\n", (uint32_t) read_spsr_el3());
- ERROR(" ELR_EL3 = 0x%x\n", (uint32_t) read_elr_el3());
- ERROR(" ESR_EL3 = 0x%x\n", (uint32_t) read_esr_el3());
- ERROR(" FAR_EL3 = 0x%x\n", (uint32_t) read_far_el3());
- break;
- case IRQ_SP_EL0:
- ERROR(" SPSR_EL3 = 0x%x\n", (uint32_t) read_spsr_el3());
- ERROR(" ELR_EL3 = 0x%x\n", (uint32_t) read_elr_el3());
- ERROR(" IAR_EL3 = 0x%x\n", gicv2_acknowledge_interrupt());
- break;
- case FIQ_SP_EL0:
- ERROR(" SPSR_EL3 = 0x%x\n", (uint32_t) read_spsr_el3());
- ERROR(" ELR_EL3 = 0x%x\n", (uint32_t) read_elr_el3());
- ERROR(" IAR_EL3 = 0x%x\n", gicv2_acknowledge_interrupt());
- break;
- case SERROR_SP_EL0:
- ERROR(" SPSR_EL3 = 0x%x\n", (uint32_t) read_spsr_el3());
- ERROR(" ELR_EL3 = 0x%x\n", (uint32_t) read_elr_el3());
- ERROR(" ESR_EL3 = 0x%x\n", (uint32_t) read_esr_el3());
- ERROR(" FAR_EL3 = 0x%x\n", (uint32_t) read_far_el3());
- break;
- default:
- break;
- }
-loop:
- ERROR("\n");
- panic();
-}
diff --git a/plat/renesas/rcar/bl2_plat_mem_params_desc.c b/plat/renesas/rcar/bl2_plat_mem_params_desc.c
deleted file mode 100644
index bf2706d..0000000
--- a/plat/renesas/rcar/bl2_plat_mem_params_desc.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <platform_def.h>
-
-#include <common/bl_common.h>
-#include <common/desc_image_load.h>
-#include <lib/xlat_tables/xlat_tables_defs.h>
-#include <plat/common/platform.h>
-
-#if (RCAR_BL33_EXECUTION_EL != 0) && (RCAR_BL33_EXECUTION_EL != 1)
-#error
-#endif
-
-#if (RCAR_BL33_EXECUTION_EL == 0)
-#define BL33_MODE MODE_EL1
-#else
-#define BL33_MODE MODE_EL2
-#endif
-
-extern uint64_t fdt_blob[PAGE_SIZE_4KB / sizeof(uint64_t)];
-
-static bl_mem_params_node_t bl2_mem_params_descs[] = {
- {
- .image_id = BL31_IMAGE_ID,
-
- SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, VERSION_2,
- entry_point_info_t, SECURE | EXECUTABLE | EP_FIRST_EXE),
- .ep_info.spsr = SPSR_64(MODE_EL3,
- MODE_SP_ELX, DISABLE_ALL_EXCEPTIONS),
- .ep_info.pc = BL31_BASE,
-
-
- SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, VERSION_2,
- image_info_t, IMAGE_ATTRIB_PLAT_SETUP),
- .image_info.image_max_size = BL31_LIMIT - BL31_BASE,
- .image_info.image_base = BL31_BASE,
-
-# ifdef BL32_BASE
- .next_handoff_image_id = BL32_IMAGE_ID,
-# else
- .next_handoff_image_id = BL33_IMAGE_ID,
-# endif
- },
-# ifdef BL32_BASE
- {
- .image_id = BL32_IMAGE_ID,
-
- SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, VERSION_2,
- entry_point_info_t, SECURE | EXECUTABLE),
- .ep_info.pc = BL32_BASE,
- .ep_info.spsr = 0,
- .ep_info.args.arg3 = (uintptr_t)fdt_blob,
-
- SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, VERSION_2,
- image_info_t, 0),
- .image_info.image_max_size = BL32_LIMIT - BL32_BASE,
- .image_info.image_base = BL32_BASE,
-
- .next_handoff_image_id = BL33_IMAGE_ID,
- },
-#endif
- {
- .image_id = BL33_IMAGE_ID,
-
- SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, VERSION_2,
- entry_point_info_t, NON_SECURE | EXECUTABLE),
- .ep_info.spsr = SPSR_64(BL33_MODE, MODE_SP_ELX,
- DISABLE_ALL_EXCEPTIONS),
- .ep_info.pc = BL33_BASE,
-#ifdef RCAR_BL33_ARG0
- .ep_info.args.arg0 = RCAR_BL33_ARG0,
-#endif
- .ep_info.args.arg1 = (uintptr_t)fdt_blob,
- SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, VERSION_2,
- image_info_t, 0),
- .image_info.image_max_size =
- (uint32_t) (DRAM_LIMIT - BL33_BASE),
- .image_info.image_base = BL33_BASE,
-
- .next_handoff_image_id = INVALID_IMAGE_ID,
- }
-};
-
-REGISTER_BL_IMAGE_DESCS(bl2_mem_params_descs)
diff --git a/plat/renesas/rcar/bl2_secure_setting.c b/plat/renesas/rcar/bl2_secure_setting.c
deleted file mode 100644
index 095d1f6..0000000
--- a/plat/renesas/rcar/bl2_secure_setting.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <lib/mmio.h>
-#include <lib/utils_def.h>
-
-#include "axi_registers.h"
-#include "lifec_registers.h"
-#include "micro_delay.h"
-
-static void lifec_security_setting(void);
-static void axi_security_setting(void);
-
-static const struct {
- uint32_t reg;
- uint32_t val;
-} lifec[] = {
- /*
- * LIFEC0 (SECURITY) settings
- * Security attribute setting for master ports
- * Bit 0: ARM realtime core (Cortex-R7) master port
- * 0: Non-Secure
- */
- { SEC_SRC, 0x0000001EU },
- /*
- * Security attribute setting for slave ports 0 to 15
- * {SEC_SEL0, 0xFFFFFFFFU},
- * {SEC_SEL1, 0xFFFFFFFFU},
- * {SEC_SEL2, 0xFFFFFFFFU},
- * Bit19: AXI-Bus (Main Memory domain AXI) slave ports
- * 0: registers accessed from secure resource only
- * Bit 9: DBSC4 register access slave ports.
- * 0: registers accessed from secure resource only.
- */
-#if (LIFEC_DBSC_PROTECT_ENABLE == 1)
- { SEC_SEL3, 0xFFF7FDFFU },
-#else /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
- { SEC_SEL3, 0xFFFFFFFFU },
-#endif /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
- /*
- * {SEC_SEL4, 0xFFFFFFFFU},
- * Bit 6: Boot ROM slave ports.
- * 0: registers accessed from secure resource only
- */
- { SEC_SEL5, 0xFFFFFFBFU },
- /*
- * Bit13: SCEG PKA (secure APB) slave ports
- * 0: registers accessed from secure resource only
- * 1: Reserved[R-Car E3]
- * Bit12: SCEG PKA (public APB) slave ports
- * 0: registers accessed from secure resource only
- * 1: Reserved[R-Car E3]
- * Bit10: SCEG Secure Core slave ports
- * 0: registers accessed from secure resource only
- */
-#if (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3)
- { SEC_SEL6, 0xFFFFFBFFU },
-#else /* (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
- { SEC_SEL6, 0xFFFFCBFFU },
-#endif /* (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
- /*
- * {SEC_SEL7, 0xFFFFFFFFU},
- * {SEC_SEL8, 0xFFFFFFFFU},
- * {SEC_SEL9, 0xFFFFFFFFU},
- * {SEC_SEL10, 0xFFFFFFFFU},
- * {SEC_SEL11, 0xFFFFFFFFU},
- * {SEC_SEL12, 0xFFFFFFFFU},
- * Bit22: RPC slave ports.
- * 0: registers accessed from secure resource only.
- */
-#if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
- { SEC_SEL13, 0xFFBFFFFFU },
-#endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
- /*
- * Bit27: System Timer (SCMT) slave ports
- * 0: registers accessed from secure resource only
- * Bit26: System Watchdog Timer (SWDT) slave ports
- * 0: registers accessed from secure resource only
- */
- { SEC_SEL14, 0xF3FFFFFFU },
- /*
- * Bit13: RST slave ports.
- * 0: registers accessed from secure resource only
- * Bit 7: Life Cycle 0 slave ports
- * 0: registers accessed from secure resource only
- */
- { SEC_SEL15, 0xFFFFFF3FU },
- /*
- * Security group 0 attribute setting for master ports 0
- * Security group 1 attribute setting for master ports 0
- * {SEC_GRP0CR0, 0x00000000U},
- * {SEC_GRP1CR0, 0x00000000U},
- * Security group 0 attribute setting for master ports 1
- * Security group 1 attribute setting for master ports 1
- * {SEC_GRP0CR1, 0x00000000U},
- * {SEC_GRP1CR1, 0x00000000U},
- * Security group 0 attribute setting for master ports 2
- * Security group 1 attribute setting for master ports 2
- * Bit17: SCEG Secure Core master ports.
- * SecurityGroup3
- */
- { SEC_GRP0CR2, 0x00020000U },
- { SEC_GRP1CR2, 0x00020000U },
- /*
- * Security group 0 attribute setting for master ports 3
- * Security group 1 attribute setting for master ports 3
- * {SEC_GRP0CR3, 0x00000000U},
- * {SEC_GRP1CR3, 0x00000000U},
- * Security group 0 attribute setting for slave ports 0
- * Security group 1 attribute setting for slave ports 0
- * {SEC_GRP0COND0, 0x00000000U},
- * {SEC_GRP1COND0, 0x00000000U},
- * Security group 0 attribute setting for slave ports 1
- * Security group 1 attribute setting for slave ports 1
- * {SEC_GRP0COND1, 0x00000000U},
- * {SEC_GRP1COND1, 0x00000000U},
- * Security group 0 attribute setting for slave ports 2
- * Security group 1 attribute setting for slave ports 2
- * {SEC_GRP0COND2, 0x00000000U},
- * {SEC_GRP1COND2, 0x00000000U},
- * Security group 0 attribute setting for slave ports 3
- * Security group 1 attribute setting for slave ports 3
- * Bit19: AXI-Bus (Main Memory domain AXI) slave ports.
- * SecurityGroup3
- * Bit 9: DBSC4 register access slave ports.
- * SecurityGroup3
- */
-#if (LIFEC_DBSC_PROTECT_ENABLE == 1)
- { SEC_GRP0COND3, 0x00080200U },
- { SEC_GRP1COND3, 0x00080200U },
-#else /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
- { SEC_GRP0COND3, 0x00000000U },
- { SEC_GRP1COND3, 0x00000000U },
-#endif /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
- /*
- * Security group 0 attribute setting for slave ports 4
- * Security group 1 attribute setting for slave ports 4
- * {SEC_GRP0COND4, 0x00000000U},
- * {SEC_GRP1COND4, 0x00000000U},
- * Security group 0 attribute setting for slave ports 5
- * Security group 1 attribute setting for slave ports 5
- * Bit 6: Boot ROM slave ports
- * SecurityGroup3
- */
- { SEC_GRP0COND5, 0x00000040U },
- { SEC_GRP1COND5, 0x00000040U },
- /*
- * Security group 0 attribute setting for slave ports 6
- * Security group 1 attribute setting for slave ports 6
- * Bit13: SCEG PKA (secure APB) slave ports
- * SecurityGroup3
- * Reserved[R-Car E3]
- * Bit12: SCEG PKA (public APB) slave ports
- * SecurityGroup3
- * Reserved[R-Car E3]
- * Bit10: SCEG Secure Core slave ports
- * SecurityGroup3
- */
-#if RCAR_LSI == RCAR_E3
- { SEC_GRP0COND6, 0x00000400U },
- { SEC_GRP1COND6, 0x00000400U },
-#else /* RCAR_LSI == RCAR_E3 */
- { SEC_GRP0COND6, 0x00003400U },
- { SEC_GRP1COND6, 0x00003400U },
-#endif /* RCAR_LSI == RCAR_E3 */
- /*
- * Security group 0 attribute setting for slave ports 7
- * Security group 1 attribute setting for slave ports 7
- * {SEC_GRP0COND7, 0x00000000U},
- * {SEC_GRP1COND7, 0x00000000U},
- * Security group 0 attribute setting for slave ports 8
- * Security group 1 attribute setting for slave ports 8
- * {SEC_GRP0COND8, 0x00000000U},
- * {SEC_GRP1COND8, 0x00000000U},
- * Security group 0 attribute setting for slave ports 9
- * Security group 1 attribute setting for slave ports 9
- * {SEC_GRP0COND9, 0x00000000U},
- * {SEC_GRP1COND9, 0x00000000U},
- * Security group 0 attribute setting for slave ports 10
- * Security group 1 attribute setting for slave ports 10
- * {SEC_GRP0COND10, 0x00000000U},
- * {SEC_GRP1COND10, 0x00000000U},
- * Security group 0 attribute setting for slave ports 11
- * Security group 1 attribute setting for slave ports 11
- * {SEC_GRP0COND11, 0x00000000U},
- * {SEC_GRP1COND11, 0x00000000U},
- * Security group 0 attribute setting for slave ports 12
- * Security group 1 attribute setting for slave ports 12
- * {SEC_GRP0COND12, 0x00000000U},
- * {SEC_GRP1COND12, 0x00000000U},
- * Security group 0 attribute setting for slave ports 13
- * Security group 1 attribute setting for slave ports 13
- * Bit22: RPC slave ports.
- * SecurityGroup3
- */
-#if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
- { SEC_GRP0COND13, 0x00400000U },
- { SEC_GRP1COND13, 0x00400000U },
-#endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
- /*
- * Security group 0 attribute setting for slave ports 14
- * Security group 1 attribute setting for slave ports 14
- * Bit26: System Timer (SCMT) slave ports
- * SecurityGroup3
- * Bit27: System Watchdog Timer (SWDT) slave ports
- * SecurityGroup3
- */
- { SEC_GRP0COND14, 0x0C000000U },
- { SEC_GRP1COND14, 0x0C000000U },
- /*
- * Security group 0 attribute setting for slave ports 15
- * Security group 1 attribute setting for slave ports 15
- * Bit13: RST slave ports
- * SecurityGroup3
- * Bit 7: Life Cycle 0 slave ports
- * SecurityGroup3
- * Bit 6: TDBG slave ports
- * SecurityGroup3
- */
- { SEC_GRP0COND15, 0x000000C0U },
- { SEC_GRP1COND15, 0x000000C0U },
- /*
- * Security write protection attribute setting slave ports 0
- * {SEC_READONLY0, 0x00000000U},
- * Security write protection attribute setting slave ports 1
- * {SEC_READONLY1, 0x00000000U},
- * Security write protection attribute setting slave ports 2
- * {SEC_READONLY2, 0x00000000U},
- * Security write protection attribute setting slave ports 3
- * {SEC_READONLY3, 0x00000000U},
- * Security write protection attribute setting slave ports 4
- * {SEC_READONLY4, 0x00000000U},
- * Security write protection attribute setting slave ports 5
- * {SEC_READONLY5, 0x00000000U},
- * Security write protection attribute setting slave ports 6
- * {SEC_READONLY6, 0x00000000U},
- * Security write protection attribute setting slave ports 7
- * {SEC_READONLY7, 0x00000000U},
- * Security write protection attribute setting slave ports 8
- * {SEC_READONLY8, 0x00000000U},
- * Security write protection attribute setting slave ports 9
- * {SEC_READONLY9, 0x00000000U},
- * Security write protection attribute setting slave ports 10
- * {SEC_READONLY10, 0x00000000U},
- * Security write protection attribute setting slave ports 11
- * {SEC_READONLY11, 0x00000000U},
- * Security write protection attribute setting slave ports 12
- * {SEC_READONLY12, 0x00000000U},
- * Security write protection attribute setting slave ports 13
- * {SEC_READONLY13, 0x00000000U},
- * Security write protection attribute setting slave ports 14
- * {SEC_READONLY14, 0x00000000U},
- * Security write protection attribute setting slave ports 15
- * {SEC_READONLY15, 0x00000000U}
- */
-};
-
-/* AXI settings */
-static const struct {
- uint32_t reg;
- uint32_t val;
-} axi[] = {
- /*
- * DRAM protection
- * AXI dram protected area division
- */
- {AXI_DPTDIVCR0, 0x0E0403F0U},
- {AXI_DPTDIVCR1, 0x0E0407E0U},
- {AXI_DPTDIVCR2, 0x0E080000U},
- {AXI_DPTDIVCR3, 0x0E080000U},
- {AXI_DPTDIVCR4, 0x0E080000U},
- {AXI_DPTDIVCR5, 0x0E080000U},
- {AXI_DPTDIVCR6, 0x0E080000U},
- {AXI_DPTDIVCR7, 0x0E080000U},
- {AXI_DPTDIVCR8, 0x0E080000U},
- {AXI_DPTDIVCR9, 0x0E080000U},
- {AXI_DPTDIVCR10, 0x0E080000U},
- {AXI_DPTDIVCR11, 0x0E080000U},
- {AXI_DPTDIVCR12, 0x0E080000U},
- {AXI_DPTDIVCR13, 0x0E080000U},
- {AXI_DPTDIVCR14, 0x0E080000U},
- /* AXI dram protected area setting */
- {AXI_DPTCR0, 0x0E000000U},
- {AXI_DPTCR1, 0x0E000E0EU},
- {AXI_DPTCR2, 0x0E000000U},
- {AXI_DPTCR3, 0x0E000000U},
- {AXI_DPTCR4, 0x0E000000U},
- {AXI_DPTCR5, 0x0E000000U},
- {AXI_DPTCR6, 0x0E000000U},
- {AXI_DPTCR7, 0x0E000000U},
- {AXI_DPTCR8, 0x0E000000U},
- {AXI_DPTCR9, 0x0E000000U},
- {AXI_DPTCR10, 0x0E000000U},
- {AXI_DPTCR11, 0x0E000000U},
- {AXI_DPTCR12, 0x0E000000U},
- {AXI_DPTCR13, 0x0E000000U},
- {AXI_DPTCR14, 0x0E000000U},
- {AXI_DPTCR15, 0x0E000000U},
- /*
- * SRAM ptotection
- * AXI sram protected area division
- */
- {AXI_SPTDIVCR0, 0x0E0E6304U},
- {AXI_SPTDIVCR1, 0x0E0E6360U},
- {AXI_SPTDIVCR2, 0x0E0E6360U},
- {AXI_SPTDIVCR3, 0x0E0E6360U},
- {AXI_SPTDIVCR4, 0x0E0E6360U},
- {AXI_SPTDIVCR5, 0x0E0E6360U},
- {AXI_SPTDIVCR6, 0x0E0E6360U},
- {AXI_SPTDIVCR7, 0x0E0E6360U},
- {AXI_SPTDIVCR8, 0x0E0E6360U},
- {AXI_SPTDIVCR9, 0x0E0E6360U},
- {AXI_SPTDIVCR10, 0x0E0E6360U},
- {AXI_SPTDIVCR11, 0x0E0E6360U},
- {AXI_SPTDIVCR12, 0x0E0E6360U},
- {AXI_SPTDIVCR13, 0x0E0E6360U},
- {AXI_SPTDIVCR14, 0x0E0E6360U},
- /* AXI sram protected area setting */
- {AXI_SPTCR0, 0x0E000E0EU},
- {AXI_SPTCR1, 0x0E000000U},
- {AXI_SPTCR2, 0x0E000000U},
- {AXI_SPTCR3, 0x0E000000U},
- {AXI_SPTCR4, 0x0E000000U},
- {AXI_SPTCR5, 0x0E000000U},
- {AXI_SPTCR6, 0x0E000000U},
- {AXI_SPTCR7, 0x0E000000U},
- {AXI_SPTCR8, 0x0E000000U},
- {AXI_SPTCR9, 0x0E000000U},
- {AXI_SPTCR10, 0x0E000000U},
- {AXI_SPTCR11, 0x0E000000U},
- {AXI_SPTCR12, 0x0E000000U},
- {AXI_SPTCR13, 0x0E000000U},
- {AXI_SPTCR14, 0x0E000000U},
- {AXI_SPTCR15, 0x0E000000U}
-};
-
-static void lifec_security_setting(void)
-{
- uint32_t i;
-
- for (i = 0; i < ARRAY_SIZE(lifec); i++)
- mmio_write_32(lifec[i].reg, lifec[i].val);
-}
-
-/* SRAM/DRAM protection setting */
-static void axi_security_setting(void)
-{
- uint32_t i;
-
- for (i = 0; i < ARRAY_SIZE(axi); i++)
- mmio_write_32(axi[i].reg, axi[i].val);
-}
-
-void bl2_secure_setting(void)
-{
- lifec_security_setting();
- axi_security_setting();
- rcar_micro_delay(10U);
-}
diff --git a/plat/renesas/rcar/bl31_plat_setup.c b/plat/renesas/rcar/bl31_plat_setup.c
deleted file mode 100644
index 93798ac..0000000
--- a/plat/renesas/rcar/bl31_plat_setup.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <stddef.h>
-
-#include <arch.h>
-#include <arch_helpers.h>
-#include <bl31/bl31.h>
-#include <common/bl_common.h>
-#include <common/debug.h>
-#include <drivers/arm/cci.h>
-#include <drivers/console.h>
-#include <lib/mmio.h>
-#include <plat/common/platform.h>
-
-#include "pwrc.h"
-#include "rcar_def.h"
-#include "rcar_private.h"
-#include "rcar_version.h"
-
-static const uint64_t BL31_RO_BASE = BL_CODE_BASE;
-static const uint64_t BL31_RO_LIMIT = BL_CODE_END;
-
-#if USE_COHERENT_MEM
-static const uint64_t BL31_COHERENT_RAM_BASE = BL_COHERENT_RAM_BASE;
-static const uint64_t BL31_COHERENT_RAM_LIMIT = BL_COHERENT_RAM_END;
-#endif /* USE_COHERENT_MEM */
-
-extern void plat_rcar_gic_driver_init(void);
-extern void plat_rcar_gic_init(void);
-
-u_register_t rcar_boot_mpidr;
-
-static int cci_map[] = {
- CCI500_CLUSTER0_SL_IFACE_IX_FOR_M3,
- CCI500_CLUSTER1_SL_IFACE_IX_FOR_M3
-};
-
-void plat_cci_init(void)
-{
- uint32_t prd;
-
- prd = mmio_read_32(RCAR_PRR) & (PRR_PRODUCT_MASK | PRR_CUT_MASK);
-
- if (PRR_PRODUCT_H3_CUT10 == prd || PRR_PRODUCT_H3_CUT11 == prd) {
- cci_map[0U] = CCI500_CLUSTER0_SL_IFACE_IX;
- cci_map[1U] = CCI500_CLUSTER1_SL_IFACE_IX;
- }
-
- cci_init(RCAR_CCI_BASE, cci_map, ARRAY_SIZE(cci_map));
-}
-
-void plat_cci_enable(void)
-{
- cci_enable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr()));
-}
-
-void plat_cci_disable(void)
-{
- cci_disable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr()));
-}
-
-struct entry_point_info *bl31_plat_get_next_image_ep_info(uint32_t type)
-{
- bl2_to_bl31_params_mem_t *from_bl2 = (bl2_to_bl31_params_mem_t *)
- PARAMS_BASE;
- entry_point_info_t *next_image_info;
-
- next_image_info = (type == NON_SECURE) ?
- &from_bl2->bl33_ep_info : &from_bl2->bl32_ep_info;
-
- return next_image_info->pc ? next_image_info : NULL;
-}
-
-void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
- u_register_t arg2, u_register_t arg3)
-{
- rcar_console_runtime_init();
-
- NOTICE("BL3-1 : Rev.%s\n", version_of_renesas);
-
-#if RCAR_LSI != RCAR_D3
- if (rcar_pwrc_get_cluster() == RCAR_CLUSTER_A53A57) {
- plat_cci_init();
- plat_cci_enable();
- }
-#endif /* RCAR_LSI != RCAR_D3 */
-}
-
-void bl31_plat_arch_setup(void)
-{
- rcar_configure_mmu_el3(BL31_BASE,
- BL31_LIMIT - BL31_BASE,
- BL31_RO_BASE, BL31_RO_LIMIT
-#if USE_COHERENT_MEM
- , BL31_COHERENT_RAM_BASE, BL31_COHERENT_RAM_LIMIT
-#endif /* USE_COHERENT_MEM */
- );
- rcar_pwrc_code_copy_to_system_ram();
-}
-
-void bl31_platform_setup(void)
-{
- plat_rcar_gic_driver_init();
- plat_rcar_gic_init();
-
- /* enable the system level generic timer */
- mmio_write_32(RCAR_CNTC_BASE + CNTCR_OFF, CNTCR_FCREQ(U(0)) | CNTCR_EN);
-
- rcar_pwrc_setup();
-#if 0
- /*
- * TODO: there is a broad number of rcar-gen3 SoC configurations; to
- * support all of them, Renesas use the pwrc driver to discover what
- * cores are on/off before announcing the topology.
- * This code hasnt been ported yet
- */
-
- rcar_setup_topology();
-#endif
-
- /*
- * mask should match the kernel's MPIDR_HWID_BITMASK so the core can be
- * identified during cpuhotplug (check the kernel's psci migrate set of
- * functions
- */
- rcar_boot_mpidr = read_mpidr_el1() & 0x0000ffffU;
-}
diff --git a/plat/renesas/rcar/plat_image_load.c b/plat/renesas/rcar/plat_image_load.c
deleted file mode 100644
index 9d814a6..0000000
--- a/plat/renesas/rcar/plat_image_load.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <common/bl_common.h>
-#include <common/desc_image_load.h>
-#include <plat/common/platform.h>
-
-extern void bl2_plat_flush_bl31_params(void);
-
-/*******************************************************************************
- * This function flushes the data structures so that they are visible
- * in memory for the next BL image.
- ******************************************************************************/
-void plat_flush_next_bl_params(void)
-{
-#if IMAGE_BL2
- bl2_plat_flush_bl31_params();
-#endif
-}
-
-/*******************************************************************************
- * This function returns the list of loadable images.
- ******************************************************************************/
-bl_load_info_t *plat_get_bl_image_load_info(void)
-{
- return get_bl_load_info_from_mem_params_desc();
-}
-
-/*******************************************************************************
- * This function returns the list of executable images.
- ******************************************************************************/
-bl_params_t *plat_get_next_bl_params(void)
-{
- return get_next_bl_params_from_mem_params_desc();
-}
diff --git a/plat/renesas/rcar/plat_pm.c b/plat/renesas/rcar/plat_pm.c
deleted file mode 100644
index 7ec78cc..0000000
--- a/plat/renesas/rcar/plat_pm.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <errno.h>
-
-#include <arch_helpers.h>
-#include <common/bl_common.h>
-#include <common/debug.h>
-#include <drivers/arm/cci.h>
-#include <drivers/arm/gicv2.h>
-#include <lib/bakery_lock.h>
-#include <lib/mmio.h>
-#include <lib/psci/psci.h>
-#include <plat/common/platform.h>
-
-#include "iic_dvfs.h"
-#include "platform_def.h"
-#include "pwrc.h"
-#include "rcar_def.h"
-#include "rcar_private.h"
-#include "ulcb_cpld.h"
-
-#define DVFS_SET_VID_0V (0x00)
-#define P_ALL_OFF (0x80)
-#define KEEPON_DDR1C (0x08)
-#define KEEPON_DDR0C (0x04)
-#define KEEPON_DDR1 (0x02)
-#define KEEPON_DDR0 (0x01)
-
-#define SYSTEM_PWR_STATE(s) ((s)->pwr_domain_state[PLAT_MAX_PWR_LVL])
-#define CLUSTER_PWR_STATE(s) ((s)->pwr_domain_state[MPIDR_AFFLVL1])
-#define CORE_PWR_STATE(s) ((s)->pwr_domain_state[MPIDR_AFFLVL0])
-
-extern void rcar_pwrc_restore_generic_timer(uint64_t *stack);
-extern void plat_rcar_gic_driver_init(void);
-extern void plat_rcar_gic_init(void);
-extern u_register_t rcar_boot_mpidr;
-
-static uintptr_t rcar_sec_entrypoint;
-
-static void rcar_program_mailbox(uint64_t mpidr, uint64_t address)
-{
- mailbox_t *rcar_mboxes = (mailbox_t *) MBOX_BASE;
- uint64_t linear_id = plat_core_pos_by_mpidr(mpidr);
- unsigned long range;
-
- rcar_mboxes[linear_id].value = address;
- range = (unsigned long)&rcar_mboxes[linear_id];
-
- flush_dcache_range(range, sizeof(range));
-}
-
-static void rcar_cpu_standby(plat_local_state_t cpu_state)
-{
- u_register_t scr_el3 = read_scr_el3();
-
- write_scr_el3(scr_el3 | SCR_IRQ_BIT);
- dsb();
- wfi();
- write_scr_el3(scr_el3);
-}
-
-static int rcar_pwr_domain_on(u_register_t mpidr)
-{
- rcar_program_mailbox(mpidr, rcar_sec_entrypoint);
- rcar_pwrc_cpuon(mpidr);
-
- return PSCI_E_SUCCESS;
-}
-
-static void rcar_pwr_domain_on_finish(const psci_power_state_t *target_state)
-{
- uint32_t cluster_type = rcar_pwrc_get_cluster();
- unsigned long mpidr = read_mpidr_el1();
-
- if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE)
- if (cluster_type == RCAR_CLUSTER_A53A57)
- plat_cci_enable();
-
- rcar_pwrc_disable_interrupt_wakeup(mpidr);
- rcar_program_mailbox(mpidr, 0);
-
- gicv2_cpuif_enable();
- gicv2_pcpu_distif_init();
-}
-
-static void rcar_pwr_domain_off(const psci_power_state_t *target_state)
-{
-#if RCAR_LSI != RCAR_D3
- uint32_t cluster_type = rcar_pwrc_get_cluster();
-#endif
- unsigned long mpidr = read_mpidr_el1();
-
- gicv2_cpuif_disable();
- rcar_pwrc_cpuoff(mpidr);
-
-#if RCAR_LSI != RCAR_D3
- if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) {
- if (cluster_type == RCAR_CLUSTER_A53A57)
- plat_cci_disable();
-
- rcar_pwrc_clusteroff(mpidr);
- }
-#endif
-}
-
-static void rcar_pwr_domain_suspend(const psci_power_state_t *target_state)
-{
- uint32_t cluster_type = rcar_pwrc_get_cluster();
- unsigned long mpidr = read_mpidr_el1();
-
- if (CORE_PWR_STATE(target_state) != PLAT_MAX_OFF_STATE)
- return;
-
- rcar_program_mailbox(mpidr, rcar_sec_entrypoint);
- rcar_pwrc_enable_interrupt_wakeup(mpidr);
- gicv2_cpuif_disable();
- rcar_pwrc_cpuoff(mpidr);
-
- if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) {
- if (cluster_type == RCAR_CLUSTER_A53A57)
- plat_cci_disable();
-
- rcar_pwrc_clusteroff(mpidr);
- }
-
-#if RCAR_SYSTEM_SUSPEND
- if (SYSTEM_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE)
- rcar_pwrc_suspend_to_ram();
-#endif
-}
-
-static void rcar_pwr_domain_suspend_finish(const psci_power_state_t
- *target_state)
-{
- uint32_t cluster_type = rcar_pwrc_get_cluster();
-
- if (SYSTEM_PWR_STATE(target_state) != PLAT_MAX_OFF_STATE)
- goto finish;
-
- plat_rcar_gic_driver_init();
- plat_rcar_gic_init();
-
- if (cluster_type == RCAR_CLUSTER_A53A57)
- plat_cci_init();
-
- rcar_pwrc_restore_timer_state();
- rcar_pwrc_setup();
- rcar_pwrc_code_copy_to_system_ram();
-
-#if RCAR_SYSTEM_SUSPEND
- rcar_pwrc_init_suspend_to_ram();
-#endif
-finish:
- rcar_pwr_domain_on_finish(target_state);
-}
-
-static void __dead2 rcar_system_off(void)
-{
-#if PMIC_ROHM_BD9571
-#if PMIC_LEVEL_MODE
- if (rcar_iic_dvfs_send(PMIC, DVFS_SET_VID, DVFS_SET_VID_0V))
- ERROR("BL3-1:Failed the SYSTEM-OFF.\n");
-#else
- if (rcar_iic_dvfs_send(PMIC, BKUP_MODE_CNT, P_ALL_OFF))
- ERROR("BL3-1:Failed the SYSTEM-RESET.\n");
-#endif
-#else
- uint64_t cpu = read_mpidr_el1() & 0x0000ffff;
- int32_t rtn_on;
-
- rtn_on = rcar_pwrc_cpu_on_check(cpu);
-
- if (cpu == rcar_boot_mpidr)
- panic();
-
- if (rtn_on)
- panic();
-
- rcar_pwrc_cpuoff(cpu);
- rcar_pwrc_clusteroff(cpu);
-
-#endif /* PMIC_ROHM_BD9571 */
- wfi();
- ERROR("RCAR System Off: operation not handled.\n");
- panic();
-}
-
-static void __dead2 rcar_system_reset(void)
-{
-#if PMIC_ROHM_BD9571
-#if PMIC_LEVEL_MODE
-#if RCAR_SYSTEM_RESET_KEEPON_DDR
- uint8_t mode;
- int32_t error;
-
- error = rcar_iic_dvfs_send(PMIC, REG_KEEP10, KEEP10_MAGIC);
- if (error) {
- ERROR("Failed send KEEP10 magic ret=%d\n", error);
- goto done;
- }
-
- error = rcar_iic_dvfs_receive(PMIC, BKUP_MODE_CNT, &mode);
- if (error) {
- ERROR("Failed receive BKUP_Mode_Cnt ret=%d\n", error);
- goto done;
- }
-
- mode |= KEEPON_DDR1C | KEEPON_DDR0C | KEEPON_DDR1 | KEEPON_DDR0;
- error = rcar_iic_dvfs_send(PMIC, BKUP_MODE_CNT, mode);
- if (error) {
- ERROR("Failed send KEEPON_DDRx ret=%d\n", error);
- goto done;
- }
-
- rcar_pwrc_set_suspend_to_ram();
-done:
-#else
- if (rcar_iic_dvfs_send(PMIC, BKUP_MODE_CNT, P_ALL_OFF))
- ERROR("BL3-1:Failed the SYSTEM-RESET.\n");
-#endif
-#else
-#if (RCAR_GEN3_ULCB == 1)
- rcar_cpld_reset_cpu();
-#endif
-#endif
-#else
- rcar_pwrc_system_reset();
-#endif
- wfi();
-
- ERROR("RCAR System Reset: operation not handled.\n");
- panic();
-}
-
-static int rcar_validate_power_state(unsigned int power_state,
- psci_power_state_t *req_state)
-{
- unsigned int pwr_lvl = psci_get_pstate_pwrlvl(power_state);
- unsigned int pstate = psci_get_pstate_type(power_state);
- uint32_t i;
-
- if (pstate == PSTATE_TYPE_STANDBY) {
- if (pwr_lvl != MPIDR_AFFLVL0)
- return PSCI_E_INVALID_PARAMS;
-
- req_state->pwr_domain_state[MPIDR_AFFLVL0] = PLAT_MAX_RET_STATE;
- } else {
- for (i = MPIDR_AFFLVL0; i <= pwr_lvl; i++)
- req_state->pwr_domain_state[i] = PLAT_MAX_OFF_STATE;
- }
-
- if (psci_get_pstate_id(power_state))
- return PSCI_E_INVALID_PARAMS;
-
- return PSCI_E_SUCCESS;
-}
-
-#if RCAR_SYSTEM_SUSPEND
-static void rcar_get_sys_suspend_power_state(psci_power_state_t *req_state)
-{
- unsigned long mpidr = read_mpidr_el1() & 0x0000ffffU;
- int i;
-
- if (mpidr != rcar_boot_mpidr)
- goto deny;
-
- for (i = MPIDR_AFFLVL0; i <= PLAT_MAX_PWR_LVL; i++)
- req_state->pwr_domain_state[i] = PLAT_MAX_OFF_STATE;
-
- return;
-deny:
- /* deny system suspend entry */
- req_state->pwr_domain_state[PLAT_MAX_PWR_LVL] = PSCI_LOCAL_STATE_RUN;
- for (i = MPIDR_AFFLVL0; i < PLAT_MAX_PWR_LVL; i++)
- req_state->pwr_domain_state[i] = PLAT_MAX_RET_STATE;
-}
-#endif
-
-static const plat_psci_ops_t rcar_plat_psci_ops = {
- .cpu_standby = rcar_cpu_standby,
- .pwr_domain_on = rcar_pwr_domain_on,
- .pwr_domain_off = rcar_pwr_domain_off,
- .pwr_domain_suspend = rcar_pwr_domain_suspend,
- .pwr_domain_on_finish = rcar_pwr_domain_on_finish,
- .pwr_domain_suspend_finish = rcar_pwr_domain_suspend_finish,
- .system_off = rcar_system_off,
- .system_reset = rcar_system_reset,
- .validate_power_state = rcar_validate_power_state,
-#if RCAR_SYSTEM_SUSPEND
- .get_sys_suspend_power_state = rcar_get_sys_suspend_power_state,
-#endif
-};
-
-int plat_setup_psci_ops(uintptr_t sec_entrypoint, const plat_psci_ops_t **psci_ops)
-{
- *psci_ops = &rcar_plat_psci_ops;
- rcar_sec_entrypoint = sec_entrypoint;
-
-#if RCAR_SYSTEM_SUSPEND
- rcar_pwrc_init_suspend_to_ram();
-#endif
- return 0;
-}
-
diff --git a/plat/renesas/rcar/plat_storage.c b/plat/renesas/rcar/plat_storage.c
deleted file mode 100644
index 6524561..0000000
--- a/plat/renesas/rcar/plat_storage.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <string.h>
-
-#include <common/debug.h>
-#include <drivers/io/io_driver.h>
-#include <drivers/io/io_storage.h>
-#include <drivers/io/io_semihosting.h>
-
-#include "io_common.h"
-#include "io_memdrv.h"
-#include "io_emmcdrv.h"
-#include "io_private.h"
-#include "io_rcar.h"
-#include <platform_def.h>
-
-static uintptr_t emmcdrv_dev_handle;
-static uintptr_t memdrv_dev_handle;
-static uintptr_t rcar_dev_handle;
-
-static uintptr_t boot_io_drv_id;
-
-static const io_block_spec_t rcar_block_spec = {
- .offset = FLASH0_BASE,
- .length = FLASH0_SIZE
-};
-
-static const io_block_spec_t bl2_file_spec = {
- .offset = BL2_IMAGE_ID,
-};
-
-static const io_block_spec_t bl31_file_spec = {
- .offset = BL31_IMAGE_ID,
-};
-
-static const io_block_spec_t bl32_file_spec = {
- .offset = BL32_IMAGE_ID,
-};
-
-static const io_block_spec_t bl33_file_spec = {
- .offset = BL33_IMAGE_ID,
-};
-
-static const io_block_spec_t bl332_file_spec = {
- .offset = BL332_IMAGE_ID,
-};
-
-static const io_block_spec_t bl333_file_spec = {
- .offset = BL333_IMAGE_ID,
-};
-
-static const io_block_spec_t bl334_file_spec = {
- .offset = BL334_IMAGE_ID,
-};
-
-static const io_block_spec_t bl335_file_spec = {
- .offset = BL335_IMAGE_ID,
-};
-
-static const io_block_spec_t bl336_file_spec = {
- .offset = BL336_IMAGE_ID,
-};
-
-static const io_block_spec_t bl337_file_spec = {
- .offset = BL337_IMAGE_ID,
-};
-
-static const io_block_spec_t bl338_file_spec = {
- .offset = BL338_IMAGE_ID,
-};
-
-#if TRUSTED_BOARD_BOOT
-static const io_block_spec_t trusted_key_cert_file_spec = {
- .offset = TRUSTED_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl31_key_cert_file_spec = {
- .offset = SOC_FW_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl32_key_cert_file_spec = {
- .offset = TRUSTED_OS_FW_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl33_key_cert_file_spec = {
- .offset = NON_TRUSTED_FW_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl332_key_cert_file_spec = {
- .offset = BL332_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl333_key_cert_file_spec = {
- .offset = BL333_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl334_key_cert_file_spec = {
- .offset = BL334_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl335_key_cert_file_spec = {
- .offset = BL335_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl336_key_cert_file_spec = {
- .offset = BL336_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl337_key_cert_file_spec = {
- .offset = BL337_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl338_key_cert_file_spec = {
- .offset = BL338_KEY_CERT_ID,
-};
-
-static const io_block_spec_t bl31_cert_file_spec = {
- .offset = SOC_FW_CONTENT_CERT_ID,
-};
-
-static const io_block_spec_t bl32_cert_file_spec = {
- .offset = TRUSTED_OS_FW_CONTENT_CERT_ID,
-};
-
-static const io_block_spec_t bl33_cert_file_spec = {
- .offset = NON_TRUSTED_FW_CONTENT_CERT_ID,
-};
-
-static const io_block_spec_t bl332_cert_file_spec = {
- .offset = BL332_CERT_ID,
-};
-
-static const io_block_spec_t bl333_cert_file_spec = {
- .offset = BL333_CERT_ID,
-};
-
-static const io_block_spec_t bl334_cert_file_spec = {
- .offset = BL334_CERT_ID,
-};
-
-static const io_block_spec_t bl335_cert_file_spec = {
- .offset = BL335_CERT_ID,
-};
-
-static const io_block_spec_t bl336_cert_file_spec = {
- .offset = BL336_CERT_ID,
-};
-
-static const io_block_spec_t bl337_cert_file_spec = {
- .offset = BL337_CERT_ID,
-};
-
-static const io_block_spec_t bl338_cert_file_spec = {
- .offset = BL338_CERT_ID,
-};
-#endif
-
-static int32_t open_emmcdrv(const uintptr_t spec);
-static int32_t open_memmap(const uintptr_t spec);
-static int32_t open_rcar(const uintptr_t spec);
-
-struct plat_io_policy {
- uintptr_t *dev_handle;
- uintptr_t image_spec;
- int32_t (*check)(const uintptr_t spec);
-};
-
-static const struct plat_io_policy policies[] = {
- [FIP_IMAGE_ID] = {
- &memdrv_dev_handle,
- (uintptr_t) &rcar_block_spec,
- &open_memmap},
- [BL2_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl2_file_spec,
- &open_rcar},
- [BL31_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl31_file_spec,
- &open_rcar},
- [BL32_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl32_file_spec,
- &open_rcar},
- [BL33_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl33_file_spec,
- &open_rcar},
- [BL332_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl332_file_spec,
- &open_rcar},
- [BL333_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl333_file_spec,
- &open_rcar},
- [BL334_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl334_file_spec,
- &open_rcar},
- [BL335_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl335_file_spec,
- &open_rcar},
- [BL336_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl336_file_spec,
- &open_rcar},
- [BL337_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl337_file_spec,
- &open_rcar},
- [BL338_IMAGE_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl338_file_spec,
- &open_rcar},
-#if TRUSTED_BOARD_BOOT
- [TRUSTED_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &trusted_key_cert_file_spec,
- &open_rcar},
- [SOC_FW_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl31_key_cert_file_spec,
- &open_rcar},
- [TRUSTED_OS_FW_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl32_key_cert_file_spec,
- &open_rcar},
- [NON_TRUSTED_FW_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl33_key_cert_file_spec,
- &open_rcar},
- [BL332_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl332_key_cert_file_spec,
- &open_rcar},
- [BL333_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl333_key_cert_file_spec,
- &open_rcar},
- [BL334_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl334_key_cert_file_spec,
- &open_rcar},
- [BL335_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl335_key_cert_file_spec,
- &open_rcar},
- [BL336_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl336_key_cert_file_spec,
- &open_rcar},
- [BL337_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl337_key_cert_file_spec,
- &open_rcar},
- [BL338_KEY_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl338_key_cert_file_spec,
- &open_rcar},
- [SOC_FW_CONTENT_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl31_cert_file_spec,
- &open_rcar},
- [TRUSTED_OS_FW_CONTENT_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl32_cert_file_spec,
- &open_rcar},
- [NON_TRUSTED_FW_CONTENT_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl33_cert_file_spec,
- &open_rcar},
- [BL332_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl332_cert_file_spec,
- &open_rcar},
- [BL333_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl333_cert_file_spec,
- &open_rcar},
- [BL334_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl334_cert_file_spec,
- &open_rcar},
- [BL335_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl335_cert_file_spec,
- &open_rcar},
- [BL336_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl336_cert_file_spec,
- &open_rcar},
- [BL337_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl337_cert_file_spec,
- &open_rcar},
- [BL338_CERT_ID] = {
- &rcar_dev_handle,
- (uintptr_t) &bl338_cert_file_spec,
- &open_rcar}, {
-#else
- {
-#endif
- 0, 0, 0}
-};
-
-static io_drv_spec_t io_drv_spec_memdrv = {
- FLASH0_BASE,
- FLASH0_SIZE,
- 0,
-};
-
-static io_drv_spec_t io_drv_spec_emmcdrv = {
- 0,
- 0,
- 0,
-};
-
-static struct plat_io_policy drv_policies[] __attribute__ ((section(".data"))) = {
- /* FLASH_DEV_ID */
- { &memdrv_dev_handle, (uintptr_t) &io_drv_spec_memdrv, &open_memmap, },
- /* EMMC_DEV_ID */
- { &emmcdrv_dev_handle, (uintptr_t) &io_drv_spec_emmcdrv, &open_emmcdrv, }
-};
-
-static int32_t open_rcar(const uintptr_t spec)
-{
- return io_dev_init(rcar_dev_handle, boot_io_drv_id);
-}
-
-static int32_t open_memmap(const uintptr_t spec)
-{
- uintptr_t handle;
- int32_t result;
-
- result = io_dev_init(memdrv_dev_handle, 0);
- if (result != IO_SUCCESS)
- return result;
-
- result = io_open(memdrv_dev_handle, spec, &handle);
- if (result == IO_SUCCESS)
- io_close(handle);
-
- return result;
-}
-
-static int32_t open_emmcdrv(const uintptr_t spec)
-{
- return io_dev_init(emmcdrv_dev_handle, 0);
-}
-
-void rcar_io_setup(void)
-{
- const io_dev_connector_t *memmap;
- const io_dev_connector_t *rcar;
-
- boot_io_drv_id = FLASH_DEV_ID;
-
- rcar_register_io_dev(&rcar);
- rcar_register_io_dev_memdrv(&memmap);
- io_dev_open(rcar, 0, &rcar_dev_handle);
- io_dev_open(memmap, 0, &memdrv_dev_handle);
-}
-
-void rcar_io_emmc_setup(void)
-{
- const io_dev_connector_t *rcar;
- const io_dev_connector_t *emmc;
-
- boot_io_drv_id = EMMC_DEV_ID;
-
- rcar_register_io_dev(&rcar);
- rcar_register_io_dev_emmcdrv(&emmc);
- io_dev_open(rcar, 0, &rcar_dev_handle);
- io_dev_open(emmc, 0, &emmcdrv_dev_handle);
-}
-
-int plat_get_image_source(unsigned int image_id, uintptr_t *dev_handle,
- uintptr_t *image_spec)
-{
- const struct plat_io_policy *policy;
- int result;
-
- policy = &policies[image_id];
-
- result = policy->check(policy->image_spec);
- if (result != IO_SUCCESS)
- return result;
-
- *image_spec = policy->image_spec;
- *dev_handle = *(policy->dev_handle);
-
- return IO_SUCCESS;
-}
-
-int32_t plat_get_drv_source(uint32_t io_drv_id, uintptr_t *dev_handle,
- uintptr_t *image_spec)
-{
- const struct plat_io_policy *policy;
- int32_t result;
-
- policy = &drv_policies[io_drv_id];
-
- result = policy->check(policy->image_spec);
- if (result != IO_SUCCESS)
- return result;
-
- *image_spec = policy->image_spec;
- *dev_handle = *(policy->dev_handle);
-
- return IO_SUCCESS;
-}
diff --git a/plat/renesas/rcar/plat_topology.c b/plat/renesas/rcar/plat_topology.c
deleted file mode 100644
index 0d5880d..0000000
--- a/plat/renesas/rcar/plat_topology.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2018, Renesas Electronics Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <platform_def.h>
-
-#include <common/debug.h>
-#include <lib/psci/psci.h>
-
-static const unsigned char rcar_power_domain_tree_desc[] = {
- 1,
- PLATFORM_CLUSTER_COUNT,
- PLATFORM_CLUSTER0_CORE_COUNT,
- PLATFORM_CLUSTER1_CORE_COUNT
-};
-
-const unsigned char *plat_get_power_domain_tree_desc(void)
-{
- return rcar_power_domain_tree_desc;
-}
-
-int plat_core_pos_by_mpidr(u_register_t mpidr)
-{
- unsigned int cluster_id, cpu_id;
-
- mpidr &= MPIDR_AFFINITY_MASK;
-
- if (mpidr & ~(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK))
- return -1;
-
- cluster_id = (mpidr >> MPIDR_AFF1_SHIFT) & MPIDR_AFFLVL_MASK;
- cpu_id = (mpidr >> MPIDR_AFF0_SHIFT) & MPIDR_AFFLVL_MASK;
-
- if (cluster_id >= PLATFORM_CLUSTER_COUNT)
- return -1;
-
- if (cluster_id == 0 && cpu_id >= PLATFORM_CLUSTER0_CORE_COUNT)
- return -1;
-
- if (cluster_id == 1 && cpu_id >= PLATFORM_CLUSTER1_CORE_COUNT)
- return -1;
-
- return (cpu_id + cluster_id * PLATFORM_CLUSTER0_CORE_COUNT);
-}
-
diff --git a/plat/renesas/rcar/platform.mk b/plat/renesas/rcar/platform.mk
index ee393f2..5e4978c 100644
--- a/plat/renesas/rcar/platform.mk
+++ b/plat/renesas/rcar/platform.mk
@@ -312,19 +312,9 @@
-Idrivers/renesas/common/pwrc \
-Idrivers/renesas/common/io
-BL2_SOURCES += plat/renesas/rcar/bl2_interrupt_error.c \
- plat/renesas/rcar/bl2_secure_setting.c \
- plat/renesas/rcar/bl2_plat_setup.c \
- plat/renesas/rcar/plat_storage.c \
- plat/renesas/rcar/bl2_plat_mem_params_desc.c \
- plat/renesas/rcar/plat_image_load.c \
- plat/renesas/rcar/bl2_cpg_init.c \
+BL2_SOURCES += plat/renesas/rcar/bl2_plat_setup.c \
drivers/renesas/rcar/board/board.c
-BL31_SOURCES += plat/renesas/rcar/plat_topology.c \
- plat/renesas/rcar/bl31_plat_setup.c \
- plat/renesas/rcar/plat_pm.c
-
ifeq (${RCAR_GEN3_ULCB},1)
BL31_SOURCES += drivers/renesas/rcar/cpld/ulcb_cpld.c
endif