📄 tmhdvopriv.h
字号:
/*
* +-------------------------------------------------------------------+
* | Copyright (c) 1998-1999 by TriMedia Technologies. |
* | |
* | This software is furnished under a license and may only be used |
* | and copied in accordance with the terms and conditions of such a |
* | license and with the inclusion of this copyright notice. This |
* | software or any other copies of this software may not be provided |
* | or otherwise made available to any other person. The ownership |
* | and title of this software is not transferred. |
* | |
* | The information in this software is subject to change without |
* | any prior notice and should not be construed as a commitment by |
* | TriMedia Technologies. |
* | |
* | This code and information is provided "as is" without any |
* | warranty of any kind, either expressed or implied, including but |
* | not limited to the implied warranties of merchantability and/or |
* | fitness for any particular purpose. |
* +-------------------------------------------------------------------+
*
*
* Module name : tmHDVOpriv.h 1.1
*
* Last update : 15:51:40 - 98/08/29
*
* Description :
*
* This is a private HDVO device library file.
*
* Revision :
*
*/
#ifndef _TMHDVO_PRIVATE_H_
#define _TMHDVO_PRIVATE_H_
/*-----------------------------includes-------------------------------------*/
#include <tm1/tmHDVO.h>
#if defined(__cplusplus)
extern "C" {
#endif
/*-----------------------------defines---------------------------------------*/
/*------------------------------types----------------------------------------*/
/*
* DMA-HWY I/F RWn
*/
typedef enum {
HDVO_DMA_HWY_SDRAM_WRITE = 0,
HDVO_DMA_HWY_SDRAM_READ = 1
} hdvoDMA_HWY_RW_t;
typedef enum {
HDVO_DMA_HWY_NO_SWAP = 0,
HDVO_DMA_HWY_BSW = 1,
HDVO_DMA_HWY_BSH = 2
} hdvoDMA_HWY_SWAP_TYPE_t;
typedef enum {
HDVO_DMA_HWY_PLANE_0 = 0,
HDVO_DMA_HWY_PLANE_1 = 1,
HDVO_DMA_HWY_PLANE_2 = 2,
HDVO_DMA_HWY_PLANE_3 = 3,
HDVO_DMA_HWY_PLANE_4 = 4,
HDVO_DMA_HWY_PLANE_5 = 5,
HDVO_DMA_HWY_PLANE_6 = 6,
HDVO_DMA_HWY_PLANE_7 = 7,
HDVO_DMA_HWY_PLANE_8 = 8,
HDVO_DMA_HWY_PLANE_9 = 9,
HDVO_DMA_HWY_PLANE_10 = 10,
HDVO_DMA_HWY_PLANE_11 = 11,
HDVO_DMA_HWY_PLANE_12 = 12,
HDVO_DMA_HWY_PLANE_13 = 13,
HDVO_DMA_HWY_PLANE_14 = 14,
HDVO_DMA_HWY_PLANE_15 = 15,
HDVO_DMA_HWY_GLOBAL_PLANE = 16,
HDVO_DMA_HWY_SAVE_CONTEXT = 31
} hdvoDMA_HWY_PLANE_t;
/*
* XBUS
*/
typedef enum {
HDVO_XBUS_XBAR_WRITE = 0,
HDVO_XBUS_XBAR_READ = 1
} hdvoXBUS_RW_t;
typedef enum {
HDVO_XBUS_A = 0, /* xbus A */
HDVO_XBUS_B = 1 /* xbus B */
} hdvoXBUS_t;
typedef enum {
HDVO_XBAR_FLTR1 = 1, /* filter 1 xbar */
HDVO_XBAR_FLTR2 = 2, /* filter 2 xbar */
HDVO_XBAR_CTRL = 4 /* control xbar */
} hdvoXBAR_t;
typedef enum {
HDVO_8_Bit = 0,
HDVO_16_Bit = 1
} hdvoWordSize_t;
/*
* Memory blocks
*/
typedef enum {
HDVO_MEMORY_MODULE_WRITE = 0,
HDVO_MEMORY_MODULE_READ = 1
} hdvoMEMORY_RW_t;
typedef enum {
HDVO_MEMORY_BLOCK_RESET_ADDRESS = 0, /* 8 bit address is reset, page
is read from page register */
HDVO_MEMORY_BLOCK_USE_PAGE_ADDRESS = 1, /* load from page and memory
start register */
HDVO_MEMORY_BLOCK_CONTINUE = 2, /* continue with current address */
HDVO_MEMORY_BLOCK_USE_PAGE = 3 /* load from page register but
use current address */
} hdvoMemoryBlockCtrl_t;
/*
* Streaming out
*/
typedef enum {
HDVO_STM_LOAD_PARAM = 0, /* Load parameters */
HDVO_STM_LOAD_LUT = 1, /* Load LUT */
HDVO_STM_LOAD_PIXEL = 2, /* Load image pixels */
HDVO_STM_LOAD_DATA = 3, /* load data */
HDVO_STM_FREE_LINES = 4, /* free run for number of lines */
HDVO_STM_NO_LOAD = 6, /* no load */
HDVO_STM_FREE_RUN = 7 /* Free run */
} hdvoSTM_Load_Mode_t;
/*
* Processing step issue
*/
typedef enum {
HDVO_ASYNCHRONOUS_ISSUE = 0, /* PS is asynchronous */
HDVO_SYNCHRONOUS_ISSUE = 1 /* PS is asynchronous */
} hdvoIssuePS_t;
/*
* MDX mode
*/
typedef enum {
HDVO_MDX_CONTROL = 0, /* control mode used for loading coeffs */
HDVO_MDX_DATA = 1 /* data mode */
} hdvoMDX_Mode_t;
/* ----------- types used for test only ----------- */
/*
* Transfer Unit (XFR)
*/
typedef enum {
HDVO_XFR_REPEAT_EVERY_4_CLOCKS = 0,
HDVO_XFR_REPEAT_EVERY_CLOCK = 1,
HDVO_XFR_REPEAT_EVERY_2_CLOCKS = 2,
HDVO_XFR_REPEAT_EVERY_3_CLOCKS = 3
} hdvoXFRCycles_t;
typedef enum {
HDVO_XFR_PATTERN_DISABLED = 0,
HDVO_XFR_PATTERN_OUTPUT_CYCLE_1 = 1,
HDVO_XFR_PATTERN_OUTPUT_CYCLE_2 = 2,
HDVO_XFR_PATTERN_OUTPUT_CYCLE_3 = 3,
HDVO_XFR_PATTERN_OUTPUT_CYCLE_4 = 4
} hdvoXFRPattern_t; /* can be or'd */
/*--------------------------- externs ---------------------------------------*/
#ifndef DISABLE_LOAD_STM_GAMMA
extern tmLibdevErr_t
hdvoLoadSTMGamma(UInt8 *gammaTable);
#endif
#ifndef DISABLE_LOAD_STM_PARAMS
extern tmLibdevErr_t
#ifdef HDVO_STM16
hdvoLoadSTMParameters(UInt16 *stmParameters);
#else
hdvoLoadSTMParameters(UInt8 *stmParameters);
#endif
#endif
extern tmLibdevErr_t
hdvoLoadContext(phdvoContext_t pcontext);
extern tmLibdevErr_t
hdvoLoadDataSegment(UInt16 * dataSegment,
UInt16 dataSegmentSize);
#ifndef HDVO_UNFORMATED_UCODE
extern tmLibdevErr_t
hdvoLoadMicroCode(UInt8 * microCode, UInt16 microCodeSize);
#else
tmLibdevErr_t
hdvoLoadMicroCode(UInt8 * microCode0, UInt8 * microCode1,
UInt8 * microCode2, UInt16 microCodeSize);
#endif
extern tmLibdevErr_t
hdvoLoadMDXParameters(UInt8 *mdxParameters);
extern tmLibdevErr_t
hdvoReset(void);
extern tmLibdevErr_t
hdvoIssueProcessingStep(hdvoIssuePS_t mode);
extern tmLibdevErr_t
hdvoSetupMemory(UInt32 module, hdvoMEMORY_RW_t readWrite, UInt8 page,
UInt8 startAddress, Bool keepPage,
hdvoMemoryBlockCtrl_t control);
extern tmLibdevErr_t
hdvoDisableMemory(UInt32 module, hdvoMEMORY_RW_t readWrite);
extern tmLibdevErr_t
hdvoSetupCtrlInXbar( UInt8 functionUnitPort, UInt8 memoryModule);
extern tmLibdevErr_t
hdvoSetupCtrlOutXbar(UInt8 memoryModule, UInt8 functionUnitPort);
extern tmLibdevErr_t
hdvoDMA_HWY_IF_LH_INSTR(UInt8 * addressSDRAM, UInt8 count,
hdvoDMA_HWY_RW_t readWrite,
UInt16 addressIRAM, Bool priority);
extern tmLibdevErr_t
hdvoDMA_HWY_IF_NH_INSTR(UInt8 count, Bool updateAddress,
Bool validIRAM, UInt16 addressIRAM);
extern tmLibdevErr_t
hdvoDMA_HWY_IF_CH_INSTR(Bool resetIRAM, UInt8 plane,
UInt8 incType);
extern tmLibdevErr_t
hdvoDMA_HWY_IF_LX_INSTR(hdvoXBUS_t xbus, hdvoXBAR_t crossbar, Bool merge,
Bool oddEven, hdvoXBUS_RW_t readWrite,
UInt16 addressIRAM, Bool interleaved,
hdvoWordSize_t wordSize, UInt8 count);
#if defined (HDVO_DEBUG_FUNCTIONS)
extern tmLibdevErr_t
hdvoDMA_HWY_IF_LCX_INSTR(hdvoXBUS_t xbus, Bool oddEven,
hdvoXBUS_RW_t readWrite, UInt16 addressIRAM,
Bool interleaved, hdvoWordSize_t wordSize,
Bool validIRAM);
#endif
extern tmLibdevErr_t
hdvoDMA_HWY_IF_NX_INSTR(hdvoXBUS_t xbus, Bool merge, UInt8 count);
#if defined (HDVO_DEBUG_FUNCTIONS)
extern tmLibdevErr_t
hdvoDMA_HWY_IF_CX_INSTR(hdvoXBUS_t xbus, hdvoXBAR_t crossbar, Bool oddEven,
UInt8 plane);
#endif
#if defined (HDVO_DEBUG_FUNCTIONS)
extern tmLibdevErr_t
hdvoDMA_HWY_IF_SX_INSTR(hdvoXBUS_t xbus, UInt8 plane);
#endif
extern tmLibdevErr_t
hdvoLoadMCPDataMemory(UInt16 * addressSDRAM, UInt16 size,
UInt8 page);
extern tmLibdevErr_t
hdvoSDRAMTransfer(hdvoDMA_HWY_RW_t readWrite,
Bool initialTransfer,
UInt8 * addressSDRAM,
Bool validIRAM,
UInt16 addressIRAM,
UInt16 size,
hdvoDMA_HWY_SWAP_TYPE_t swapType);
extern tmLibdevErr_t
hdvoTransferIRAMtoCTRL(hdvoXBUS_t xbus,
UInt16 addressIRAM,
UInt32 memoryModule,
UInt16 size,
hdvoWordSize_t wordSize);
extern tmLibdevErr_t
hdvoTransferCTRLtoMCPData(UInt32 memoryModule,
UInt8 page,
UInt16 size);
extern tmLibdevErr_t
hdvoTransferCTRLtoMCPProgram(UInt32 boMemoryModule,
UInt32 b1MemoryModule,
UInt32 b2MemoryModule,
UInt8 page,
UInt16 size);
#if !defined (DISABLE_LOAD_STM_GAMMA) || !defined(DISABLE_LOAD_STM_PARAMS)
extern tmLibdevErr_t
hdvoTransferCTRLtoSTM(hdvoSTM_Load_Mode_t loadMode,
UInt32 memoryModule,
UInt8 size);
#endif
/* TEST/DEBUG Functions */
#if defined (HDVO_DEBUG_FUNCTIONS)
extern tmLibdevErr_t
hdvoTransferCTRLtoIRAM(hdvoXBUS_t xbus,
UInt16 addressIRAM,
UInt32 memoryModule,
UInt16 size,
hdvoWordSize_t wordSize);
extern tmLibdevErr_t
hdvoTransferMCPDataToCTRL(UInt32 memoryModule,
UInt8 page,
UInt16 size);
extern tmLibdevErr_t
hdvoSetupXFR(hdvoXBAR_t crossbar,
UInt8 totalCount,
Bool enableMuxing,
hdvoXFRCycles_t cycles,
Bool enableOutput1,
hdvoXFRPattern_t port1Pattern,
Bool enableOutput2,
hdvoXFRPattern_t port2Pattern,
Bool enableOutput3,
hdvoXFRPattern_t port3Pattern,
Bool enableOutput4,
hdvoXFRPattern_t port4Pattern,
UInt8 port1Count);
extern tmLibdevErr_t
hdvoDisableXFR(hdvoXBAR_t crossbar);
extern tmLibdevErr_t
hdvoTransferCrossbar(hdvoXBAR_t readCrossbar,
UInt32 readMemory,
hdvoXBAR_t writeCrossbar,
UInt32 writeMemory,
UInt16 size);
extern tmLibdevErr_t
hdvoSetupFilterInXbar(hdvoXBAR_t filterCrossbar,
UInt8 functionUnitPort,
UInt8 memoryModule) ;
extern tmLibdevErr_t
hdvoSetupFilterOutXbar(hdvoXBAR_t filterCrossbar,
UInt8 memoryModule,
UInt8 functionUnitPort);
extern tmLibdevErr_t
hdvoTransferIRAMtoFILTER(hdvoXBAR_t filterCrossbar,
hdvoXBUS_t xbus,
UInt16 addressIRAM,
UInt32 memoryModule,
UInt16 size,
hdvoWordSize_t wordSize);
extern tmLibdevErr_t
hdvoTransferFILTERtoIRAM(hdvoXBAR_t filterCrossbar,
hdvoXBUS_t xbus,
UInt16 addressIRAM,
UInt32 memoryModule,
UInt16 size,
hdvoWordSize_t wordSize);
#endif
#if defined(__cplusplus)
}
#endif
#endif /* #ifndef _TMHDVO_PRIVATE_H_ */
/* ************************************************************************* */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -