mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00

This fix is to flush and invalidate the caches before cold reset. Issue happen where Agilex5 hardware does not support the caches flush. Thus software workaround is needed. Change-Id: Ibfeecbc611d238a069ca72f8b833f319e794cd38 Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
/*
|
|
* Copyright (c) 2019-2023, Intel Corporation. All rights reserved.
|
|
* Copyright (c) 2024, Altera Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef SOCFPGA_PRIVATE_H
|
|
#define SOCFPGA_PRIVATE_H
|
|
|
|
|
|
#define EMMC_DESC_SIZE (1<<20)
|
|
|
|
#define EMMC_INIT_PARAMS(base, clk) \
|
|
{ .bus_width = MMC_BUS_WIDTH_4, \
|
|
.clk_rate = (clk), \
|
|
.desc_base = (base), \
|
|
.desc_size = EMMC_DESC_SIZE, \
|
|
.flags = 0, \
|
|
.reg_base = SOCFPGA_MMC_REG_BASE \
|
|
}
|
|
|
|
typedef enum {
|
|
BOOT_SOURCE_FPGA = 0,
|
|
BOOT_SOURCE_SDMMC,
|
|
BOOT_SOURCE_NAND,
|
|
BOOT_SOURCE_RSVD,
|
|
BOOT_SOURCE_QSPI
|
|
} boot_source_type;
|
|
|
|
/*******************************************************************************
|
|
* Function and variable prototypes
|
|
******************************************************************************/
|
|
|
|
void enable_nonsecure_access(void);
|
|
|
|
void socfpga_io_setup(int boot_source, unsigned long offset);
|
|
|
|
void socfgpa_configure_mmu_el3(unsigned long total_base,
|
|
unsigned long total_size,
|
|
unsigned long ro_start,
|
|
unsigned long ro_limit,
|
|
unsigned long coh_start,
|
|
unsigned long coh_limit);
|
|
|
|
|
|
void socfpga_configure_mmu_el1(unsigned long total_base,
|
|
unsigned long total_size,
|
|
unsigned long ro_start,
|
|
unsigned long ro_limit,
|
|
unsigned long coh_start,
|
|
unsigned long coh_limit);
|
|
|
|
void socfpga_delay_timer_init(void);
|
|
|
|
void socfpga_gic_driver_init(void);
|
|
|
|
void socfpga_delay_timer_init_args(void);
|
|
|
|
uint32_t socfpga_get_spsr_for_bl32_entry(void);
|
|
|
|
uint32_t socfpga_get_spsr_for_bl33_entry(void);
|
|
|
|
unsigned long socfpga_get_ns_image_entrypoint(void);
|
|
|
|
void plat_secondary_cpus_bl31_entry(void);
|
|
|
|
void invalidate_cache_low_el(void);
|
|
|
|
#endif /* SOCFPGA_PRIVATE_H */
|