blob: 5a2e5bd9f5520aa8bce03637fd4ede5e39975908 [file] [log] [blame]
Amit Nagal055796f2024-06-05 12:32:38 +05301/*
2 * Copyright (c) 2018-2019, Arm Limited and Contributors. All rights reserved.
3 * Copyright (c) 2021-2022, Xilinx, Inc. All rights reserved.
4 * Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
9#ifndef PLAT_PRIVATE_H
10#define PLAT_PRIVATE_H
11
12#include <bl31/interrupt_mgmt.h>
13#include <lib/xlat_tables/xlat_tables_v2.h>
14
15#define SPP_PSXC_MMI_V2_0 U(6)
16#define SPP_PSXC_MMI_V3_0 U(8)
17
18/* MMD */
19#define SPP_PSXC_ISP_AIE_V2_0 U(3)
20#define SPP_PSXC_MMD_AIE_FRZ_EA U(4)
21#define SPP_PSXC_MMD_AIE_V3_0 U(5)
22
23typedef struct versal_intr_info_type_el3 {
24 uint32_t id;
25 interrupt_type_handler_t handler;
26} versal_intr_info_type_el3_t;
27
28void config_setup(void);
29uint32_t get_uart_clk(void);
30
31const mmap_region_t *plat_get_mmap(void);
32
33void plat_gic_driver_init(void);
34void plat_gic_init(void);
35void plat_gic_cpuif_enable(void);
36void plat_gic_cpuif_disable(void);
37void plat_gic_pcpu_init(void);
38void plat_gic_save(void);
39void plat_gic_resume(void);
40void plat_gic_redistif_on(void);
41void plat_gic_redistif_off(void);
42
43extern uint32_t cpu_clock, platform_id, platform_version;
44void board_detection(void);
45const char *board_name_decode(void);
46uint64_t smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3,
47 uint64_t x4, void *cookie, void *handle, uint64_t flags);
48int32_t sip_svc_setup_init(void);
49/*
50 * Register handler to specific GIC entrance
51 * for INTR_TYPE_EL3 type of interrupt
52 */
53int request_intr_type_el3(uint32_t irq, interrupt_type_handler_t fiq_handler);
54
55#endif /* PLAT_PRIVATE_H */