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

📄 ddma.h

📁 RMI的处理器au1200系列所用的BOOTLOAD,包括SD卡启动USB启动硬盘启动网络启动,并初始化硬件的所有参数,支持内核调试.
💻 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)#define		DDMA_DESCSRC_STRIDE2DIM_SAM				(28)#define		DDMA_DESCSRC_STRIDE2DIM_SAM_N(n)  		((n&3)<<DDMA_DESCSRC_STRIDE2DIM_SAM)

⌨️ 快捷键说明

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