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

📄 cirrus.h

📁 讲述linux的初始化过程
💻 H
📖 第 1 页 / 共 2 页
字号:
/**************************************************************************** *******                                                              ******* *******		CIRRUS.H				      ******* *******                                                              ******* **************************************************************************** Author  : Jeremy Rolls Date    : 3 Aug 1990 * *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK. * *      This program is free software; you can redistribute it and/or modify *      it under the terms of the GNU General Public License as published by *      the Free Software Foundation; either version 2 of the License, or *      (at your option) any later version. * *      This program is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *      GNU General Public License for more details. * *      You should have received a copy of the GNU General Public License *      along with this program; if not, write to the Free Software *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Version : 0.01                            Mods ----------------------------------------------------------------------------  Date     By                Description ---------------------------------------------------------------------------- ***************************************************************************/#ifndef _cirrus_h#ifndef lint/* static char* _cirrus_h_sccs = "@(#)cirrus.h	1.16"; */#endif#define _cirrus_h 1#ifdef RTA#define	TO_UART	RX#define TO_DRIVER TX#endif#ifdef HOST#define	TO_UART	TX#define TO_DRIVER RX#endif#ifdef RTA/* Miscellaneous defines for CIRRUS addresses and related logic for   interrupts etc.*/#define	MAP(a)		((short *)(cirrus_base + (a)))#define outp(a,b)	(*MAP (a) =(b))#define inp(a)		((*MAP (a)) & 0xff)#define	CIRRUS_FIRST	(short*)0x7300#define	CIRRUS_SECOND	(short*)0x7200#define	CIRRUS_THIRD	(short*)0x7100#define	CIRRUS_FOURTH	(short*)0x7000#define	PORTS_ON_CIRRUS	4#define	CIRRUS_FIFO_SIZE	12#define	SPACE		0x20#define	TAB		0x09#define	LINE_FEED	0x0a#define	CARRIAGE_RETURN	0x0d#define	BACKSPACE	0x08#define	SPACES_IN_TABS	8#define	SEND_ESCAPE	0x00#define START_BREAK	0x81#define	TIMER_TICK	0x82#define STOP_BREAK	0x83#define BASE(a) ((a) < 4 ? (short*)CIRRUS_FIRST : ((a) < 8 ? (short *)CIRRUS_SECOND : ((a) < 12 ? (short*)CIRRUS_THIRD : (short *)CIRRUS_FOURTH)))#define txack1	((short *)0x7104) #define rxack1	((short *)0x7102) #define mdack1  ((short *)0x7106)#define txack2  ((short *)0x7006) #define rxack2	((short *)0x7004) #define mdack2  ((short *)0x7100) #define int_latch       ((short *) 0x7800)#define int_status      ((short *) 0x7c00) #define tx1_pending     0x20 #define rx1_pending     0x10 #define md1_pending     0x40 #define tx2_pending     0x02 #define rx2_pending     0x01 #define md2_pending     0x40 #define module1_bits	0x07#define module1_modern	0x08#define module2_bits	0x70#define module2_modern	0x80#define module_blank	0xf#define rs232_d25	0x0#define	rs232_rj45	0x1#define rs422_d25	0x3#define parallel	0x5#define	CLK0	0x00#define CLK1	0x01#define CLK2	0x02#define CLK3	0x03#define CLK4	0x04#define CIRRUS_REVC    0x42#define CIRRUS_REVE    0x44#define	TURNON	1#define TURNOFF 0/* The list of CIRRUS registers.    NB. These registers are relative values on 8 bit boundaries whereas   on the RTA's the CIRRUS registers are on word boundaries. Use pointer   arithmetic (short *) to obtain the real addresses required */#define ccr	0x05	/* Channel Command Register     */#define ier	0x06	/* Interrupt Enable Register    */#define cor1	0x08	/* Channel Option Register 1    */#define cor2	0x09	/* Channel Option Register 2    */#define cor3	0x0a	/* Channel Option Register 3    */#define cor4	0x1e	/* Channel Option Register 4    */#define	cor5	0x1f	/* Channel Option Register 5	*/#define ccsr	0x0b	/* Channel Control Status Register */#define rdcr	0x0e	/* Receive Data Count Register  */#define tdcr	0x12	/* Transmit Data Count Register */#define mcor1	0x15	/* Modem Change Option Register 1 */#define mcor2	0x16	/* Modem Change Option Regsiter 2 */#define livr	0x18	/* Local Interrupt Vector Register */#define schr1	0x1a	/* Special Character Register 1 */#define schr2	0x1b	/* Special Character Register 2 */#define schr3	0x1c	/* Special Character Register 3 */#define schr4	0x1d	/* Special Character Register 4 */#define rtr	0x20    /* Receive Timer Register */#define rtpr	0x21	/* Receive Timeout Period Register */#define lnc	0x24	/* Lnext character */#define rivr	0x43	/* Receive Interrupt Vector Register    */#define tivr	0x42	/* Transmit Interrupt Vector Register   */#define mivr	0x41	/* Modem Interrupt Vector Register      */#define gfrcr	0x40	/* Global Firmware Revision code Reg    */#define ricr	0x44	/* Receive Interrupting Channel Reg     */#define ticr	0x45	/* Transmit Interrupting Channel Reg    */#define micr	0x46	/* Modem Interrupting Channel Register  */#define gcr	0x4b	/* Global configuration register*/#define misr    0x4c    /* Modem interrupt status register */#define rbusr	0x59#define tbusr	0x5a#define mbusr	0x5b#define eoir	0x60	/* End Of Interrupt Register */#define rdsr	0x62	/* Receive Data / Status Register */#define tdr	0x63	/* Transmit Data Register */#define svrr	0x67	/* Service Request Register */#define car	0x68	/* Channel Access Register */#define mir	0x69	/* Modem Interrupt Register */#define tir	0x6a	/* Transmit Interrupt Register */#define rir	0x6b	/* Receive Interrupt Register */#define msvr1	0x6c	/* Modem Signal Value Register 1 */#define msvr2	0x6d	/* Modem Signal Value Register 2*/#define psvr	0x6f	/* Printer Signal Value Register*/#define tbpr	0x72	/* Transmit Baud Rate Period Register */#define tcor	0x76	/* Transmit Clock Option Register */#define rbpr	0x78	/* Receive Baud Rate Period Register */#define rber	0x7a	/* Receive Baud Rate Extension Register */#define rcor	0x7c	/* Receive Clock Option Register*/#define ppr	0x7e	/* Prescalar Period Register    *//* Misc registers used for forcing the 1400 out of its reset woes */#define airl	0x6d#define airm	0x6e#define airh	0x6f#define btcr	0x66#define mtcr	0x6c#define tber	0x74#endif				/* #ifdef RTA *//* Bit fields for particular registers *//* GCR */#define GCR_SERIAL	0x00	/* Configure as serial channel */#define GCR_PARALLEL	0x80	/* Configure as parallel channel *//* RDSR - when status read from FIFO */#define	RDSR_BREAK		0x08	/* Break received */#define RDSR_TIMEOUT    	0x80    /* No new data timeout */#define RDSR_SC1  	  	0x10    /* Special char 1 (tx XON) matched */#define RDSR_SC2  	  	0x20    /* Special char 2 (tx XOFF) matched */#define RDSR_SC12_MASK	  	0x30    /* Mask for special chars 1 and 2 *//* PPR */#define PPR_DEFAULT	0x31	/* Default value - for a 25Mhz clock gives				   a timeout period of 1ms *//* LIVR */#define	LIVR_EXCEPTION	0x07	/* Receive exception interrupt *//* CCR */#define	CCR_RESET	0x80	/* Reset channel */#define	CCR_CHANGE	0x4e	/* COR's have changed - NB always change all				   COR's */#define	CCR_WFLUSH	0x82	/* Flush transmit FIFO and TSR / THR */#define	CCR_SENDSC1	0x21	/* Send special character one */#define CCR_SENDSC2	0x22	/* Send special character two */#define CCR_SENDSC3	0x23	/* Send special character three */#define CCR_SENDSC4	0x24	/* Send special character four */#define CCR_TENABLE	0x18	/* Enable transmitter */#define	CCR_TDISABLE	0x14	/* Disable transmitter */#define CCR_RENABLE	0x12	/* Enable receiver */#define CCR_RDISABLE	0x11	/* Disable receiver */#define	CCR_READY	0x00	/* CCR is ready for another command *//* CCSR */#define CCSR_TXENABLE	0x08	/* Transmitter enable */#define CCSR_RXENABLE	0x80	/* Receiver enable */#define CCSR_TXFLOWOFF	0x04	/* Transmit flow off */#define CCSR_TXFLOWON	0x02	/* Transmit flow on *//* SVRR */#define	SVRR_RECEIVE	0x01	/* Receive interrupt pending */

⌨️ 快捷键说明

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