15bd9c17dSSaurabh Gorecha /* 25bd9c17dSSaurabh Gorecha * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 35bd9c17dSSaurabh Gorecha * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. 45bd9c17dSSaurabh Gorecha * 55bd9c17dSSaurabh Gorecha * SPDX-License-Identifier: BSD-3-Clause 65bd9c17dSSaurabh Gorecha */ 75bd9c17dSSaurabh Gorecha 85bd9c17dSSaurabh Gorecha #ifndef QTI_PLAT_H 95bd9c17dSSaurabh Gorecha #define QTI_PLAT_H 105bd9c17dSSaurabh Gorecha 115bd9c17dSSaurabh Gorecha #include <stdint.h> 125bd9c17dSSaurabh Gorecha 135bd9c17dSSaurabh Gorecha #include <common/bl_common.h> 145bd9c17dSSaurabh Gorecha #include <lib/cassert.h> 155bd9c17dSSaurabh Gorecha #include <lib/el3_runtime/cpu_data.h> 165bd9c17dSSaurabh Gorecha #include <lib/xlat_tables/xlat_tables_v2.h> 175bd9c17dSSaurabh Gorecha 185bd9c17dSSaurabh Gorecha /* 195bd9c17dSSaurabh Gorecha * Utility functions common to QTI platforms 205bd9c17dSSaurabh Gorecha */ 215bd9c17dSSaurabh Gorecha int qti_mmap_add_dynamic_region(uintptr_t base_pa, size_t size, 225bd9c17dSSaurabh Gorecha unsigned int attr); 235bd9c17dSSaurabh Gorecha int qti_mmap_remove_dynamic_region(uintptr_t base_va, size_t size); 245bd9c17dSSaurabh Gorecha 255bd9c17dSSaurabh Gorecha /* 265bd9c17dSSaurabh Gorecha * Utility functions common to ARM standard platforms 275bd9c17dSSaurabh Gorecha */ 285bd9c17dSSaurabh Gorecha void qti_setup_page_tables(uintptr_t total_base, 295bd9c17dSSaurabh Gorecha size_t total_size, 305bd9c17dSSaurabh Gorecha uintptr_t code_start, 315bd9c17dSSaurabh Gorecha uintptr_t code_limit, 325bd9c17dSSaurabh Gorecha uintptr_t rodata_start, 335bd9c17dSSaurabh Gorecha uintptr_t rodata_limit, 345bd9c17dSSaurabh Gorecha uintptr_t coh_start, uintptr_t coh_limit); 355bd9c17dSSaurabh Gorecha 365bd9c17dSSaurabh Gorecha /* 375bd9c17dSSaurabh Gorecha * Mandatory functions required in ARM standard platforms 385bd9c17dSSaurabh Gorecha */ 395bd9c17dSSaurabh Gorecha void plat_qti_gic_driver_init(void); 405bd9c17dSSaurabh Gorecha void plat_qti_gic_init(void); 415bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_enable(void); 425bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_disable(void); 435bd9c17dSSaurabh Gorecha void plat_qti_gic_pcpu_init(void); 445bd9c17dSSaurabh Gorecha 455bd9c17dSSaurabh Gorecha /* 465bd9c17dSSaurabh Gorecha * Optional functions required in ARM standard platforms 475bd9c17dSSaurabh Gorecha */ 485bd9c17dSSaurabh Gorecha unsigned int plat_qti_core_pos_by_mpidr(u_register_t mpidr); 495bd9c17dSSaurabh Gorecha unsigned int plat_qti_my_cluster_pos(void); 505bd9c17dSSaurabh Gorecha 515bd9c17dSSaurabh Gorecha void gic_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr); 525bd9c17dSSaurabh Gorecha 53*522a2277SJulius Werner void qti_pmic_prepare_reset(void); 54*522a2277SJulius Werner void qti_pmic_prepare_shutdown(void); 55*522a2277SJulius Werner 565bd9c17dSSaurabh Gorecha #endif /* QTI_PLAT_H */ 57