1*edcece15Srutigl@gmail.com /* 2*edcece15Srutigl@gmail.com * Copyright (c) 2016-2023, ARM Limited and Contributors. All rights reserved. 3*edcece15Srutigl@gmail.com * 4*edcece15Srutigl@gmail.com * Copyright (C) 2022-2023 Nuvoton Ltd. 5*edcece15Srutigl@gmail.com * 6*edcece15Srutigl@gmail.com * SPDX-License-Identifier: BSD-3-Clause 7*edcece15Srutigl@gmail.com */ 8*edcece15Srutigl@gmail.com 9*edcece15Srutigl@gmail.com #include <common/interrupt_props.h> 10*edcece15Srutigl@gmail.com #include <drivers/arm/gicv2.h> 11*edcece15Srutigl@gmail.com #include <plat/common/platform.h> 12*edcece15Srutigl@gmail.com #include <platform_def.h> 13*edcece15Srutigl@gmail.com 14*edcece15Srutigl@gmail.com static const interrupt_prop_t g0_interrupt_props[] = { 15*edcece15Srutigl@gmail.com INTR_PROP_DESC(FIQ_SMP_CALL_SGI, GIC_HIGHEST_SEC_PRIORITY, 16*edcece15Srutigl@gmail.com GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), 17*edcece15Srutigl@gmail.com }; 18*edcece15Srutigl@gmail.com 19*edcece15Srutigl@gmail.com gicv2_driver_data_t arm_gic_data = { 20*edcece15Srutigl@gmail.com .gicd_base = BASE_GICD_BASE, 21*edcece15Srutigl@gmail.com .gicc_base = BASE_GICC_BASE, 22*edcece15Srutigl@gmail.com .interrupt_props = g0_interrupt_props, 23*edcece15Srutigl@gmail.com .interrupt_props_num = ARRAY_SIZE(g0_interrupt_props), 24*edcece15Srutigl@gmail.com }; 25*edcece15Srutigl@gmail.com 26*edcece15Srutigl@gmail.com void plat_gic_driver_init(void) 27*edcece15Srutigl@gmail.com { 28*edcece15Srutigl@gmail.com gicv2_driver_init(&arm_gic_data); 29*edcece15Srutigl@gmail.com } 30*edcece15Srutigl@gmail.com 31*edcece15Srutigl@gmail.com void plat_gic_init(void) 32*edcece15Srutigl@gmail.com { 33*edcece15Srutigl@gmail.com gicv2_distif_init(); 34*edcece15Srutigl@gmail.com gicv2_pcpu_distif_init(); 35*edcece15Srutigl@gmail.com gicv2_cpuif_enable(); 36*edcece15Srutigl@gmail.com } 37*edcece15Srutigl@gmail.com 38*edcece15Srutigl@gmail.com void plat_gic_cpuif_enable(void) 39*edcece15Srutigl@gmail.com { 40*edcece15Srutigl@gmail.com gicv2_cpuif_enable(); 41*edcece15Srutigl@gmail.com } 42*edcece15Srutigl@gmail.com 43*edcece15Srutigl@gmail.com void plat_gic_cpuif_disable(void) 44*edcece15Srutigl@gmail.com { 45*edcece15Srutigl@gmail.com gicv2_cpuif_disable(); 46*edcece15Srutigl@gmail.com } 47*edcece15Srutigl@gmail.com 48*edcece15Srutigl@gmail.com void plat_gic_pcpu_init(void) 49*edcece15Srutigl@gmail.com { 50*edcece15Srutigl@gmail.com gicv2_pcpu_distif_init(); 51*edcece15Srutigl@gmail.com } 52