diff options
author | Antonio Niño Díaz <antonio.ninodiaz@arm.com> | 2019-04-02 14:16:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-02 14:16:27 +0100 |
commit | 0a4bf763f3e5b2f67b0d5798a40fb9d0caefd554 (patch) | |
tree | 53564c0729ec914690ea5fcdce2d119fb9566464 /drivers/renesas/rcar | |
parent | 18ff0b61bb205e01d2c4dba23f1be5fd1081c6b4 (diff) | |
parent | 15652ec3ff381fc3cb0249908dd29153913918bc (diff) | |
download | trusted-firmware-a-0a4bf763f3e5b2f67b0d5798a40fb9d0caefd554.tar.gz |
Merge pull request #1914 from marex/arm/master/d3draak-v2.0.1
Arm/master/d3draak v2.0.1
Diffstat (limited to 'drivers/renesas/rcar')
-rw-r--r-- | drivers/renesas/rcar/board/board.c | 7 | ||||
-rw-r--r-- | drivers/renesas/rcar/board/board.h | 3 | ||||
-rw-r--r-- | drivers/renesas/rcar/pwrc/pwrc.c | 7 | ||||
-rw-r--r-- | drivers/renesas/rcar/rom/rom_api.c | 6 | ||||
-rw-r--r-- | drivers/renesas/rcar/scif/scif.S | 15 | ||||
-rw-r--r-- | drivers/renesas/rcar/watchdog/swdt.c | 4 |
6 files changed, 34 insertions, 8 deletions
diff --git a/drivers/renesas/rcar/board/board.c b/drivers/renesas/rcar/board/board.c index f15e06bc08..8c4eec24c4 100644 --- a/drivers/renesas/rcar/board/board.c +++ b/drivers/renesas/rcar/board/board.c @@ -14,7 +14,9 @@ #include "board.h" #ifndef BOARD_DEFAULT -#if (RCAR_LSI == RCAR_E3) +#if (RCAR_LSI == RCAR_D3) +#define BOARD_DEFAULT (BOARD_DRAAK << BOARD_CODE_SHIFT) +#elif (RCAR_LSI == RCAR_E3) #define BOARD_DEFAULT (BOARD_EBISU << BOARD_CODE_SHIFT) #else #define BOARD_DEFAULT (BOARD_SALVATOR_X << BOARD_CODE_SHIFT) @@ -32,6 +34,7 @@ #define SK_ID { 0x10U, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU } #define EB4_ID { 0x10U, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU } #define EB_ID { 0x10U, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU } +#define DR_ID { 0x10U, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU } #define KK_ID { 0x10U, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU } const char *g_board_tbl[] = { @@ -42,6 +45,7 @@ const char *g_board_tbl[] = { [BOARD_EBISU_4D] = "Ebisu-4D", [BOARD_KRIEK] = "Kriek", [BOARD_EBISU] = "Ebisu", + [BOARD_DRAAK] = "Draak", [BOARD_UNKNOWN] = "unknown" }; @@ -55,6 +59,7 @@ int32_t rcar_get_board_type(uint32_t *type, uint32_t *rev) [BOARD_SALVATOR_X] = SX_ID, [BOARD_EBISU_4D] = EB4_ID, [BOARD_EBISU] = EB_ID, + [BOARD_DRAAK] = DR_ID, [BOARD_KRIEK] = KK_ID, }; static uint8_t board_id = BOARD_ID_UNKNOWN; diff --git a/drivers/renesas/rcar/board/board.h b/drivers/renesas/rcar/board/board.h index 7bb2a0626b..05c4e8aa14 100644 --- a/drivers/renesas/rcar/board/board.h +++ b/drivers/renesas/rcar/board/board.h @@ -15,7 +15,8 @@ #define BOARD_EBISU (0x08) #define BOARD_STARTER_KIT_PRE (0x0B) #define BOARD_EBISU_4D (0x0DU) -#define BOARD_UNKNOWN (BOARD_EBISU_4D + 1U) +#define BOARD_DRAAK (0x0EU) +#define BOARD_UNKNOWN (BOARD_DRAAK + 1U) #define BOARD_REV_UNKNOWN (0xFF) diff --git a/drivers/renesas/rcar/pwrc/pwrc.c b/drivers/renesas/rcar/pwrc/pwrc.c index d85e4a51b0..8bea1b51d5 100644 --- a/drivers/renesas/rcar/pwrc/pwrc.c +++ b/drivers/renesas/rcar/pwrc/pwrc.c @@ -737,6 +737,12 @@ uint32_t rcar_pwrc_get_mpidr_cluster(uint64_t mpidr) return c; } +#if RCAR_LSI == RCAR_D3 +uint32_t rcar_pwrc_get_cpu_num(uint32_t c) +{ + return 1; +} +#else uint32_t rcar_pwrc_get_cpu_num(uint32_t c) { uint32_t reg = mmio_read_32(RCAR_PRR); @@ -768,6 +774,7 @@ count_ca57: done: return count; } +#endif int32_t rcar_pwrc_cpu_on_check(uint64_t mpidr) { diff --git a/drivers/renesas/rcar/rom/rom_api.c b/drivers/renesas/rcar/rom/rom_api.c index be38fbff3f..6f448a5aa3 100644 --- a/drivers/renesas/rcar/rom/rom_api.c +++ b/drivers/renesas/rcar/rom/rom_api.c @@ -19,7 +19,7 @@ typedef uint32_t(*rom_get_lcs_api_f) (uint32_t *lcs); #define OLD_API_TABLE1 (0U) /* H3 Ver.1.0/Ver.1.1 */ #define OLD_API_TABLE2 (1U) /* H3 Ver.2.0 */ #define OLD_API_TABLE3 (2U) /* M3 Ver.1.0 */ -#define NEW_API_TABLE (3U) /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3 */ +#define NEW_API_TABLE (3U) /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3, D3 */ #define API_TABLE_MAX (4U) /* table max */ /* Later than H3 Ver.2.0 */ @@ -66,7 +66,7 @@ uint32_t rcar_rom_secure_boot_api(uint32_t *key, uint32_t *cert, 0xEB10DD64U, /* H3 Ver.1.0/Ver.1.1 */ 0xEB116ED4U, /* H3 Ver.2.0 */ 0xEB1102FCU, /* M3 Ver.1.0 */ - 0xEB100180U /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3 */ + 0xEB100180U /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3, D3 */ }; rom_secure_boot_api_f secure_boot; uint32_t index; @@ -83,7 +83,7 @@ uint32_t rcar_rom_get_lcs(uint32_t *lcs) 0xEB10DFE0U, /* H3 Ver.1.0/Ver.1.1 */ 0xEB117150U, /* H3 Ver.2.0 */ 0xEB110578U, /* M3 Ver.1.0 */ - 0xEB10018CU /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3 */ + 0xEB10018CU /* H3 Ver.3.0, M3 Ver.1.1 or later, M3N, E3, D3 */ }; rom_get_lcs_api_f get_lcs; uint32_t index; diff --git a/drivers/renesas/rcar/scif/scif.S b/drivers/renesas/rcar/scif/scif.S index 09dc90b8d1..19b32e32b7 100644 --- a/drivers/renesas/rcar/scif/scif.S +++ b/drivers/renesas/rcar/scif/scif.S @@ -17,6 +17,7 @@ #define PRR_CUT_MASK (0x000000FF) #define PRR_PRODUCT_H3_VER_10 (0x00004F00) #define PRR_PRODUCT_E3 (0x00005700) +#define PRR_PRODUCT_D3 (0x00005800) /* module stop */ #define CPG_BASE (0xE6150000) @@ -60,6 +61,7 @@ SCSMR_STOP_1 + \ SCSMR_CKS_DIV1) #define SCBRR_115200BPS (17) +#define SCBRR_115200BPSON (16) #define SCBRR_115200BPS_E3_SSCG (15) #define SCBRR_230400BPS (8) @@ -192,22 +194,29 @@ func console_core_init cmp w1, w2 beq 3f and w1, w1, #PRR_PRODUCT_MASK + mov w2, #PRR_PRODUCT_D3 + cmp w1, w2 + beq 4f + and w1, w1, #PRR_PRODUCT_MASK mov w2, #PRR_PRODUCT_E3 cmp w1, w2 - bne 4f + bne 5f ldr x1, =RST_MODEMR ldr w1, [x1] and w1, w1, #MODEMR_MD12 mov w2, #MODEMR_MD12 cmp w1, w2 - bne 4f + bne 5f mov w1, #SCBRR_115200BPS_E3_SSCG b 2f -4: +5: mov w1, #SCBRR_115200BPS b 2f +4: + mov w1, #SCBRR_115200BPSON + b 2f 3: mov w1, #SCBRR_230400BPS 2: diff --git a/drivers/renesas/rcar/watchdog/swdt.c b/drivers/renesas/rcar/watchdog/swdt.c index 7793ae5009..8b2943cc64 100644 --- a/drivers/renesas/rcar/watchdog/swdt.c +++ b/drivers/renesas/rcar/watchdog/swdt.c @@ -49,7 +49,11 @@ extern void gicd_set_icenabler(uintptr_t base, unsigned int id); #define WTCSRA_INIT_DATA (WTCSRA_UPPER_BYTE + 0x0FU) #define WTCSRB_INIT_DATA (WTCSRB_UPPER_BYTE + 0x21U) +#if RCAR_LSI == RCAR_D3 +#define WTCNT_COUNT_8p13k (0x10000U - 40760U) +#else #define WTCNT_COUNT_8p13k (0x10000U - 40687U) +#endif #define WTCNT_COUNT_8p13k_H3VER10 (0x10000U - 20343U) #define WTCNT_COUNT_8p22k (0x10000U - 41115U) #define WTCNT_COUNT_7p81k (0x10000U - 39062U) |