1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef EXCITE_FPGA_H_INCLUDED
- #define EXCITE_FPGA_H_INCLUDED
- /**
- * Address 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 */
|