diff options
author | Marek Vasut <marek.vasut+renesas@gmail.com> | 2019-01-05 13:56:03 +0100 |
---|---|---|
committer | Marek Vasut <marek.vasut+renesas@gmail.com> | 2019-04-02 03:40:51 +0200 |
commit | bfbf5df405d5e99d6df1060ab8da479c8f1524ab (patch) | |
tree | 582f4693134bbc4da93da85fbc76a3129d2ac843 /plat/renesas/rcar/bl2_plat_setup.c | |
parent | 5b4f022be4f0c72709e3a526574de1d79b385a4c (diff) |
rcar_gen3: plat: Add initial D3 support
Add R-Car D3 SoC platform specifics. Driver, PFC, QoS, DDR init code
will be added separately.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Diffstat (limited to 'plat/renesas/rcar/bl2_plat_setup.c')
-rw-r--r-- | plat/renesas/rcar/bl2_plat_setup.c | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/plat/renesas/rcar/bl2_plat_setup.c b/plat/renesas/rcar/bl2_plat_setup.c index 7442942c..d21ddf50 100644 --- a/plat/renesas/rcar/bl2_plat_setup.c +++ b/plat/renesas/rcar/bl2_plat_setup.c @@ -76,6 +76,9 @@ static void bl2_init_generic_timer(void); #elif RCAR_LSI == RCAR_E3 #define TARGET_PRODUCT RCAR_PRODUCT_E3 #define TARGET_NAME "R-Car E3" +#elif RCAR_LSI == RCAR_D3 +#define TARGET_PRODUCT RCAR_PRODUCT_D3 +#define TARGET_NAME "R-Car D3" #elif RCAR_LSI == RCAR_AUTO #define TARGET_NAME "R-Car H3/M3/M3N" #endif @@ -242,6 +245,9 @@ void bl2_plat_flush_bl31_params(void) if (product == RCAR_PRODUCT_H3 && RCAR_CUT_VER20 > cut) goto tlb; + if (product == RCAR_PRODUCT_D3) + goto tlb; + /* Disable MFIS write protection */ mmio_write_32(MFISWPCNTR, MFISWPCNTR_PASSWORD | 1); @@ -430,6 +436,10 @@ static void bl2_populate_compatible_string(void *fdt) ret = fdt_setprop_string(fdt, 0, "compatible", "renesas,ebisu"); break; + case BOARD_DRAAK: + ret = fdt_setprop_string(fdt, 0, "compatible", + "renesas,draak"); + break; default: NOTICE("BL2: Cannot set compatible string, board unsupported\n"); panic(); @@ -458,6 +468,10 @@ static void bl2_populate_compatible_string(void *fdt) ret = fdt_appendprop_string(fdt, 0, "compatible", "renesas,r8a77990"); break; + case RCAR_PRODUCT_D3: + ret = fdt_appendprop_string(fdt, 0, "compatible", + "renesas,r8a77995"); + break; default: NOTICE("BL2: Cannot set compatible string, SoC unsupported\n"); panic(); @@ -598,6 +612,11 @@ static void bl2_advertise_dram_size(uint32_t product) dram_config[1] = 0x100000000ULL; #endif /* RCAR_DRAM_DDR3L_MEMCONF == 0 */ break; + + case RCAR_PRODUCT_D3: + /* 512MB */ + dram_config[1] = 0x20000000ULL; + break; } bl2_advertise_dram_entries(dram_config); @@ -617,6 +636,7 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2, const char *product_h3 = "H3"; const char *product_m3 = "M3"; const char *product_e3 = "E3"; + const char *product_d3 = "D3"; const char *lcs_secure = "SE"; const char *lcs_cm = "CM"; const char *lcs_dm = "DM"; @@ -629,7 +649,7 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2, const char *boot_qspi80 = "QSPI Flash(80MHz)"; const char *boot_emmc25x1 = "eMMC(25MHz x1)"; const char *boot_emmc50x8 = "eMMC(50MHz x8)"; -#if RCAR_LSI == RCAR_E3 +#if (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) const char *boot_hyper160 = "HyperFlash(150MHz)"; #else const char *boot_hyper160 = "HyperFlash(160MHz)"; @@ -696,6 +716,9 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2, case RCAR_PRODUCT_E3: str = product_e3; break; + case RCAR_PRODUCT_D3: + str = product_d3; + break; default: str = unknown; break; @@ -736,6 +759,7 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2, case BOARD_EBISU: case BOARD_STARTER_KIT_PRE: case BOARD_EBISU_4D: + case BOARD_DRAAK: break; default: type = BOARD_UNKNOWN; @@ -774,9 +798,17 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2, str = boot_qspi80; break; case MODEMR_BOOT_DEV_EMMC_25X1: +#if RCAR_LSI == RCAR_D3 + ERROR("BL2: Failed to Initialize. eMMC is not supported.\n"); + panic(); +#endif str = boot_emmc25x1; break; case MODEMR_BOOT_DEV_EMMC_50X8: +#if RCAR_LSI == RCAR_D3 + ERROR("BL2: Failed to Initialize. eMMC is not supported.\n"); + panic(); +#endif str = boot_emmc50x8; break; default: @@ -940,7 +972,9 @@ void bl2_platform_setup(void) static void bl2_init_generic_timer(void) { -#if RCAR_LSI == RCAR_E3 +#if RCAR_LSI == RCAR_D3 + uint32_t reg_cntfid = EXTAL_DRAAK; +#elif RCAR_LSI == RCAR_E3 uint32_t reg_cntfid = EXTAL_EBISU; #else /* RCAR_LSI == RCAR_E3 */ uint32_t reg; |