1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2015 - 2020, Broadcom 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef CMN_PLAT_DEF_H 8*91f16700Schasinglulu #define CMN_PLAT_DEF_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <bcm_elog.h> 11*91f16700Schasinglulu #include <platform_def.h> 12*91f16700Schasinglulu 13*91f16700Schasinglulu #ifndef GET_LOG_LEVEL 14*91f16700Schasinglulu #define GET_LOG_LEVEL() LOG_LEVEL 15*91f16700Schasinglulu #endif 16*91f16700Schasinglulu 17*91f16700Schasinglulu #ifndef SET_LOG_LEVEL 18*91f16700Schasinglulu #define SET_LOG_LEVEL(x) ((void)(x)) 19*91f16700Schasinglulu #endif 20*91f16700Schasinglulu 21*91f16700Schasinglulu #define PLAT_LOG_NOTICE(...) \ 22*91f16700Schasinglulu do { \ 23*91f16700Schasinglulu if (GET_LOG_LEVEL() >= LOG_LEVEL_NOTICE) { \ 24*91f16700Schasinglulu bcm_elog(LOG_MARKER_NOTICE __VA_ARGS__); \ 25*91f16700Schasinglulu tf_log(LOG_MARKER_NOTICE __VA_ARGS__); \ 26*91f16700Schasinglulu } \ 27*91f16700Schasinglulu } while (0) 28*91f16700Schasinglulu 29*91f16700Schasinglulu #define PLAT_LOG_ERROR(...) \ 30*91f16700Schasinglulu do { \ 31*91f16700Schasinglulu if (GET_LOG_LEVEL() >= LOG_LEVEL_ERROR) { \ 32*91f16700Schasinglulu bcm_elog(LOG_MARKER_ERROR, __VA_ARGS__); \ 33*91f16700Schasinglulu tf_log(LOG_MARKER_ERROR __VA_ARGS__); \ 34*91f16700Schasinglulu } \ 35*91f16700Schasinglulu } while (0) 36*91f16700Schasinglulu 37*91f16700Schasinglulu #define PLAT_LOG_WARN(...) \ 38*91f16700Schasinglulu do { \ 39*91f16700Schasinglulu if (GET_LOG_LEVEL() >= LOG_LEVEL_WARNING) { \ 40*91f16700Schasinglulu bcm_elog(LOG_MARKER_WARNING, __VA_ARGS__);\ 41*91f16700Schasinglulu tf_log(LOG_MARKER_WARNING __VA_ARGS__); \ 42*91f16700Schasinglulu } \ 43*91f16700Schasinglulu } while (0) 44*91f16700Schasinglulu 45*91f16700Schasinglulu #define PLAT_LOG_INFO(...) \ 46*91f16700Schasinglulu do { \ 47*91f16700Schasinglulu if (GET_LOG_LEVEL() >= LOG_LEVEL_INFO) { \ 48*91f16700Schasinglulu bcm_elog(LOG_MARKER_INFO __VA_ARGS__); \ 49*91f16700Schasinglulu tf_log(LOG_MARKER_INFO __VA_ARGS__); \ 50*91f16700Schasinglulu } \ 51*91f16700Schasinglulu } while (0) 52*91f16700Schasinglulu 53*91f16700Schasinglulu #define PLAT_LOG_VERBOSE(...) \ 54*91f16700Schasinglulu do { \ 55*91f16700Schasinglulu if (GET_LOG_LEVEL() >= LOG_LEVEL_VERBOSE) { \ 56*91f16700Schasinglulu bcm_elog(LOG_MARKER_VERBOSE __VA_ARGS__);\ 57*91f16700Schasinglulu tf_log(LOG_MARKER_VERBOSE __VA_ARGS__); \ 58*91f16700Schasinglulu } \ 59*91f16700Schasinglulu } while (0) 60*91f16700Schasinglulu 61*91f16700Schasinglulu /* 62*91f16700Schasinglulu * The number of regions like RO(code), coherent and data required by 63*91f16700Schasinglulu * different BL stages which need to be mapped in the MMU. 64*91f16700Schasinglulu */ 65*91f16700Schasinglulu #if USE_COHERENT_MEM 66*91f16700Schasinglulu #define CMN_BL_REGIONS 3 67*91f16700Schasinglulu #else 68*91f16700Schasinglulu #define CMN_BL_REGIONS 2 69*91f16700Schasinglulu #endif 70*91f16700Schasinglulu 71*91f16700Schasinglulu /* 72*91f16700Schasinglulu * FIP definitions 73*91f16700Schasinglulu */ 74*91f16700Schasinglulu #define PLAT_FIP_ATTEMPT_OFFSET 0x20000 75*91f16700Schasinglulu #define PLAT_FIP_NUM_ATTEMPTS 128 76*91f16700Schasinglulu 77*91f16700Schasinglulu #define PLAT_BRCM_FIP_QSPI_BASE QSPI_BASE_ADDR 78*91f16700Schasinglulu #define PLAT_BRCM_FIP_NAND_BASE NAND_BASE_ADDR 79*91f16700Schasinglulu #define PLAT_BRCM_FIP_MAX_SIZE 0x01000000 80*91f16700Schasinglulu 81*91f16700Schasinglulu #define PLAT_BRCM_FIP_BASE PLAT_BRCM_FIP_QSPI_BASE 82*91f16700Schasinglulu #endif 83