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 */ 286cc743cfSSaurabh Gorecha void qti_setup_page_tables( 296cc743cfSSaurabh 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, 346cc743cfSSaurabh Gorecha uintptr_t rodata_limit 356cc743cfSSaurabh Gorecha ); 36*c48d0aefSSumit Garg int qti_io_setup(void); 37*c48d0aefSSumit Garg struct image_info *qti_get_image_info(unsigned int image_id); 385bd9c17dSSaurabh Gorecha 395bd9c17dSSaurabh Gorecha /* 405bd9c17dSSaurabh Gorecha * Mandatory functions required in ARM standard platforms 415bd9c17dSSaurabh Gorecha */ 425bd9c17dSSaurabh Gorecha void plat_qti_gic_driver_init(void); 435bd9c17dSSaurabh Gorecha void plat_qti_gic_init(void); 445bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_enable(void); 455bd9c17dSSaurabh Gorecha void plat_qti_gic_cpuif_disable(void); 465bd9c17dSSaurabh Gorecha void plat_qti_gic_pcpu_init(void); 475bd9c17dSSaurabh Gorecha 485bd9c17dSSaurabh Gorecha /* 495bd9c17dSSaurabh Gorecha * Optional functions required in ARM standard platforms 505bd9c17dSSaurabh Gorecha */ 515bd9c17dSSaurabh Gorecha unsigned int plat_qti_core_pos_by_mpidr(u_register_t mpidr); 525bd9c17dSSaurabh Gorecha unsigned int plat_qti_my_cluster_pos(void); 535bd9c17dSSaurabh Gorecha 545bd9c17dSSaurabh Gorecha void gic_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr); 555bd9c17dSSaurabh Gorecha 56522a2277SJulius Werner void qti_pmic_prepare_reset(void); 57522a2277SJulius Werner void qti_pmic_prepare_shutdown(void); 58522a2277SJulius Werner 5939fdd3d8SBharath N typedef struct chip_id_info { 6039fdd3d8SBharath N uint16_t jtag_id; 6139fdd3d8SBharath N uint16_t chipinfo_id; 6239fdd3d8SBharath N } chip_id_info_t; 6339fdd3d8SBharath N 645bd9c17dSSaurabh Gorecha #endif /* QTI_PLAT_H */ 65