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

📄 skfbi.h

📁 h内核
💻 H
📖 第 1 页 / 共 5 页
字号:
#endif#ifndef	TCI#define	CLI_FBI_SMP(iop)	outp((iop)+IRQ_OTH_DIS,0)#else#define	CLI_FBI_SMP(iop)	outp((iop)+IRQ_OTH_DIS,0) ;\				outp((iop)+IRQ_TC_DIS,0)#endif#ifndef UNIX#define	STI_FBI()	outp(ADDR(IRQ_OTH_EN),0)#else#define	STI_FBI(smc)	outp(ADDRS((smc),IRQ_OTH_EN),0)#endif/* * Terminal count primitives */#define CLI_TCI(smc)	outp(ADDRS((smc),IRQ_TC_DIS),0)#define STI_TCI(smc)	outp(ADDRS((smc),IRQ_TC_EN),0)#define CHECK_TC(smc,k)	{(k) = 10000 ;\	while ((k) && (~inpw(ISR2_A) & IS_TC)) (k)-- ;\	if (!k) SMT_PANIC(smc,HWM_E0018,HWM_E0018_MSG) ; }#endif	/* MCA */#ifdef	ISA/* * address transmission from logic NPADDR6-0 to physical offset address on board */#define FMA(a)	(0x8000|(((a)&0x07)<<1)|(((a)&0x78)<<7))  /* FORMAC+ (r/w) */#define PRA(a)	(0x1000|(((a)&0x07)<<1)|(((a)&0x18)<<7))  /* PROM (read only)*/#define P1A(a)	(0x4000|(((a)&0x07)<<1)|(((a)&0x18)<<7))  /* PLC1 (r/w) */#define P2A(a)	(0x5000|(((a)&0x07)<<1)|(((a)&0x18)<<7))  /* PLC2 (r/w) */#define TIA(a)	(0x6000|(((a)&0x03)<<1))		  /* Timer (r/w) */#define	ISRA	0x0000		/* int. source register address (read only) */#define	ACLA	0x0000		/* address counter low address (write only) */#define	ACHA	0x0002		/* address counter high address (write only) */#define	TRCA	0x0004		/* transfer counter address (write only) */#define	PGRA	0x0006		/* page register address (write only) */#define RQAA	0x2000		/* Request reg. (write only) */#define	CSRA	0x3000		/* control/status register address (r/w) *//* * physical address offset + IO-Port base address */#define FM_A(a)	(FMA(a)+smc->hw.iop)	/* FORMAC Plus physical addr */#define PR_A(a)	(PRA(a)+smc->hw.iop)	/* PROM (read only)*/#define P1_A(a)	(P1A(a)+smc->hw.iop)	/* PLC1 (r/w) */#define P2_A(a)	(P2A(a)+smc->hw.iop)	/* PLC2 (r/w) */#define TI_A(a)	(TIA(a)+smc->hw.iop)	/* Timer (r/w) */#define	ISR_A	(0x0000+smc->hw.iop) /* int. source register address (read only) */#define	ACL_A	(0x0000+smc->hw.iop) /* address counter low address (write only) */#define	ACH_A	(0x0002+smc->hw.iop) /* address counter high address (write only)*/#define	TRC_A	(0x0004+smc->hw.iop) /* transfer counter address (write only) */#define	PGR_A	(0x0006+smc->hw.iop) /* page register address (write only) */#define RQA_A	(0x2000+smc->hw.iop) /* Request reg. (write only) */#define	CSR_A	(0x3000+smc->hw.iop) /* control/status register address (r/w) */#ifdef UNIX#define	CSR_AS(smc) (0x3000+(smc)->hw.iop) /* control/status register address */#endif#define	PLC1_I	(0x3400+smc->hw.iop) /* clear PLC1 interrupt bit */#define	PLC2_I	(0x3800+smc->hw.iop) /* clear PLC2 interrupt bit */#ifndef	MULT_OEM#ifndef	OEM_CONCEPT#define	SKLOGO_STR	"SKFDDI"#else	/* OEM_CONCEPT */#define	SKLOGO_STR	OEM_FDDI_LOGO#endif	/* OEM_CONCEPT */#endif  /* MULT_OEM */#define	SADDRL	(24)		/* start address SKLOGO */#define	SA_MAC	(0)		/* start addr. MAC_AD within the PROM */#define	PRA_OFF	(0)#define SA_PMD_TYPE	(8)	/* start addr. PMD-Type */#define	CDID	(PRA(SADDRL))	/* Card ID int/O port addr. offset */#define	NEXT_CDID	((PRA(SADDRL+1)) - CDID)#define	SKFDDI_PSZ	32		/* address PROM size */#define	READ_PROM(a)	((u_char)inpw(a))#define	GET_PAGE(i)	outpw(PGR_A,(int)(i))#define	MAX_PAGES	16		/* 16 pages */#define	MAX_FADDR	0x2000		/* 8K per page */#define	VPP_OFF()	outpw(CSR_A,(inpw(CSR_A) & (CS_CRESET|CS_BYPASS)))#define	VPP_ON()	outpw(CSR_A,(inpw(CSR_A) & (CS_CRESET|CS_BYPASS)) | \				CS_VPPSW)/* * control/status register CSRA	bits (log. addr: 0x3000) *//* write */#define CS_CRESET	0x01		/* Card reset (0=reset) */#define	CS_IMSK		0x02		/* enable IRQ (1=enable, 0=disable) */#define CS_RESINT1	0x04		/* PLINT1 reset */#define	CS_VPPSW	0x10		/* 12V power switch (0=off, 1=on) */#define CS_BYPASS	0x20		/* bypass switch (0=remove, 1=insert)*/#define CS_RESINT2	0x40		/* PLINT2 reset *//* read */#define	CS_BUSY		0x04		/* master transfer activ (=1) */#define	CS_SW_EPROM	0x08		/* 0=Application Soft. 1=BOOT-EPROM */#define	CS_BYSTAT	0x40		/* 0=Bypass exist, 1= ..not */#define	CS_SAS		0x80		/* single attachement station (=1) *//* * Interrupt source register ISRA (log. addr: 0x0000) read only & low activ. */#define IS_MINTR1	0x01		/* FORMAC ST1U/L && ~IMSK1U/L*/#define IS_MINTR2	0x02		/* FORMAC ST2U/L && ~IMSK2U/L*/#define IS_PLINT1	0x04		/* PLC1 */#define IS_PLINT2	0x08		/* PLC2 */#define IS_TIMINT	0x10		/* Timer 82C54-2 */#define	ALL_IRSR	(IS_MINTR1|IS_MINTR2|IS_PLINT1|IS_PLINT2|IS_TIMINT)#define	FPROM_SW()	(inpw(CSR_A)&CS_SW_EPROM)#define	DMA_BUSY()	(inpw(CSR_A)&CS_BUSY)#define CHECK_FIFO()#define	BUS_CHECK()/* * set Host Request register (wr.) */#define SET_HRQ(qup)	outpw(RQA_A+((qup)<<1),0)#ifndef UNIX#ifndef WINNT#define	CLI_FBI()	outpw(CSR_A,(inpw(CSR_A)&(CS_CRESET|CS_BYPASS|CS_VPPSW)))#else#define	CLI_FBI()	outpw(CSR_A,(l_inpw(CSR_A) & \				(CS_CRESET|CS_BYPASS|CS_VPPSW)))#endif#else#define	CLI_FBI(smc)	outpw(CSR_AS(smc),(inpw(CSR_AS(smc))& \						(CS_CRESET|CS_BYPASS|CS_VPPSW)))#endif#ifndef UNIX#define	STI_FBI()	outpw(CSR_A,(inpw(CSR_A) & \				(CS_CRESET|CS_BYPASS|CS_VPPSW)) | CS_IMSK)#else#define	STI_FBI(smc)	outpw(CSR_AS(smc),(inpw(CSR_AS(smc)) & \				(CS_CRESET|CS_BYPASS|CS_VPPSW)) | CS_IMSK)#endif#define CHECK_DMA()	{unsigned k = 10000 ;\			while (k && (DMA_BUSY())) k-- ;\			if (!k) SMT_PANIC(smc,HWM_E0003,HWM_E0003_MSG) ; }#define	GET_ISR()	~inpw(ISR_A)#endif	/* ISA *//*--------------------------------------------------------------------------*/#ifdef	PCI/* *	(DV)	= only defined for Da Vinci *	(ML)	= only defined for Monalisa *//* * Configuration Space header */#define	PCI_VENDOR_ID	0x00	/* 16 bit	Vendor ID */#define	PCI_DEVICE_ID	0x02	/* 16 bit	Device ID */#define	PCI_COMMAND	0x04	/* 16 bit	Command */#define	PCI_STATUS	0x06	/* 16 bit	Status */#define	PCI_REV_ID	0x08	/*  8 bit	Revision ID */#define	PCI_CLASS_CODE	0x09	/* 24 bit	Class Code */#define	PCI_CACHE_LSZ	0x0c	/*  8 bit	Cache Line Size */#define	PCI_LAT_TIM	0x0d	/*  8 bit	Latency Timer */#define	PCI_HEADER_T	0x0e	/*  8 bit	Header Type */#define	PCI_BIST	0x0f	/*  8 bit	Built-in selftest */#define	PCI_BASE_1ST	0x10	/* 32 bit	1st Base address */#define	PCI_BASE_2ND	0x14	/* 32 bit	2nd Base address *//* Byte 18..2b:	Reserved */#define	PCI_SUB_VID	0x2c	/* 16 bit	Subsystem Vendor ID */#define	PCI_SUB_ID	0x2e	/* 16 bit	Subsystem ID */#define	PCI_BASE_ROM	0x30	/* 32 bit	Expansion ROM Base Address *//* Byte 34..33:	Reserved */#define PCI_CAP_PTR	0x34	/*  8 bit (ML)	Capabilities Ptr *//* Byte 35..3b:	Reserved */#define	PCI_IRQ_LINE	0x3c	/*  8 bit	Interrupt Line */#define	PCI_IRQ_PIN	0x3d	/*  8 bit	Interrupt Pin */#define	PCI_MIN_GNT	0x3e	/*  8 bit	Min_Gnt */#define	PCI_MAX_LAT	0x3f	/*  8 bit	Max_Lat *//* Device Dependent Region */#define	PCI_OUR_REG	0x40	/* 32 bit (DV)	Our Register */#define	PCI_OUR_REG_1	0x40	/* 32 bit (ML)	Our Register 1 */#define	PCI_OUR_REG_2	0x44	/* 32 bit (ML)	Our Register 2 *//* Power Management Region */#define PCI_PM_CAP_ID	0x48	/*  8 bit (ML)	Power Management Cap. ID */#define PCI_PM_NITEM	0x49	/*  8 bit (ML)	Next Item Ptr */#define PCI_PM_CAP_REG	0x4a	/* 16 bit (ML)	Power Management Capabilities */#define PCI_PM_CTL_STS	0x4c	/* 16 bit (ML)	Power Manag. Control/Status *//* Byte 0x4e:	Reserved */#define PCI_PM_DAT_REG	0x4f	/*  8 bit (ML)	Power Manag. Data Register *//* VPD Region */#define	PCI_VPD_CAP_ID	0x50	/*  8 bit (ML)	VPD Cap. ID */#define PCI_VPD_NITEM	0x51	/*  8 bit (ML)	Next Item Ptr */#define PCI_VPD_ADR_REG	0x52	/* 16 bit (ML)	VPD Address Register */#define PCI_VPD_DAT_REG	0x54	/* 32 bit (ML)	VPD Data Register *//* Byte 58..ff:	Reserved *//* * I2C Address (PCI Config) * * Note: The temperature and voltage sensors are relocated on a different *	 I2C bus. */#define I2C_ADDR_VPD	0xA0	/* I2C address for the VPD EEPROM */ /* * Define Bits and Values of the registers *//*	PCI_VENDOR_ID	16 bit	Vendor ID *//*	PCI_DEVICE_ID	16 bit	Device ID *//* Values for Vendor ID and Device ID shall be patched into the code *//*	PCI_COMMAND	16 bit	Command */#define	PCI_FBTEN	0x0200	/* Bit 9:	Fast Back-To-Back enable */#define	PCI_SERREN	0x0100	/* Bit 8:	SERR enable */#define	PCI_ADSTEP	0x0080	/* Bit 7:	Address Stepping */#define	PCI_PERREN	0x0040	/* Bit 6:	Parity Report Response enable */#define	PCI_VGA_SNOOP	0x0020	/* Bit 5:	VGA palette snoop */#define	PCI_MWIEN	0x0010	/* Bit 4:	Memory write an inv cycl ena */#define	PCI_SCYCEN	0x0008	/* Bit 3:	Special Cycle enable */#define	PCI_BMEN	0x0004	/* Bit 2:	Bus Master enable */#define	PCI_MEMEN	0x0002	/* Bit 1:	Memory Space Access enable */#define	PCI_IOEN	0x0001	/* Bit 0:	IO Space Access enable *//*	PCI_STATUS	16 bit	Status */#define	PCI_PERR	0x8000	/* Bit 15:	Parity Error */#define	PCI_SERR	0x4000	/* Bit 14:	Signaled SERR */#define	PCI_RMABORT	0x2000	/* Bit 13:	Received Master Abort */#define	PCI_RTABORT	0x1000	/* Bit 12:	Received Target Abort */#define	PCI_STABORT	0x0800	/* Bit 11:	Sent Target Abort */#define	PCI_DEVSEL	0x0600	/* Bit 10..9:	DEVSEL Timing */#define	PCI_DEV_FAST	(0<<9)	/*		fast */#define	PCI_DEV_MEDIUM	(1<<9)	/*		medium */#define	PCI_DEV_SLOW	(2<<9)	/*		slow */#define	PCI_DATAPERR	0x0100	/* Bit 8:	DATA Parity error detected */#define	PCI_FB2BCAP	0x0080	/* Bit 7:	Fast Back-to-Back Capability */#define	PCI_UDF		0x0040	/* Bit 6:	User Defined Features */#define PCI_66MHZCAP	0x0020	/* Bit 5:	66 MHz PCI bus clock capable */#define PCI_NEWCAP	0x0010	/* Bit 4:	New cap. list implemented */#define PCI_ERRBITS	(PCI_PERR|PCI_SERR|PCI_RMABORT|PCI_STABORT|PCI_DATAPERR)/*	PCI_REV_ID	8 bit	Revision ID *//*	PCI_CLASS_CODE	24 bit	Class Code *//*	Byte 2:		Base Class		(02) *//*	Byte 1:		SubClass		(02) *//*	Byte 0:		Programming Interface	(00) *//*	PCI_CACHE_LSZ	8 bit	Cache Line Size *//*	Possible values: 0,2,4,8,16	*//*	PCI_LAT_TIM	8 bit	Latency Timer *//*	PCI_HEADER_T	8 bit	Header Type */#define	PCI_HD_MF_DEV	0x80	/* Bit 7:	0= single, 1= multi-func dev */#define	PCI_HD_TYPE	0x7f	/* Bit 6..0:	Header Layout 0= normal *//*	PCI_BIST	8 bit	Built-in selftest */#define	PCI_BIST_CAP	0x80	/* Bit 7:	BIST Capable */#define	PCI_BIST_ST	0x40	/* Bit 6:	Start BIST */#define	PCI_BIST_RET	0x0f	/* Bit 3..0:	Completion Code *//*	PCI_BASE_1ST	32 bit	1st Base address */#define	PCI_MEMSIZE	0x800L       /* use 2 kB Memory Base */#define	PCI_MEMBASE_BITS 0xfffff800L /* Bit 31..11:	Memory Base Address */#define	PCI_MEMSIZE_BIIS 0x000007f0L /* Bit 10..4:	Memory Size Req. */#define	PCI_PREFEN	0x00000008L  /* Bit 3:		Prefetchable */#define	PCI_MEM_TYP	0x00000006L  /* Bit 2..1:	Memory Type */#define	PCI_MEM32BIT	(0<<1)	     /* Base addr anywhere in 32 Bit range */#define	PCI_MEM1M	(1<<1)	     /* Base addr below 1 MegaByte */#define	PCI_MEM64BIT	(2<<1)	     /* Base addr anywhere in 64 Bit range */#define	PCI_MEMSPACE	0x00000001L  /* Bit 0:	Memory Space Indic. *//*	PCI_BASE_2ND	32 bit	2nd Base address */#define	PCI_IOBASE	0xffffff00L  /* Bit 31..8:  I/O Base address */#define	PCI_IOSIZE	0x000000fcL  /* Bit 7..2:   I/O Size Requirements */#define	PCI_IOSPACE	0x00000001L  /* Bit 0:	    I/O Space Indicator *//*	PCI_SUB_VID	16 bit	Subsystem Vendor ID *//*	PCI_SUB_ID	16 bit	Subsystem ID *//*	PCI_BASE_ROM	32 bit	Expansion ROM Base Address */#define	PCI_ROMBASE	0xfffe0000L  /* Bit 31..17: ROM BASE address (1st) */#define	PCI_ROMBASZ	0x0001c000L  /* Bit 16..14: Treat as BASE or SIZE */#define	PCI_ROMSIZE	0x00003800L  /* Bit 13..11: ROM Size Requirements */#define	PCI_ROMEN	0x00000001L  /* Bit 0:	    Address Decode enable *//*	PCI_CAP_PTR	8 bit	New Capabilities Pointers *//*	PCI_IRQ_LINE	8 bit	Interrupt Line *//*	PCI_IRQ_PIN	8 bit	Interrupt Pin *//*	PCI_MIN_GNT	8 bit	Min_Gnt *//*	PCI_MAX_LAT	8 bit	Max_Lat *//* Device Dependent Region *//*	PCI_OUR_REG	(DV)	32 bit	Our Register *//*	PCI_OUR_REG_1	(ML)	32 bit	Our Register 1 */				  /*	 Bit 31..29:	reserved */#define	PCI_PATCH_DIR	(3L<<27)  /*(DV) Bit 28..27:	Ext Patchs direction */#define PCI_PATCH_DIR_0	(1L<<27)  /*(DV) Type of the pins EXT_PATCHS<1..0>   */#define PCI_PATCH_DIR_1 (1L<<28)  /*	   0 = input			     */				  /*	   1 = output			     */#define	PCI_EXT_PATCHS	(3L<<25)  /*(DV) Bit 26..25:	Extended Patches     */#define PCI_EXT_PATCH_0 (1L<<25)  /*(DV)				     */#define PCI_EXT_PATCH_1 (1L<<26)  /*	 CLK for MicroWire (ML)		     */#define PCI_VIO		(1L<<25)  /*(ML)				     */#define	PCI_EN_BOOT	(1L<<24)  /*	 Bit 24:	Enable BOOT via ROM  */				  /*	   1 = Don't boot with ROM	     */				  /*	   0 = Boot with ROM		     */#define	PCI_EN_IO	(1L<<23)  /*	 Bit 23:	Mapping to IO space  */#define	PCI_EN_FPROM	(1L<<22)  /*	 Bit 22:	FLASH mapped to mem? */				  /*	   1 = Map Flash to Memory	     */			  	  /*	   0 = Disable all addr. decoding    */#define	PCI_PAGESIZE	(3L<<20)  /*	 Bit 21..20:	FLASH Page Size	     */#define	PCI_PAGE_16	(0L<<20)  /*		16 k pages		     */

⌨️ 快捷键说明

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