xref: /rk3399_ARM-atf/plat/qti/common/inc/qti_plat.h (revision 5bd9c17d023288e6b819fa3eecc01b7981399cfa)
1*5bd9c17dSSaurabh Gorecha /*
2*5bd9c17dSSaurabh Gorecha  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*5bd9c17dSSaurabh Gorecha  * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
4*5bd9c17dSSaurabh Gorecha  *
5*5bd9c17dSSaurabh Gorecha  * SPDX-License-Identifier: BSD-3-Clause
6*5bd9c17dSSaurabh Gorecha  */
7*5bd9c17dSSaurabh Gorecha 
8*5bd9c17dSSaurabh Gorecha #ifndef QTI_PLAT_H
9*5bd9c17dSSaurabh Gorecha #define QTI_PLAT_H
10*5bd9c17dSSaurabh Gorecha 
11*5bd9c17dSSaurabh Gorecha #include <stdint.h>
12*5bd9c17dSSaurabh Gorecha 
13*5bd9c17dSSaurabh Gorecha #include <common/bl_common.h>
14*5bd9c17dSSaurabh Gorecha #include <lib/cassert.h>
15*5bd9c17dSSaurabh Gorecha #include <lib/el3_runtime/cpu_data.h>
16*5bd9c17dSSaurabh Gorecha #include <lib/xlat_tables/xlat_tables_v2.h>
17*5bd9c17dSSaurabh Gorecha 
18*5bd9c17dSSaurabh Gorecha /*
19*5bd9c17dSSaurabh Gorecha  * Utility functions common to QTI platforms
20*5bd9c17dSSaurabh Gorecha  */
21*5bd9c17dSSaurabh Gorecha int qti_mmap_add_dynamic_region(uintptr_t base_pa, size_t size,
22*5bd9c17dSSaurabh Gorecha 				unsigned int attr);
23*5bd9c17dSSaurabh Gorecha int qti_mmap_remove_dynamic_region(uintptr_t base_va, size_t size);
24*5bd9c17dSSaurabh Gorecha 
25*5bd9c17dSSaurabh Gorecha /*
26*5bd9c17dSSaurabh Gorecha  * Utility functions common to ARM standard platforms
27*5bd9c17dSSaurabh Gorecha  */
28*5bd9c17dSSaurabh Gorecha void qti_setup_page_tables(uintptr_t total_base,
29*5bd9c17dSSaurabh Gorecha 			   size_t total_size,
30*5bd9c17dSSaurabh Gorecha 			   uintptr_t code_start,
31*5bd9c17dSSaurabh Gorecha 			   uintptr_t code_limit,
32*5bd9c17dSSaurabh Gorecha 			   uintptr_t rodata_start,
33*5bd9c17dSSaurabh Gorecha 			   uintptr_t rodata_limit,
34*5bd9c17dSSaurabh Gorecha 			   uintptr_t coh_start, uintptr_t coh_limit);
35*5bd9c17dSSaurabh Gorecha 
36*5bd9c17dSSaurabh Gorecha /*
37*5bd9c17dSSaurabh Gorecha  * Mandatory functions required in ARM standard platforms
38*5bd9c17dSSaurabh Gorecha  */
39*5bd9c17dSSaurabh Gorecha void plat_qti_gic_driver_init(void);
40*5bd9c17dSSaurabh Gorecha void plat_qti_gic_init(void);
41*5bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_enable(void);
42*5bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_disable(void);
43*5bd9c17dSSaurabh Gorecha void plat_qti_gic_pcpu_init(void);
44*5bd9c17dSSaurabh Gorecha 
45*5bd9c17dSSaurabh Gorecha /*
46*5bd9c17dSSaurabh Gorecha  * Optional functions required in ARM standard platforms
47*5bd9c17dSSaurabh Gorecha  */
48*5bd9c17dSSaurabh Gorecha unsigned int plat_qti_core_pos_by_mpidr(u_register_t mpidr);
49*5bd9c17dSSaurabh Gorecha unsigned int plat_qti_my_cluster_pos(void);
50*5bd9c17dSSaurabh Gorecha 
51*5bd9c17dSSaurabh Gorecha void gic_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr);
52*5bd9c17dSSaurabh Gorecha 
53*5bd9c17dSSaurabh Gorecha #endif /* QTI_PLAT_H */
54