GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)

This commit is contained in:
lai
2026-09-06 03:52:57 +08:00
commit b1928b41c0
21813 changed files with 4413081 additions and 0 deletions
@@ -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 */