From 420fa3fcf354d3df35cfbf9febe75f3ce7398e8f Mon Sep 17 00:00:00 2001 From: Sam Sortais Date: Thu, 26 Jan 2017 19:18:29 -0800 Subject: [PATCH] protect header file and reformat/cleanup code protect rsc_table.h from multiple inclusion add/rm comments and include files rename funcs/var to match zynq/zynqmp code Signed-off-by: Sam Sortais --- apps/system/generic/machine/zynq7/helper.c | 49 +++++++++++-------- .../system/generic/machine/zynqmp_r5/helper.c | 33 +++++++------ apps/system/linux/machine/generic/rsc_table.h | 5 ++ 3 files changed, 51 insertions(+), 36 deletions(-) diff --git a/apps/system/generic/machine/zynq7/helper.c b/apps/system/generic/machine/zynq7/helper.c index 690ea5d..eef1259 100755 --- a/apps/system/generic/machine/zynq7/helper.c +++ b/apps/system/generic/machine/zynq7/helper.c @@ -1,4 +1,3 @@ - /* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. @@ -29,30 +28,28 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -#include + #include "xparameters.h" #include "xil_exception.h" #include "xscugic.h" #include "xil_cache.h" #include "metal/sys.h" +#include "metal/irq.h" +#include "platform_info.h" -#define INTC_DEVICE_ID XPAR_SCUGIC_0_DEVICE_ID -/** IPI IRQ ID */ -#define VRING0_IPI_VECT 15 -#define VRING1_IPI_VECT 14 -XScuGic InterruptController; +#define INTC_DEVICE_ID XPAR_SCUGIC_0_DEVICE_ID -extern void metal_irq_isr(unsigned int irq); +static XScuGic xInterruptController; -int zynq_a9_gic_initialize() +/* Interrupt Controller setup */ +static int app_gic_initialize(void) { u32 Status; + XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */ Xil_ExceptionDisable(); - XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */ - /* * Initialize the interrupt controller driver */ @@ -61,7 +58,7 @@ int zynq_a9_gic_initialize() return XST_FAILURE; } - Status = XScuGic_CfgInitialize(&InterruptController, IntcConfig, + Status = XScuGic_CfgInitialize(&xInterruptController, IntcConfig, IntcConfig->CpuBaseAddress); if (Status != XST_SUCCESS) { return XST_FAILURE; @@ -73,32 +70,42 @@ int zynq_a9_gic_initialize() */ Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT, (Xil_ExceptionHandler)XScuGic_InterruptHandler, - &InterruptController); + &xInterruptController); Xil_ExceptionEnable(); + /* Connect IPI0 Interrupt ID with ISR */ - XScuGic_Connect(&InterruptController, VRING0_IPI_VECT, - (Xil_ExceptionHandler)metal_irq_isr, - (void *)VRING0_IPI_VECT); + XScuGic_Connect(&xInterruptController, VRING0_IPI_INTR_VECT, + (Xil_ExceptionHandler)metal_irq_isr, + (void *)VRING0_IPI_INTR_VECT); /* Connect IPI1 Interrupt ID with ISR */ - XScuGic_Connect(&InterruptController, VRING1_IPI_VECT, - (Xil_ExceptionHandler)metal_irq_isr, - (void *)VRING1_IPI_VECT); + XScuGic_Connect(&xInterruptController, VRING1_IPI_INTR_VECT, + (Xil_ExceptionHandler)metal_irq_isr, + (void *)VRING1_IPI_INTR_VECT); + return 0; } -void init_system() +/* Main hw machinery initialization entry point, called from main()*/ +/* return 0 on success */ +int init_system(void) { struct metal_init_params metal_param = METAL_INIT_DEFAULTS; + /* Low level abstraction layer for openamp initialization */ metal_init(&metal_param); - zynq_a9_gic_initialize(); + + /* configure the global interrupt controller */ + app_gic_initialize(); + + return 0; } void cleanup_system() { metal_finish(); + Xil_DCacheDisable(); Xil_ICacheDisable(); Xil_DCacheInvalidate(); diff --git a/apps/system/generic/machine/zynqmp_r5/helper.c b/apps/system/generic/machine/zynqmp_r5/helper.c index 066e666..a6d4fc6 100644 --- a/apps/system/generic/machine/zynqmp_r5/helper.c +++ b/apps/system/generic/machine/zynqmp_r5/helper.c @@ -1,4 +1,3 @@ - /* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. @@ -36,17 +35,14 @@ #include "xil_cache.h" #include "metal/sys.h" #include "metal/irq.h" -#include "metal/system/generic/irq.h" - +#include "platform_info.h" #define INTC_DEVICE_ID XPAR_SCUGIC_0_DEVICE_ID -/** IPI IRQ ID */ -#define IPI_IRQ_VECT_ID 65 - -static XScuGic InterruptController; +static XScuGic xInterruptController; -static int zynqmp_r5_gic_initialize(void) +/* Interrupt Controller setup */ +static int app_gic_initialize(void) { u32 Status; XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */ @@ -61,7 +57,7 @@ static int zynqmp_r5_gic_initialize(void) return XST_FAILURE; } - Status = XScuGic_CfgInitialize(&InterruptController, IntcConfig, + Status = XScuGic_CfgInitialize(&xInterruptController, IntcConfig, IntcConfig->CpuBaseAddress); if (Status != XST_SUCCESS) { return XST_FAILURE; @@ -73,24 +69,31 @@ static int zynqmp_r5_gic_initialize(void) */ Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT, (Xil_ExceptionHandler)XScuGic_InterruptHandler, - &InterruptController); + &xInterruptController); Xil_ExceptionEnable(); /* Connect Interrupt ID with ISR */ - XScuGic_Connect(&InterruptController, IPI_IRQ_VECT_ID, - (Xil_ExceptionHandler)metal_irq_isr, - (void *)IPI_IRQ_VECT_ID); + XScuGic_Connect(&xInterruptController, IPI_IRQ_VECT_ID, + (Xil_ExceptionHandler)metal_irq_isr, + (void *)IPI_IRQ_VECT_ID); return 0; } -void init_system(void) +/* Main hw machinery initialization entry point, called from main()*/ +/* return 0 on success */ +int init_system(void) { struct metal_init_params metal_param = METAL_INIT_DEFAULTS; + /* Low level abstraction layer for openamp initialization */ metal_init(&metal_param); - zynqmp_r5_gic_initialize(); + + /* configure the global interrupt controller */ + app_gic_initialize(); + + return 0; } void cleanup_system() diff --git a/apps/system/linux/machine/generic/rsc_table.h b/apps/system/linux/machine/generic/rsc_table.h index 698a6f3..1794d29 100644 --- a/apps/system/linux/machine/generic/rsc_table.h +++ b/apps/system/linux/machine/generic/rsc_table.h @@ -31,6 +31,9 @@ /* This file populates resource table for BM remote * for use by the Linux Master */ +#ifndef RSC_TABLE_H_ +#define RSC_TABLE_H_ + #include #include "openamp/open_amp.h" @@ -47,3 +50,5 @@ struct remote_resource_table { struct fw_rsc_vdev_vring rpmsg_vring0; struct fw_rsc_vdev_vring rpmsg_vring1; }; + +#endif /* RSC_TABLE_H_ */ -- 2.39.2