diff options
author | Biju Das <biju.das.jz@bp.renesas.com> | 2020-12-16 10:56:03 +0000 |
---|---|---|
committer | Biju Das <biju.das.jz@bp.renesas.com> | 2021-01-13 13:03:48 +0000 |
commit | e17997dfd6e615c99a2176d9bcaf7a73c6f618cd (patch) | |
tree | 69d3f428fc9aa4e3b22f32407bfc222d3f7f30ce /drivers/renesas/rcar | |
parent | cdcf1f1492dd05b8f9038e1bbdd091e93c153a3c (diff) | |
download | trusted-firmware-a-e17997dfd6e615c99a2176d9bcaf7a73c6f618cd.tar.gz |
drivers: renesas: rom: Move to common
Move rom driver 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: I399dfb5eff186db76d26fa9c54bea88bee66789c
Diffstat (limited to 'drivers/renesas/rcar')
-rw-r--r-- | drivers/renesas/rcar/rom/rom_api.c | 106 | ||||
-rw-r--r-- | drivers/renesas/rcar/rom/rom_api.h | 31 |
2 files changed, 0 insertions, 137 deletions
diff --git a/drivers/renesas/rcar/rom/rom_api.c b/drivers/renesas/rcar/rom/rom_api.c deleted file mode 100644 index fda28150e9..0000000000 --- a/drivers/renesas/rcar/rom/rom_api.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2015-2019, Renesas Electronics Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#include <stdint.h> - -#include <lib/mmio.h> - -#include "rcar_def.h" -#include "rom_api.h" - -typedef uint32_t(*rom_secure_boot_api_f) (uint32_t *key, uint32_t *cert, - rom_read_flash_f pFuncReadFlash); - -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, D3, V3M WS2.0 */ -#define NEW_API_TABLE2 (4U) /* V3M WS1.0 */ -#define API_TABLE_MAX (5U) /* table max */ - /* Later than H3 Ver.2.0 */ - -static uint32_t get_table_index(void) -{ - uint32_t product; - uint32_t cut_ver; - uint32_t index; - - product = mmio_read_32(RCAR_PRR) & PRR_PRODUCT_MASK; - cut_ver = mmio_read_32(RCAR_PRR) & PRR_CUT_MASK; - - switch (product) { - case PRR_PRODUCT_H3: - if (cut_ver == PRR_PRODUCT_10) - index = OLD_API_TABLE1; - else if (cut_ver == PRR_PRODUCT_11) - index = OLD_API_TABLE1; - else if (cut_ver == PRR_PRODUCT_20) - index = OLD_API_TABLE2; - else - /* Later than H3 Ver.2.0 */ - index = NEW_API_TABLE; - break; - case PRR_PRODUCT_M3: - if (cut_ver == PRR_PRODUCT_10) - index = OLD_API_TABLE3; - else - /* M3 Ver.1.1 or later */ - index = NEW_API_TABLE; - break; - case PRR_PRODUCT_V3M: - if (cut_ver == PRR_PRODUCT_10) - /* V3M WS1.0 */ - index = NEW_API_TABLE2; - else - /* V3M WS2.0 or later */ - index = NEW_API_TABLE; - break; - default: - index = NEW_API_TABLE; - break; - } - - return index; -} - -uint32_t rcar_rom_secure_boot_api(uint32_t *key, uint32_t *cert, - rom_read_flash_f read_flash) -{ - static const uintptr_t rom_api_table[API_TABLE_MAX] = { - 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, D3, V3M WS2.0 */ - 0xEB110128U, /* V3M WS1.0 */ - }; - rom_secure_boot_api_f secure_boot; - uint32_t index; - - index = get_table_index(); - secure_boot = (rom_secure_boot_api_f) rom_api_table[index]; - - return secure_boot(key, cert, read_flash); -} - -uint32_t rcar_rom_get_lcs(uint32_t *lcs) -{ - static const uintptr_t rom_get_lcs_table[API_TABLE_MAX] = { - 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, D3, V3M WS2.0 */ - 0xEB1103A4U, /* V3M WS1.0 */ - }; - rom_get_lcs_api_f get_lcs; - uint32_t index; - - index = get_table_index(); - get_lcs = (rom_get_lcs_api_f) rom_get_lcs_table[index]; - - return get_lcs(lcs); -} diff --git a/drivers/renesas/rcar/rom/rom_api.h b/drivers/renesas/rcar/rom/rom_api.h deleted file mode 100644 index 1d5b03d7f5..0000000000 --- a/drivers/renesas/rcar/rom/rom_api.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2015-2017, Renesas Electronics Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef ROM_API_H -#define ROM_API_H - -#include <stdint.h> - -#define SBROM_OK (0x00000000U) -#define SBROM_ILLEGAL_INPUT_PARAM_ERR (0x0B000001U) -#define SBROM_ILLEGAL_OEM_HASH_VALUE_ERR (0x0B000008U) -#define SBROM_ILLEGAL_LCS_FOR_OPERATION_ERR (0x0B000010U) -#define SBROM_HASH_NOT_PROGRAMMED_ERR (0x0B000100U) -#define SBROM_PUB_KEY_HASH_VALIDATION_FAILURE (0xF1000006U) -#define SBROM_RSA_SIG_VERIFICATION_FAILED (0xF1000007U) - -#define LCS_CM (0x0U) -#define LCS_DM (0x1U) -#define LCS_SD (0x3U) -#define LCS_SE (0x5U) -#define LCS_FA (0x7U) - -typedef uint32_t(*rom_read_flash_f) (uint64_t src, uint8_t *dst, uint32_t len); -uint32_t rcar_rom_secure_boot_api(uint32_t *key, uint32_t *cert, - rom_read_flash_f f); -uint32_t rcar_rom_get_lcs(uint32_t *lcs); - -#endif /* ROM_API_H */ |