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

📄 m68360.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
📖 第 1 页 / 共 2 页
字号:
/* ************************************************************************** ************************************************************************** **                                                                      ** **  MOTOROLA MC68360 QUAD INTEGRATED COMMUNICATIONS CONTROLLER (QUICC)  ** **                                                                      ** **                        HARDWARE DECLARATIONS                         ** **                                                                      ** **                                                                      ** **  Submitted By:                                                       ** **                                                                      ** **      W. Eric Norum                                                   ** **      Saskatchewan Accelerator Laboratory                             ** **      University of Saskatchewan                                      ** **      107 North Road                                                  ** **      Saskatoon, Saskatchewan, CANADA                                 ** **      S7N 5C6                                                         ** **                                                                      ** **      eric@skatter.usask.ca                                           ** **                                                                      ** **  $Id: m68360.h,v 1.6 2003/02/06 17:46:19 joel Exp $                                                                ** **                                                                      ** ************************************************************************** ************************************************************************** */#ifndef __MC68360_h#define __MC68360_h/* ************************************************************************* *                         REGISTER SUBBLOCKS                            * ************************************************************************* *//* * Memory controller registers */typedef struct m360MEMCRegisters_ {	unsigned long		br;	unsigned long		or;	unsigned long		_pad[2];} m360MEMCRegisters_t;/* * Serial Communications Controller registers */typedef struct m360SCCRegisters_ {	unsigned long		gsmr_l;	unsigned long		gsmr_h;	unsigned short		psmr;	unsigned short		_pad0;	unsigned short		todr;	unsigned short		dsr;	unsigned short		scce;	unsigned short		_pad1;	unsigned short		sccm;	unsigned char		_pad2;	unsigned char		sccs;	unsigned long		_pad3[2];} m360SCCRegisters_t;/* * Serial Management Controller registers */typedef struct m360SMCRegisters_ {	unsigned short		_pad0;	unsigned short		smcmr;	unsigned short		_pad1;	unsigned char		smce;	unsigned char		_pad2;	unsigned short		_pad3;	unsigned char		smcm;	unsigned char		_pad4;	unsigned long		_pad5;} m360SMCRegisters_t;/* ************************************************************************* *                         Miscellaneous Parameters                      * ************************************************************************* */typedef struct m360MiscParms_ {	unsigned short		rev_num;	unsigned short		_res1;	unsigned long		_res2;	unsigned long		_res3;} m360MiscParms_t;/* ************************************************************************* *                              RISC Timers                              * ************************************************************************* */typedef struct m360TimerParms_ {	unsigned short		tm_base;	unsigned short		_tm_ptr;	unsigned short		_r_tmr;	unsigned short		_r_tmv;	unsigned long		tm_cmd;	unsigned long		tm_cnt;} m360TimerParms_t;/* * RISC Controller Configuration Register (RCCR) * All other bits in this register are either reserved or * used only with a Motorola-supplied RAM microcode packge. */#define M360_RCCR_TIME		(1<<15)	/* Enable timer */#define M360_RCCR_TIMEP(x)	((x)<<8)	/* Timer period *//* * Command register * Set up this register before issuing a M360_CR_OP_SET_TIMER command. */#define M360_TM_CMD_V		(1<<31)		/* Set to enable timer */#define M360_TM_CMD_R		(1<<30)		/* Set for automatic restart */#define M360_TM_CMD_TIMER(x)	((x)<<16)	/* Select timer */#define M360_TM_CMD_PERIOD(x)	(x)		/* Timer period (16 bits) *//* ************************************************************************* *                               DMA Controllers                         * ************************************************************************* */typedef struct m360IDMAparms_ {	unsigned short		ibase;	unsigned short		ibptr;	unsigned long		_istate;	unsigned long		_itemp;} m360IDMAparms_t;/* ************************************************************************* *                   Serial Communication Controllers                    * ************************************************************************* */typedef struct m360SCCparms_ {	unsigned short		rbase;	unsigned short		tbase;	unsigned char		rfcr;	unsigned char		tfcr;	unsigned short		mrblr;	unsigned long		_rstate;	unsigned long		_pad0;	unsigned short		_rbptr;	unsigned short		_pad1;	unsigned long		_pad2;	unsigned long		_tstate;	unsigned long		_pad3;	unsigned short		_tbptr;	unsigned short		_pad4;	unsigned long		_pad5;	unsigned long		_rcrc;	unsigned long		_tcrc;	union {		struct {			unsigned long		_res0;			unsigned long		_res1;			unsigned short		max_idl;			unsigned short		_idlc;			unsigned short		brkcr;			unsigned short		parec;			unsigned short		frmec;			unsigned short		nosec;			unsigned short		brkec;			unsigned short		brklen;			unsigned short		uaddr[2];			unsigned short		_rtemp;			unsigned short		toseq;			unsigned short		character[8];			unsigned short		rccm;			unsigned short		rccr;			unsigned short		rlbc;		} uart;		struct {			unsigned long		crc_p;			unsigned long		crc_c;		} transparent;	} un;} m360SCCparms_t;typedef struct m360SCCENparms_ {	unsigned short		rbase;	unsigned short		tbase;	unsigned char		rfcr;	unsigned char		tfcr;	unsigned short		mrblr;	unsigned long		_rstate;	unsigned long		_pad0;	unsigned short		_rbptr;	unsigned short		_pad1;	unsigned long		_pad2;	unsigned long		_tstate;	unsigned long		_pad3;	unsigned short		_tbptr;	unsigned short		_pad4;	unsigned long		_pad5;	unsigned long		_rcrc;	unsigned long		_tcrc;	union {		struct {			unsigned long		_res0;			unsigned long		_res1;			unsigned short		max_idl;			unsigned short		_idlc;			unsigned short		brkcr;			unsigned short		parec;			unsigned short		frmec;			unsigned short		nosec;			unsigned short		brkec;			unsigned short		brklen;			unsigned short		uaddr[2];			unsigned short		_rtemp;			unsigned short		toseq;			unsigned short		character[8];			unsigned short		rccm;			unsigned short		rccr;			unsigned short		rlbc;		} uart;		struct {			unsigned long		c_pres;			unsigned long		c_mask;			unsigned long		crcec;			unsigned long		alec;			unsigned long		disfc;			unsigned short		pads;			unsigned short		ret_lim;			unsigned short		_ret_cnt;			unsigned short		mflr;			unsigned short		minflr;			unsigned short		maxd1;			unsigned short		maxd2;			unsigned short		_maxd;			unsigned short		dma_cnt;			unsigned short		_max_b;			unsigned short		gaddr1;			unsigned short		gaddr2;			unsigned short		gaddr3;			unsigned short		gaddr4;			unsigned long		_tbuf0data0;			unsigned long		_tbuf0data1;			unsigned long		_tbuf0rba0;			unsigned long		_tbuf0crc;			unsigned short		_tbuf0bcnt;			unsigned short		paddr_h;			unsigned short		paddr_m;			unsigned short		paddr_l;			unsigned short		p_per;			unsigned short		_rfbd_ptr;			unsigned short		_tfbd_ptr;			unsigned short		_tlbd_ptr;			unsigned long		_tbuf1data0;			unsigned long		_tbuf1data1;			unsigned long		_tbuf1rba0;			unsigned long		_tbuf1crc;			unsigned short		_tbuf1bcnt;			unsigned short		_tx_len;			unsigned short		iaddr1;			unsigned short		iaddr2;			unsigned short		iaddr3;			unsigned short		iaddr4;			unsigned short		_boff_cnt;			unsigned short		taddr_h;			unsigned short		taddr_m;			unsigned short		taddr_l;		} ethernet;		struct {			unsigned long		crc_p;			unsigned long		crc_c;		} transparent;	} un;} m360SCCENparms_t;/* * Receive and transmit function code register bits * These apply to the function code registers of all devices, not just SCC. */#define M360_RFCR_MOT		(1<<4)#define M360_RFCR_DMA_SPACE	0x8#define M360_TFCR_MOT		(1<<4)#define M360_TFCR_DMA_SPACE	0x8/* ************************************************************************* *                     Serial Management Controllers                     * ************************************************************************* */typedef struct m360SMCparms_ {	unsigned short		rbase;	unsigned short		tbase;	unsigned char		rfcr;	unsigned char		tfcr;	unsigned short		mrblr;	unsigned long		_rstate;	unsigned long		_pad0;	unsigned short		_rbptr;	unsigned short		_pad1;	unsigned long		_pad2;	unsigned long		_tstate;	unsigned long		_pad3;	unsigned short		_tbptr;	unsigned short		_pad4;	unsigned long		_pad5;	union {		struct {			unsigned short		max_idl;			unsigned short		_pad0;			unsigned short		brklen;			unsigned short		brkec;			unsigned short		brkcr;			unsigned short		_r_mask;		} uart;		struct {			unsigned short		_pad0[5];		} transparent;	} un;} m360SMCparms_t;/* * Mode register */#define M360_SMCMR_CLEN(x)		((x)<<11)	/* Character length */#define M360_SMCMR_2STOP		(1<<10)	/* 2 stop bits */#define M360_SMCMR_PARITY		(1<<9)	/* Enable parity */#define M360_SMCMR_EVEN			(1<<8)	/* Even parity */#define M360_SMCMR_SM_GCI		(0<<4)	/* GCI Mode */#define M360_SMCMR_SM_UART		(2<<4)	/* UART Mode */#define M360_SMCMR_SM_TRANSPARENT	(3<<4)	/* Transparent Mode */#define M360_SMCMR_DM_LOOPBACK		(1<<2)	/* Local loopback mode */#define M360_SMCMR_DM_ECHO		(2<<2)	/* Echo mode */#define M360_SMCMR_TEN			(1<<1)	/* Enable transmitter */#define M360_SMCMR_REN			(1<<0)	/* Enable receiver *//* * Event and mask registers (SMCE, SMCM) */#define M360_SMCE_BRK	(1<<4)#define M360_SMCE_BSY	(1<<2)#define M360_SMCE_TX	(1<<1)#define M360_SMCE_RX	(1<<0)/* ************************************************************************* *                      Serial Peripheral Interface                      * ************************************************************************* */typedef struct m360SPIparms_ {	unsigned short		rbase;	unsigned short		tbase;	unsigned char		rfcr;	unsigned char		tfcr;	unsigned short		mrblr;	unsigned long		_rstate;	unsigned long		_pad0;	unsigned short		_rbptr;	unsigned short		_pad1;	unsigned long		_pad2;	unsigned long		_tstate;	unsigned long		_pad3;	unsigned short		_tbptr;	unsigned short		_pad4;	unsigned long		_pad5;} m360SPIparms_t;/* * Mode register (SPMODE) */#define M360_SPMODE_LOOP		(1<<14)	/* Local loopback mode */#define M360_SPMODE_CI			(1<<13)	/* Clock invert */#define M360_SPMODE_CP			(1<<12)	/* Clock phase */#define M360_SPMODE_DIV16		(1<<11)	/* Divide BRGCLK by 16 */#define M360_SPMODE_REV			(1<<10)	/* Reverse data */#define M360_SPMODE_MASTER		(1<<9)	/* SPI is master */#define M360_SPMODE_EN			(1<<8)	/* Enable SPI */#define M360_SPMODE_CLEN(x)		((x)<<4)	/* Character length */#define M360_SPMODE_PM(x)		(x)	/* Prescaler modulus *//* * Mode register (SPCOM) */#define M360_SPCOM_STR			(1<<7)	/* Start transmit *//* * Event and mask registers (SPIE, SPIM) */#define M360_SPIE_MME	(1<<5)		/* Multi-master error */#define M360_SPIE_TXE	(1<<4)		/* Tx error */#define M360_SPIE_BSY	(1<<2)		/* Busy condition*/#define M360_SPIE_TXB	(1<<1)		/* Tx buffer */#define M360_SPIE_RXB	(1<<0)		/* Rx buffer *//* ************************************************************************* *                 SDMA (SCC, SMC, SPI) Buffer Descriptors               * ************************************************************************* */typedef struct m360BufferDescriptor_ {	unsigned short		status;	unsigned short		length;	volatile void		*buffer;} m360BufferDescriptor_t;/* * Bits in receive buffer descriptor status word */#define M360_BD_EMPTY		(1<<15)	/* Ethernet, SCC UART, SMC UART, SPI */#define M360_BD_WRAP		(1<<13)	/* Ethernet, SCC UART, SMC UART, SPI */#define M360_BD_INTERRUPT	(1<<12)	/* Ethernet, SCC UART, SMC UART, SPI */#define M360_BD_LAST		(1<<11)	/* Ethernet, SPI */#define M360_BD_CONTROL_CHAR	(1<<11)	/* SCC UART */#define M360_BD_FIRST_IN_FRAME	(1<<10)	/* Ethernet */#define M360_BD_ADDRESS		(1<<10)	/* SCC UART */#define M360_BD_CONTINUOUS	(1<<9)	/* SCC UART, SMC UART, SPI */#define M360_BD_MISS		(1<<8)	/* Ethernet */#define M360_BD_IDLE		(1<<8)	/* SCC UART, SMC UART */#define M360_BD_ADDRSS_MATCH	(1<<7)	/* SCC UART */#define M360_BD_LONG		(1<<5)	/* Ethernet */#define M360_BD_BREAK		(1<<5)	/* SCC UART, SMC UART */#define M360_BD_NONALIGNED	(1<<4)	/* Ethernet */#define M360_BD_FRAMING_ERROR	(1<<4)	/* SCC UART, SMC UART */#define M360_BD_SHORT		(1<<3)	/* Ethernet */#define M360_BD_PARITY_ERROR	(1<<3)	/* SCC UART, SMC UART */#define M360_BD_CRC_ERROR	(1<<2)	/* Ethernet */#define M360_BD_OVERRUN		(1<<1)	/* Ethernet, SCC UART, SMC UART, SPI */#define M360_BD_COLLISION	(1<<0)	/* Ethernet */#define M360_BD_CARRIER_LOST	(1<<0)	/* SCC UART */#define M360_BD_MASTER_ERROR	(1<<0)	/* SPI *//* * Bits in transmit buffer descriptor status word * Many bits have the same meaning as those in receiver buffer descriptors. */#define M360_BD_READY		(1<<15)	/* Ethernet, SCC UART, SMC UART, SPI */#define M360_BD_PAD		(1<<14)	/* Ethernet */#define M360_BD_CTS_REPORT	(1<<11)	/* SCC UART */#define M360_BD_TX_CRC		(1<<10)	/* Ethernet */#define M360_BD_DEFER		(1<<9)	/* Ethernet */#define M360_BD_HEARTBEAT	(1<<8)	/* Ethernet */#define M360_BD_PREAMBLE	(1<<8)	/* SCC UART, SMC UART */#define M360_BD_LATE_COLLISION	(1<<7)	/* Ethernet */#define M360_BD_NO_STOP_BIT	(1<<7)	/* SCC UART */#define M360_BD_RETRY_LIMIT	(1<<6)	/* Ethernet */

⌨️ 快捷键说明

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