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 */ 28*6cc743cfSSaurabh Gorecha void qti_setup_page_tables( 29*6cc743cfSSaurabh Gorecha uintptr_t total_base, 305bd9c17dSSaurabh Gorecha size_t total_size, 315bd9c17dSSaurabh Gorecha uintptr_t code_start, 325bd9c17dSSaurabh Gorecha uintptr_t code_limit, 335bd9c17dSSaurabh Gorecha uintptr_t rodata_start, 34*6cc743cfSSaurabh Gorecha uintptr_t rodata_limit 35*6cc743cfSSaurabh Gorecha ); 365bd9c17dSSaurabh Gorecha 375bd9c17dSSaurabh Gorecha /* 385bd9c17dSSaurabh Gorecha * Mandatory functions required in ARM standard platforms 395bd9c17dSSaurabh Gorecha */ 405bd9c17dSSaurabh Gorecha void plat_qti_gic_driver_init(void); 415bd9c17dSSaurabh Gorecha void plat_qti_gic_init(void); 425bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_enable(void); 435bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_disable(void); 445bd9c17dSSaurabh Gorecha void plat_qti_gic_pcpu_init(void); 455bd9c17dSSaurabh Gorecha 465bd9c17dSSaurabh Gorecha /* 475bd9c17dSSaurabh Gorecha * Optional functions required in ARM standard platforms 485bd9c17dSSaurabh Gorecha */ 495bd9c17dSSaurabh Gorecha unsigned int plat_qti_core_pos_by_mpidr(u_register_t mpidr); 505bd9c17dSSaurabh Gorecha unsigned int plat_qti_my_cluster_pos(void); 515bd9c17dSSaurabh Gorecha 525bd9c17dSSaurabh Gorecha void gic_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr); 535bd9c17dSSaurabh Gorecha 54522a2277SJulius Werner void qti_pmic_prepare_reset(void); 55522a2277SJulius Werner void qti_pmic_prepare_shutdown(void); 56522a2277SJulius Werner 575bd9c17dSSaurabh Gorecha #endif /* QTI_PLAT_H */ 58