| #ifndef EXCITE_FPGA_H_INCLUDED | 
 | #define EXCITE_FPGA_H_INCLUDED | 
 |  | 
 |  | 
 | /** | 
 |  * Adress alignment of the individual FPGA bytes. | 
 |  * The address arrangement of the individual bytes of the FPGA is two | 
 |  * byte aligned at the embedded MK2 platform. | 
 |  */ | 
 | #ifdef EXCITE_CCI_FPGA_MK2 | 
 | typedef unsigned char excite_cci_fpga_align_t __attribute__ ((aligned(2))); | 
 | #else | 
 | typedef unsigned char excite_cci_fpga_align_t; | 
 | #endif | 
 |  | 
 |  | 
 | /** | 
 |  * Size of Dual Ported RAM. | 
 |  */ | 
 | #define EXCITE_DPR_SIZE 263 | 
 |  | 
 |  | 
 | /** | 
 |  * Size of Reserved Status Fields in Dual Ported RAM. | 
 |  */ | 
 | #define EXCITE_DPR_STATUS_SIZE 7 | 
 |  | 
 |  | 
 |  | 
 | /** | 
 |  * FPGA. | 
 |  * Hardware register layout of the FPGA interface. The FPGA must accessed | 
 |  * byte wise solely. | 
 |  * @see EXCITE_CCI_DPR_MK2 | 
 |  */ | 
 | typedef struct excite_fpga { | 
 |  | 
 | 	/** | 
 | 	 * Dual Ported RAM. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t dpr[EXCITE_DPR_SIZE]; | 
 |  | 
 | 	/** | 
 | 	 * Status. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t status[EXCITE_DPR_STATUS_SIZE]; | 
 |  | 
 | #ifdef EXCITE_CCI_FPGA_MK2 | 
 | 	/** | 
 | 	 * RM9000 Interrupt. | 
 | 	 * Write access initiates interrupt at the RM9000 (MIPS) processor of the eXcite. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t rm9k_int; | 
 | #else | 
 | 	/** | 
 | 	 * MK2 Interrupt. | 
 | 	 * Write access initiates interrupt at the ARM processor of the MK2. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t mk2_int; | 
 |  | 
 | 	excite_cci_fpga_align_t gap[0x1000-0x10f]; | 
 |  | 
 | 	/** | 
 | 	 * IRQ Source/Acknowledge. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t rm9k_irq_src; | 
 |  | 
 | 	/** | 
 | 	 * IRQ Mask. | 
 | 	 * Set bits enable the related interrupt. | 
 | 	 */ | 
 | 	excite_cci_fpga_align_t rm9k_irq_mask; | 
 | #endif | 
 |  | 
 |  | 
 | } excite_fpga; | 
 |  | 
 |  | 
 |  | 
 | #endif	/* ndef EXCITE_FPGA_H_INCLUDED */ |