⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddma.h

📁 嵌入式linux(arm9)的平台下
💻 H
📖 第 1 页 / 共 2 页
字号:
/********************************************************************* * * Copyright: *	Advanced Micro Devices, AMD. All Rights Reserved.   *  You are hereby granted a copyright license to use, modify, and *  distribute the SOFTWARE so long as this entire notice is *  retained without alteration in any modified and/or redistributed *  versions, and that such modified versions are clearly identified *  as such. No licenses are granted by implication, estoppel or *  otherwise under any patents or trademarks of AMD. This  *  software is provided on an "AS IS" basis and without warranty. * *  To the maximum extent permitted by applicable law, AMD  *  DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING  *  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR *  PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH REGARD TO THE  *  SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) AND ANY  *  ACCOMPANYING WRITTEN MATERIALS. *  *  To the maximum extent permitted by applicable law, IN NO EVENT *  SHALL AMD BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING  *  WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS  *  INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY *  LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.    *  *  AMD assumes no responsibility for the maintenance and support *  of this software. ********************************************************************* * * File:		ddma.h * * Purpose:		Definitions for Au1550 DDMA * *  $RCSfile: ddma.h,v $ *  $Author: cgray $ *  $Revision: 1.9 $ *  $Date: 2003/12/22 21:20:21 $ ************************************************************************/#ifndef __AU1550_DDMA_#define __AU1550_DDMA_#define		DDMA_PHYS_ADDRESS	0x14002000		// This is the base address for the first channel#define 	DDMA_NUM_CHANNELS 	16				// general registers follow channels at 0x14003000#ifndef ASSEMBLERtypedef volatile struct{	uint32	cfg;			// config	uint32	des_ptr;		// descriptor pointer	uint32	stat_ptr;		// status pointer	uint32	db;				// doorbell	uint32	irq;			// Interrupt	uint32	status;			// Status	uint32	bytecnt;		// Remaining byte count	uint32	array[16];		// Debug Access	uint8	reserved[0xA4];	// Padding to make channels line up on 0x100 boundry} DDMA_CHANNEL;#endif/* *	Bit definitions for Channel Config */#define		DDMA_CHANCFG_EN			(1<<0)#define		DDMA_CHANCFG_DBE	 	(1<<1)#define		DDMA_CHANCFG_SBE	 	(1<<2)#define		DDMA_CHANCFG_DFN	 	(1<<3)#define		DDMA_CHANCFG_PPR	 	(1<<4)/* * Bit definitions for Channel Interrupt */#define		DDMA_CHANINT_IN			(1<<0)/* * Bit definitions for Channel Status */#define		DDMA_CHANSTATUS_H		(1<<0)#define		DDMA_CHANSTATUS_V		(1<<1)#define		DDMA_CHANSTATUS_DB		(1<<2)#ifndef ASSEMBLERtypedef volatile struct{	uint32	cmd;				// Command	uint32	byte_cnt;			// Byte count	uint32	src_ptr;			// Source pointer	uint32 	src_strblk;			// Source Stride/Block	uint32	dst_ptr;			// Destination pointer	uint32	dst_strblk;			// Destination stride/block	uint32	stat;				// Status / Subroutine pointer	uint32	nxt_ptr;			// next descriptor} DDMA_DESCRIPTOR_STD;#endif#ifndef ASSEMBLERtypedef volatile struct{	uint32	cmd;				// Command	uint32	byte_cnt;			// Byte count	uint32	src_data0;			// Source data low	uint32 	src_data1;			// Source data high	uint32	dst_ptr;			// Destination pointer	uint32	dst_strblk;			// Destination stride/block	uint32	stat;				// Status / Subroutine pointer	uint32	nxt_ptr;			// next descriptor} DDMA_DESCRIPTOR_WRITEDMA;#endif#ifndef ASSEMBLERtypedef volatile struct{	union 	{		DDMA_DESCRIPTOR_STD 			std;		DDMA_DESCRIPTOR_WRITEDMA		wr;	} u; //descriptor union	union	{		uint8							u8[32];		uint16							u16[16];		uint32							u32[8];		void *							p;	}c;	// context} DDMA_DESCRIPTOR;#endif/* *	Bit definitions for descriptor command */#define		DDMA_DESCCMD_ST				(0 )#define		DDMA_DESCCMD_ST_N(n)		((n&3)<<DDMA_DESCCMD_ST) #define		DDMA_DESCCMD_ST_WRSTAT	DDMA_DESCCMD_ST_N(1) #define		DDMA_DESCCMD_ST_CLEAR	DDMA_DESCCMD_ST_N(2) #define		DDMA_DESCCMD_ST_WRCNT	DDMA_DESCCMD_ST_N(3)#define		DDMA_DESCCMD_CV				(1<<2)#define		DDMA_DESCCMD_RP				(1<<3)#define		DDMA_DESCCMD_SP				(1<<4)#define		DDMA_DESCCMD_NR				(1<<5)#define		DDMA_DESCCMD_SR				(1<<6)#define		DDMA_DESCCMD_SRS		 	(1<<7)#define		DDMA_DESCCMD_IE				(1<<8)						// Set interrupt bit upon completion#define		DDMA_DESCCMD_RES		 	(1<<9)#define		DDMA_DESCCMD_SM				(1<<10)#define		DDMA_DESCCMD_DN				(1<<11)#define		DDMA_DESCCMD_SN				(1<<12) #define	DDMA_DESCCMD_DT				(13) #define	DDMA_DESCCMD_DT_N(n)		((n&3)<<DDMA_DESCCMD_DT) #define		DDMA_DESCCMD_DT_REG		DDMA_DESCCMD_DT_N(0) #define		DDMA_DESCCMD_DT_WR		DDMA_DESCCMD_DT_N(1) #define		DDMA_DESCCMD_DT_COMPWR	DDMA_DESCCMD_DT_N(2) #define		DDMA_DESCCMD_DT_RES		DDMA_DESCCMD_DT_N(3)#define		DDMA_DESCCMD_ARB		 	(1<<15)#define		DDMA_DESCCMD_DW				(16)#define		DDMA_DESCCMD_DW_N(n)		((n&3)<<DDMA_DESCCMD_DW) #define		DDMA_DESCCMD_DW_BYTE 	DDMA_DESCCMD_DW_N(0) #define		DDMA_DESCCMD_DW_HWORD	DDMA_DESCCMD_DW_N(1) #define		DDMA_DESCCMD_DW_WORD 	DDMA_DESCCMD_DW_N(2)#define		DDMA_DESCCMD_SW				(18)#define		DDMA_DESCCMD_SW_N(n)		((n&3)<<DDMA_DESCCMD_SW) #define		DDMA_DESCCMD_SW_BYTE 	DDMA_DESCCMD_SW_N(0) #define		DDMA_DESCCMD_SW_HWORD	DDMA_DESCCMD_SW_N(1) #define		DDMA_DESCCMD_SW_WORD 	DDMA_DESCCMD_SW_N(2)#define		DDMA_DESCCMD_DID		 	(20)#define		DDMA_DESCCMD_DID_N(n)	 	((n&0x1F)<<DDMA_DESCCMD_DID)#define		DDMA_DESCCMD_SID		 	(25)#define		DDMA_DESCCMD_SID_N(n)	 	((n&0x1F)<<DDMA_DESCCMD_SID)#define		DDMA_DESCCMD_M				(1<<30)#define		DDMA_DESCCMD_V				(1<<31)/* *	Bit masks for descriptor count */#define		DDMA_DESCCNT_BC		   		(0)#define		DDMA_DESCCNT_BC_N(n)   		((n&0x1FFFF)<<DDMA_DESCCNT_BC)#define		DDMA_DESCCNT_FL		   		(22)#define		DDMA_DESCCNT_FL_N(n)   		((n&3)<<DDMA_DESCCNT_FL)#define		DDMA_DESCCNT_DUPTR	   		(24)#define		DDMA_DESCCNT_DUPTR_N(n)  	((n&4)<<DDMA_DESCCNT_DUPTR)#define		DDMA_DESCCNT_SUPTR	   		(28)#define		DDMA_DESCCNT_SUPTR_N(n)  	((n&4)<<DDMA_DESCCNT_SUPTR)/* *	Bit definitions for source stride/block 1 dimensional */#define		DDMA_DESCSRC_STRIDE_SS				(0)#define		DDMA_DESCSRC_STRIDE_SS_N(n)			((n&0x3fff)<<DDMA_DESCSRC_STRIDE_SS)#define		DDMA_DESCSRC_STRIDE_SB				(14)#define		DDMA_DESCSRC_STRIDE_SB_N(n)			((n&0x3Fff)<<DDMA_DESCSRC_STRIDE_SB)#define		DDMA_DESCSRC_STRIDE_SAM				(28)#define		DDMA_DESCSRC_STRIDE_SAM_N(n)		((n&3)<<DDMA_DESCSRC_STRIDE_SAM) #define	 	DDMA_DESCSRC_STRIDE_SAM_INC		DDMA_DESCSRC_STRIDE_SAM_N(0) #define     	DDMA_DESCSRC_STRIDE_SAM_DEC		DDMA_DESCSRC_STRIDE_SAM_N(1) #define	 	DDMA_DESCSRC_STRIDE_SAM_STATIC	DDMA_DESCSRC_STRIDE_SAM_N(2) #define	 	DDMA_DESCSRC_STRIDE_SAM_BURST	DDMA_DESCSRC_STRIDE_SAM_N(3)#define		DDMA_DESCSRC_STRIDE_STS				(30)#define		DDMA_DESCSRC_STRIDE_STS_N(n)  		((n&3)<<DDMA_DESCSRC_STRIDE_STS) #define		DDMA_DESCSRC_STRIDE_STS_1		DDMA_DESCSRC_STRIDE_STS_N(0) #define		DDMA_DESCSRC_STRIDE_STS_2		DDMA_DESCSRC_STRIDE_STS_N(1) #define		DDMA_DESCSRC_STRIDE_STS_4		DDMA_DESCSRC_STRIDE_STS_N(2) #define		DDMA_DESCSRC_STRIDE_STS_8		DDMA_DESCSRC_STRIDE_STS_N(3)											/* *	Bit definitions for source stride/block 2 dimensional */#define		DDMA_DESCSRC_STRIDE2DIM_SC				(0)#define		DDMA_DESCSRC_STRIDE2DIM_SC_N(n)			((n&0x3ff)<<DDMA_DESCSRC_STRIDE2DIM_SC)#define		DDMA_DESCSRC_STRIDE2DIM_SS				(11)#define		DDMA_DESCSRC_STRIDE2DIM_SS_N(n)			((n&0x1ff)<<DDMA_DESCSRC_STRIDE2DIM_SS)#define		DDMA_DESCSRC_STRIDE2DIM_SB				(21)#define		DDMA_DESCSRC_STRIDE2DIM_SB_N(n)			((n&0x07f)<<DDMA_DESCSRC_STRIDE2DIM_SB)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -