GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2020, Broadcom
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef BCM_CONSOLE_H
|
||||
#define BCM_CONSOLE_H
|
||||
|
||||
void bcm_console_boot_init(void);
|
||||
void bcm_console_boot_end(void);
|
||||
void bcm_console_runtime_init(void);
|
||||
void bcm_console_runtime_end(void);
|
||||
|
||||
#endif /* BCM_CONSOLE_H */
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2018 - 2020, Broadcom
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef BCM_ELOG_H
|
||||
#define BCM_ELOG_H
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(BCM_ELOG) && (defined(IMAGE_BL2) || defined(IMAGE_BL31))
|
||||
int bcm_elog_init(void *base, uint32_t size, unsigned int level);
|
||||
void bcm_elog_exit(void);
|
||||
int bcm_elog_copy_log(void *dst, uint32_t max_size);
|
||||
void bcm_elog(const char *fmt, ...);
|
||||
#else
|
||||
static inline int bcm_elog_init(void *base, uint32_t size,
|
||||
unsigned int level)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void bcm_elog_exit(void)
|
||||
{
|
||||
}
|
||||
static inline int bcm_elog_copy_log(void *dst, uint32_t max_size)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void bcm_elog(const char *fmt, ...)
|
||||
{
|
||||
}
|
||||
#endif /* BCM_ELOG */
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
#endif /* BCM_ELOG_H */
|
||||
@@ -0,0 +1,153 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - 2020, Broadcom
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef BRCM_DEF_H
|
||||
#define BRCM_DEF_H
|
||||
|
||||
#include <arch.h>
|
||||
#include <common/tbbr/tbbr_img_def.h>
|
||||
#include <lib/utils_def.h>
|
||||
#include <lib/xlat_tables/xlat_tables.h>
|
||||
#include <plat/common/common_def.h>
|
||||
|
||||
#include <platform_def.h>
|
||||
|
||||
#define PLAT_PHY_ADDR_SPACE_SIZE BIT_64(32)
|
||||
#define PLAT_VIRT_ADDR_SPACE_SIZE BIT_64(32)
|
||||
|
||||
#define BL11_DAUTH_ID 0x796C51ab
|
||||
#define BL11_DAUTH_BASE BL11_RW_BASE
|
||||
|
||||
/* We keep a table at the end of ROM for function pointers */
|
||||
#define ROM_TABLE_SIZE 32
|
||||
#define BL1_ROM_TABLE (BL1_RO_LIMIT - ROM_TABLE_SIZE)
|
||||
|
||||
/*
|
||||
* The top 16MB of DRAM1 is configured as secure access only using the TZC
|
||||
* - SCP TZC DRAM: If present, DRAM reserved for SCP use
|
||||
* - AP TZC DRAM: The remaining TZC secured DRAM reserved for AP use
|
||||
*/
|
||||
#define BRCM_TZC_DRAM1_SIZE ULL(0x01000000)
|
||||
|
||||
#define BRCM_SCP_TZC_DRAM1_BASE (BRCM_DRAM1_BASE + \
|
||||
BRCM_DRAM1_SIZE - \
|
||||
BRCM_SCP_TZC_DRAM1_SIZE)
|
||||
#define BRCM_SCP_TZC_DRAM1_SIZE PLAT_BRCM_SCP_TZC_DRAM1_SIZE
|
||||
|
||||
#define BRCM_AP_TZC_DRAM1_BASE (BRCM_DRAM1_BASE + \
|
||||
BRCM_DRAM1_SIZE - \
|
||||
BRCM_TZC_DRAM1_SIZE)
|
||||
#define BRCM_AP_TZC_DRAM1_SIZE (BRCM_TZC_DRAM1_SIZE - \
|
||||
BRCM_SCP_TZC_DRAM1_SIZE)
|
||||
|
||||
#define BRCM_NS_DRAM1_BASE BRCM_DRAM1_BASE
|
||||
#define BRCM_NS_DRAM1_SIZE (BRCM_DRAM1_SIZE - \
|
||||
BRCM_TZC_DRAM1_SIZE)
|
||||
|
||||
#ifdef BRCM_SHARED_DRAM_BASE
|
||||
#define BRCM_NS_SHARED_DRAM_BASE BRCM_SHARED_DRAM_BASE
|
||||
#define BRCM_NS_SHARED_DRAM_SIZE BRCM_SHARED_DRAM_SIZE
|
||||
#endif
|
||||
|
||||
#define BRCM_MAP_SHARED_RAM MAP_REGION_FLAT( \
|
||||
BRCM_SHARED_RAM_BASE, \
|
||||
BRCM_SHARED_RAM_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
|
||||
#define BRCM_MAP_NS_DRAM1 MAP_REGION_FLAT( \
|
||||
BRCM_NS_DRAM1_BASE, \
|
||||
BRCM_NS_DRAM1_SIZE, \
|
||||
MT_MEMORY | MT_RW | MT_NS)
|
||||
|
||||
#ifdef BRCM_SHARED_DRAM_BASE
|
||||
#define BRCM_MAP_NS_SHARED_DRAM MAP_REGION_FLAT( \
|
||||
BRCM_NS_SHARED_DRAM_BASE, \
|
||||
BRCM_NS_SHARED_DRAM_SIZE, \
|
||||
MT_MEMORY | MT_RW | MT_NS)
|
||||
#endif
|
||||
|
||||
#ifdef BRCM_EXT_SRAM_BASE
|
||||
#define BRCM_MAP_EXT_SRAM MAP_REGION_FLAT( \
|
||||
BRCM_EXT_SRAM_BASE, \
|
||||
BRCM_EXT_SRAM_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
|
||||
#define BRCM_MAP_NAND_RO MAP_REGION_FLAT(NAND_BASE_ADDR,\
|
||||
NAND_SIZE, \
|
||||
MT_MEMORY | MT_RO | MT_SECURE)
|
||||
|
||||
#define BRCM_MAP_QSPI_RO MAP_REGION_FLAT(QSPI_BASE_ADDR,\
|
||||
QSPI_SIZE, \
|
||||
MT_MEMORY | MT_RO | MT_SECURE)
|
||||
|
||||
#define HSLS_REGION MAP_REGION_FLAT(HSLS_BASE_ADDR, \
|
||||
HSLS_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
|
||||
#define CCN_REGION MAP_REGION_FLAT(PLAT_BRCM_CCN_BASE, \
|
||||
CCN_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
|
||||
#define GIC500_REGION MAP_REGION_FLAT(GIC500_BASE, \
|
||||
GIC500_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#ifdef PERIPH0_BASE
|
||||
#define PERIPH0_REGION MAP_REGION_FLAT(PERIPH0_BASE, \
|
||||
PERIPH0_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
|
||||
#ifdef PERIPH1_BASE
|
||||
#define PERIPH1_REGION MAP_REGION_FLAT(PERIPH1_BASE, \
|
||||
PERIPH1_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
|
||||
#ifdef PERIPH2_BASE
|
||||
#define PERIPH2_REGION MAP_REGION_FLAT(PERIPH2_BASE, \
|
||||
PERIPH2_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
|
||||
#if BRCM_BL31_IN_DRAM
|
||||
#if IMAGE_BL2
|
||||
#define BRCM_MAP_BL31_SEC_DRAM MAP_REGION_FLAT( \
|
||||
BL31_BASE, \
|
||||
PLAT_BRCM_MAX_BL31_SIZE,\
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#else
|
||||
#define BRCM_MAP_BL31_SEC_DRAM MAP_REGION_FLAT( \
|
||||
BL31_BASE, \
|
||||
PLAT_BRCM_MAX_BL31_SIZE,\
|
||||
MT_MEMORY | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(USB_BASE) && defined(DRIVER_USB_ENABLE)
|
||||
#define USB_REGION MAP_REGION_FLAT( \
|
||||
USB_BASE, \
|
||||
USB_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
|
||||
#ifdef USE_CRMU_SRAM
|
||||
#define CRMU_SRAM_REGION MAP_REGION_FLAT( \
|
||||
CRMU_SRAM_BASE, \
|
||||
CRMU_SRAM_SIZE, \
|
||||
MT_DEVICE | MT_RW | MT_SECURE)
|
||||
#endif
|
||||
/*
|
||||
* The number of regions like RO(code), coherent and data required by
|
||||
* different BL stages which need to be mapped in the MMU.
|
||||
*/
|
||||
#if USE_COHERENT_MEM
|
||||
#define BRCM_BL_REGIONS 3
|
||||
#else
|
||||
#define BRCM_BL_REGIONS 2
|
||||
#endif
|
||||
|
||||
#endif /* BRCM_DEF_H */
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2019-2020, Broadcom
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PLAT_BRCM_H
|
||||
#define PLAT_BRCM_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <lib/cassert.h>
|
||||
#include <lib/utils_def.h>
|
||||
#include <lib/xlat_tables/xlat_tables.h>
|
||||
|
||||
#include <platform_def.h>
|
||||
|
||||
struct image_info;
|
||||
|
||||
/* Global variables */
|
||||
extern const mmap_region_t plat_brcm_mmap[];
|
||||
|
||||
uint32_t brcm_get_spsr_for_bl32_entry(void);
|
||||
uint32_t brcm_get_spsr_for_bl33_entry(void);
|
||||
const mmap_region_t *plat_brcm_get_mmap(void);
|
||||
int bcm_bl2_handle_scp_bl2(struct image_info *image_info);
|
||||
unsigned int plat_brcm_calc_core_pos(u_register_t mpidr);
|
||||
void plat_brcm_gic_driver_init(void);
|
||||
void plat_brcm_gic_init(void);
|
||||
void plat_brcm_gic_cpuif_enable(void);
|
||||
void plat_brcm_gic_cpuif_disable(void);
|
||||
void plat_brcm_gic_pcpu_init(void);
|
||||
void plat_brcm_gic_redistif_on(void);
|
||||
void plat_brcm_gic_redistif_off(void);
|
||||
void plat_brcm_interconnect_init(void);
|
||||
void plat_brcm_interconnect_enter_coherency(void);
|
||||
void plat_brcm_interconnect_exit_coherency(void);
|
||||
void plat_brcm_io_setup(void);
|
||||
void plat_brcm_process_flags(uint16_t plat_toc_flags);
|
||||
|
||||
#endif /* PLAT_BRCM_H */
|
||||
Reference in New Issue
Block a user