///////////////////////////////////////////////////////////////-*-C-*- // // Copyright (c) 2006 Xilinx, Inc. All rights reserved. // // Xilinx, Inc. XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION // "AS IS" AS A COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR // INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, // APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT // THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND // YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR // YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY WARRANTY // WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION, // INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR REPRESENTATIONS THAT // THIS IMPLEMENTATION IS FREE FROM CLAIMS OF INFRINGEMENT, IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // ////////////////////////////////////////////////////////////////////// #ifndef __HWINST_rgb2gray_EDK_Processor__ #define __ _rgb2gray_EDK_Processor__ #include "fsl.h" // -- FSL definitions -- #define HWINST_NPUT(val) nputfsl(val,); #define HWINST_NGET(val) ngetfsl(val,); #define HWINST_NPUT_WITHSTATUS(val,status) \ asm volatile ("nput %1, rfsl\naddic %0,r0,0" : "=d" (status) : "d" (val)) #define HWINST_NGET_WITHSTATUS(val,status) \ asm volatile ("nget %0, rfsl\naddic %1,r0,0" : "=d" (val), "=d" (status)) #define DATAINVALIDMASK 1<<2 #define FSLERRMASK 1<<4 #define GENERAL_FSL_ERROR (FSLERRMASK | DATAINVALIDMASK) // -- Control Word Encodings -- #define SG_SINGLEWRITE (0<<28) #define SG_ARRAYWRITE (1<<28) #define SG_SINGLEREAD (2<<28) #define SG_ARRAYREAD (3<<28) #define SG_WRITESTATUSREG (4<<28) #define SG_SETCOUNTER (SG_WRITESTATUSREG | (0<<22)) // -- Shared mem/reg/fifo bank location -- #define HWINST_BLUE (1<<20) #define HWINST_GREEN (1<<20) #define HWINST_RED (1<<20) #define HWINST_RESULT (1<<20) #define CONTROL_SIGNAL_BANK 0 #define REG_BANK (1<<20) #define FIFO_BANK (2<<20) // -- bank0 sm2mm addresses -- // -- bank0 mm2sm addresses -- // -- bank1 sm2mm addresses -- #define HWINST_BLUE_DOUT 0 #define HWINST_GREEN_DOUT 1 #define HWINST_RED_DOUT 2 #define HWINST_RESULT_DOUT 3 // -- bank1 mm2sm addresses -- #define HWINST_BLUE_DIN 0 #define HWINST_GREEN_DIN 1 #define HWINST_RED_DIN 2 // -- bank2 sm2mm addresses -- // -- bank2 mm2sm addresses -- // -- Block info -- #define HWINST_BLUE_BITSIZE 8 #define HWINST_BLUE_BITPT 0 #define HWINST_BLUE_ARITHTYPE 1 #define HWINST_GREEN_BITSIZE 8 #define HWINST_GREEN_BITPT 0 #define HWINST_GREEN_ARITHTYPE 1 #define HWINST_RED_BITSIZE 8 #define HWINST_RED_BITPT 0 #define HWINST_RED_ARITHTYPE 1 #define HWINST_RESULT_BITSIZE 32 #define HWINST_RESULT_BITPT 0 #define HWINST_RESULT_ARITHTYPE 1 // -- Function protos -- int hwinst_Write(unsigned int memName, unsigned int addr, unsigned int val); int hwinst_ArrayWrite(unsigned int memName, unsigned int startAddr, unsigned int transferLength, const unsigned int* valBuf); int hwinst_Read(unsigned int memName,unsigned int addr,unsigned int* val); int hwinst_ArrayRead(unsigned int memName, unsigned int startAddr, unsigned int transferLength, unsigned int** valBuf); unsigned int hwinst_getMaxRetry(); void hwinst_setMaxRetry(unsigned int val); void hwinst_flushReadFIFO(); #endif