Files
checker_m4/source/OpenAMP/libmetal/test/system/generic/zynq7/helper.c
2023-06-21 18:00:56 +08:00

59 lines
1.3 KiB
C

/*
* Copyright (c) 2014, Mentor Graphics Corporation
* All rights reserved.
*
* Copyright (c) 2016 Xilinx, Inc. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "xscugic.h"
#define INTC_DEVICE_ID XPAR_SCUGIC_0_DEVICE_ID
static XScuGic xInterruptController;
/* Interrupt Controller setup */
static int app_gic_initialize(void)
{
u32 Status;
XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */
Xil_ExceptionDisable();
/*
* Initialize the interrupt controller driver
*/
IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);
if (NULL == IntcConfig) {
return XST_FAILURE;
}
Status = XScuGic_CfgInitialize(&xInterruptController, IntcConfig,
IntcConfig->CpuBaseAddress);
if (Status != XST_SUCCESS) {
return XST_FAILURE;
}
/*
* Register the interrupt handler to the hardware interrupt handling
* logic in the ARM processor.
*/
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,
&xInterruptController);
Xil_ExceptionEnable();
return 0;
}
/* Main hw machinery initialization entry point, called from main()*/
/* return 0 on success */
int init_system(void)
{
/* configure the global interrupt controller */
app_gic_initialize();
return 0;
}