/* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. * * Copyright (c) 2015 Xilinx, Inc. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include "xparameters.h" #include "xil_exception.h" #include "xscugic.h" #include "xil_cache.h" #include #include #include "platform_info.h" #define INTC_DEVICE_ID XPAR_SCUGIC_0_DEVICE_ID static XScuGic xInterruptController; /* Interrupt Controller setup */ static int app_gic_initialize(void) { uint32_t status; XScuGic_Config *int_ctrl_config; /* interrupt controller configuration params */ uint32_t int_id; uint32_t mask_cpu_id = ((u32)0x1 << XPAR_CPU_ID); uint32_t target_cpu; mask_cpu_id |= mask_cpu_id << 8U; mask_cpu_id |= mask_cpu_id << 16U; Xil_ExceptionDisable(); /* * Initialize the interrupt controller driver */ int_ctrl_config = XScuGic_LookupConfig(INTC_DEVICE_ID); if (NULL == int_ctrl_config) { return XST_FAILURE; } status = XScuGic_CfgInitialize(&xInterruptController, int_ctrl_config, int_ctrl_config->CpuBaseAddress); if (status != XST_SUCCESS) { return XST_FAILURE; } /* Only associate interrupt needed to this CPU */ for (int_id = 32U; int_id