xref: /rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_private.h (revision 6cbe2c5d19c4af0ba6bbba049962bf55454da8bb)
13f7b1490SHadi Asyrafi /*
2f65bdf3aSBenjaminLimJL  * Copyright (c) 2019-2022, Intel Corporation. All rights reserved.
33f7b1490SHadi Asyrafi  *
43f7b1490SHadi Asyrafi  * SPDX-License-Identifier: BSD-3-Clause
53f7b1490SHadi Asyrafi  */
63f7b1490SHadi Asyrafi 
7e9b5e360SHadi Asyrafi #ifndef SOCFPGA_PRIVATE_H
8e9b5e360SHadi Asyrafi #define SOCFPGA_PRIVATE_H
9e9b5e360SHadi Asyrafi 
10e9b5e360SHadi Asyrafi 
11e9b5e360SHadi Asyrafi #define EMMC_DESC_SIZE		(1<<20)
12e9b5e360SHadi Asyrafi 
13e9b5e360SHadi Asyrafi #define EMMC_INIT_PARAMS(base, clk)			\
14e9b5e360SHadi Asyrafi 	{	.bus_width = MMC_BUS_WIDTH_4,		\
15e9b5e360SHadi Asyrafi 		.clk_rate = (clk),			\
16e9b5e360SHadi Asyrafi 		.desc_base = (base),			\
17e9b5e360SHadi Asyrafi 		.desc_size = EMMC_DESC_SIZE,		\
18e9b5e360SHadi Asyrafi 		.flags = 0,				\
19e9b5e360SHadi Asyrafi 		.reg_base = SOCFPGA_MMC_REG_BASE	\
20e9b5e360SHadi Asyrafi 	}
21e9b5e360SHadi Asyrafi 
22e9b5e360SHadi Asyrafi typedef enum {
23e9b5e360SHadi Asyrafi 	BOOT_SOURCE_FPGA = 0,
24e9b5e360SHadi Asyrafi 	BOOT_SOURCE_SDMMC,
25e9b5e360SHadi Asyrafi 	BOOT_SOURCE_NAND,
26e9b5e360SHadi Asyrafi 	BOOT_SOURCE_RSVD,
27e9b5e360SHadi Asyrafi 	BOOT_SOURCE_QSPI
28e9b5e360SHadi Asyrafi } boot_source_type;
293f7b1490SHadi Asyrafi 
303f7b1490SHadi Asyrafi /*******************************************************************************
313f7b1490SHadi Asyrafi  * Function and variable prototypes
323f7b1490SHadi Asyrafi  ******************************************************************************/
33e9b5e360SHadi Asyrafi 
34e9b5e360SHadi Asyrafi void enable_nonsecure_access(void);
35e9b5e360SHadi Asyrafi 
36*6cbe2c5dSMahesh Rao void socfpga_io_setup(int boot_source, unsigned long offset);
37e9b5e360SHadi Asyrafi 
383f7b1490SHadi Asyrafi void socfgpa_configure_mmu_el3(unsigned long total_base,
393f7b1490SHadi Asyrafi 			unsigned long total_size,
403f7b1490SHadi Asyrafi 			unsigned long ro_start,
413f7b1490SHadi Asyrafi 			unsigned long ro_limit,
423f7b1490SHadi Asyrafi 			unsigned long coh_start,
433f7b1490SHadi Asyrafi 			unsigned long coh_limit);
443f7b1490SHadi Asyrafi 
453f7b1490SHadi Asyrafi 
463f7b1490SHadi Asyrafi void socfpga_configure_mmu_el1(unsigned long total_base,
473f7b1490SHadi Asyrafi 			unsigned long total_size,
483f7b1490SHadi Asyrafi 			unsigned long ro_start,
493f7b1490SHadi Asyrafi 			unsigned long ro_limit,
503f7b1490SHadi Asyrafi 			unsigned long coh_start,
513f7b1490SHadi Asyrafi 			unsigned long coh_limit);
523f7b1490SHadi Asyrafi 
533f7b1490SHadi Asyrafi void socfpga_delay_timer_init(void);
543f7b1490SHadi Asyrafi 
553f7b1490SHadi Asyrafi void socfpga_gic_driver_init(void);
563f7b1490SHadi Asyrafi 
57f65bdf3aSBenjaminLimJL void socfpga_delay_timer_init_args(void);
58f65bdf3aSBenjaminLimJL 
593f7b1490SHadi Asyrafi uint32_t socfpga_get_spsr_for_bl32_entry(void);
603f7b1490SHadi Asyrafi 
613f7b1490SHadi Asyrafi uint32_t socfpga_get_spsr_for_bl33_entry(void);
623f7b1490SHadi Asyrafi 
633f7b1490SHadi Asyrafi unsigned long socfpga_get_ns_image_entrypoint(void);
643f7b1490SHadi Asyrafi 
652db1e766SHadi Asyrafi void plat_secondary_cpus_bl31_entry(void);
663f7b1490SHadi Asyrafi 
67e9b5e360SHadi Asyrafi #endif /* SOCFPGA_PRIVATE_H */
68