xref: /arm-trusted-firmware/plat/rpi/common/include/rpi_shared.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef RPI_SHARED_H
8*91f16700Schasinglulu #define RPI_SHARED_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stdint.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu /*******************************************************************************
13*91f16700Schasinglulu  * Function and variable prototypes
14*91f16700Schasinglulu  ******************************************************************************/
15*91f16700Schasinglulu 
16*91f16700Schasinglulu /* Utility functions */
17*91f16700Schasinglulu void rpi3_console_init(void);
18*91f16700Schasinglulu void rpi3_setup_page_tables(uintptr_t total_base, size_t total_size,
19*91f16700Schasinglulu 			    uintptr_t code_start, uintptr_t code_limit,
20*91f16700Schasinglulu 			    uintptr_t rodata_start, uintptr_t rodata_limit
21*91f16700Schasinglulu #if USE_COHERENT_MEM
22*91f16700Schasinglulu 			    , uintptr_t coh_start, uintptr_t coh_limit
23*91f16700Schasinglulu #endif
24*91f16700Schasinglulu 			    );
25*91f16700Schasinglulu 
26*91f16700Schasinglulu /* Optional functions required in the Raspberry Pi 3 port */
27*91f16700Schasinglulu unsigned int plat_rpi3_calc_core_pos(u_register_t mpidr);
28*91f16700Schasinglulu 
29*91f16700Schasinglulu /* BL2 utility functions */
30*91f16700Schasinglulu uint32_t rpi3_get_spsr_for_bl32_entry(void);
31*91f16700Schasinglulu uint32_t rpi3_get_spsr_for_bl33_entry(void);
32*91f16700Schasinglulu 
33*91f16700Schasinglulu /* IO storage utility functions */
34*91f16700Schasinglulu void plat_rpi3_io_setup(void);
35*91f16700Schasinglulu 
36*91f16700Schasinglulu /* VideoCore firmware commands */
37*91f16700Schasinglulu int rpi3_vc_hardware_get_board_revision(uint32_t *revision);
38*91f16700Schasinglulu 
39*91f16700Schasinglulu int plat_rpi_get_model(void);
40*91f16700Schasinglulu 
41*91f16700Schasinglulu #endif /* RPI3_PRIVATE_H */
42