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

📄 ka60.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* * 	@(#)ka60.h	4.1	(ULTRIX)	7/2/90"; *//* * 	@(#)ka60.h	2.3	(ULTRIX)	5/12/89"; *//************************************************************************ *									* *			Copyright (c) 1986,87,88 by			* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any	other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or	reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//*********************************************************************** * * Modification History:	ka60.h * * 17-Jul-89	Darrell A. Dunnuck (darrell) *	Move some #defines here from fc.c, and add an external *	declaration for FFFQAMCSRmap[]. * * 07-Jul-89	Darrell Dunnuck (darrell) *	Moved constants that were in fc.c in UWS V2.1 to here *	where they really belong. * * 12-May-89	darrell *	Moved constants that were in ka60.c in UWS V2.0a to here *	where they really belong. * * 16-Jun-88	darrell *	Removed external structure definitions  for I/O space *	mapping that is no longer used. * * 12-7-87	darrell *	Creation of this file. * **********************************************************************/u_long *ka60_ip[16];/* * MBUS macroes *//* * Name:	MBUS_SLOT * * Args:	paddr - a physical address in Firefox Slot I/O space * * Returns:	The slot number corresponding to the physical address */#define MBUS_SLOT(paddr)   ((int)(((u_long)paddr & (u_long)0x0e000000) >> 25))/* * Name:	FF_WHICH_PROC * * Args:	paddr - a physical address in Firefox Slot I/O space * * Returns:	the constant FBIC_PROCA or FBIC_PROCB */#define FF_WHICH_PROC(paddr) ((u_long)(((u_long)paddr & (u_long)0x01000000) >> 22))/* * Name:	MBUS_BASEADDR * * Args:	slot - a Firefox M-Bus slot number - 0 to 7. * * Returns:	The base addr of the module in the given M-Bus slot */#define MBUS_BASEADDR(slot)	((u_long)MB_SLOT0_BASE + (slot << 25))/* * NVR physical Constants */#define FF_IO_SLOT	0x2014054A	/* NVR address containing IO Mod slot *//* * M-Bus physical constants */#define	MB_SLOT0_BASE	0x30000000	/* Physical base address of Slot 0    */#define MB_SLOT7_BASE	0x3e000000	/* Physical base address of Slot 7    */#define MB_SLOT_SIZE	0x02000000	/* Size of Mbus slot 		      *//* * Module Specfic Addresses */#define FF_SI_OFF	0x00000000	/* Start of SII Registers	      */#define FF_NI_OFF	0x00200000	/* Start of NI Registers	      */#define FF_SIB_OFF	0x00400000	/* Start of SII Buffer		      */#define FF_DZ_OFF	0x00600000	/* Start of Console DZ Registers      */#define FF_IOCSR_OFF	0x00800000	/* Start of IOCSR Register	      */#define FF_NIBUF_OFF	0x00A00000	/* Start of NI Buffer		      */#define FF_BSROM_OFF	0x00e00000	/* Start of Base System ROM (CPU Mod) */#define MB_FBIC_OFFSET	0x01fffe00	/* I/O page FBIC Regs		      */#define MB_2ND_FBIC_OFFSET 0x00fffe00	/* I/O page of Processor B FBIC Regs  */#define FF_SAROM_OFF	FF_IOCSR_OFF	/* Start of NI Station Address ROM    */#define FF_LEGSS	0x2		/* Device type of LEGSS		      */#define FF_FQAM_CSR	0x30600000	/* FQAM CSR register (slot 0 only)    *//* * Firefox constants */#define FMOD_FBIC 0x00010000		/* FBIC interface type */#define FMOD_FMDC 0x00020000		/* FMDC interface type */#define FMOD_FMCM FMOD_FIRESTARTER	/* Firestarter interface type */#define FBIC_ANALYZE	0x02		/* Use this FBIC information for					   error analysis		*/#define FBIC_VALID	0x01		/* This FBIC error info is valid */#define FMDC_ERROR 	0x80000000	/* FMDC Error Summary */#define FMDC_MBE	0x00000200	/* Multiple Bit Error		      */#define FMDC_SBE	0x00000100	/* Single Bit Error		      */#define FMDC_CNTLR	0xf0000000	/* High nibble of mb_node.mb_flags    */#define FQCSR_DUMP_ERR	0x00000002	/* Dump Error bit in FQAM CSR	      *//* * FMDC Memory error register bits */#define FMDCSR_EFS		0x80000000	/* Error Flag Summary	      */#define FMDCSR_ONLINE		0x40000000	/* Module online	      */#define FMDCSR_INH_SBE_REPORT	0x00400000	/* Inhibit SBE reporting      */#define FMDC_ECCSYDN_SBE	0x00000010	/* Single bit error	      */#define FMDC_ECCSYND_MBE	0x00000020	/* Multiple bit error	      *//* * Bits in MSER: Memory System Error Register (IPR 39) */#define FF_MSER_DAL	0x00000040	/* <6> CDAL or 2nd level cache data store parity */#define FF_MSER_MCD	0x00000020	/* <5> mcheck due to DAL parity error */#define FF_MSER_MCC	0x00000010	/* <4> mcheck due to 1st lev cache parity */#define FF_MSER_DAT	0x00000002	/* <1> data parity in 1st level cache */#define FF_MSER_TAG	0x00000001	/* <0> tag parity in 1st level cache */#define FF_MEM_CRD	0x20000000	/* Corrected Read Data */#define FF_MEM_RDS	0x80000000	/* Read Data Substitute *//* * FBIC registers */struct fbic_regs {	u_long	pad[113];	u_long	f_savgpr;	/* Scratch register for halt code	      */	u_long	f_pad1[2];	u_long	f_iadr2;	/* Interlock 2 address register		      */	u_long	f_iadr1;	/* Interlock 1 address register		      */	u_long	f_cpuid;	/* Unique hardware ID register		      */	u_long	f_whami;	/* Unique software ID register		      */	u_long	f_ipdvint;	/* Interprocessor/device interrupt register   */	u_long	f_range;	/* I/O space range decode register	      */	u_long	f_fbicsr;	/* FBIC control status register		      */	u_long	f_busdat;	/* M-bus error data signal log register	      */	u_long	f_busaddr;	/* M-bus error address signal log register    */	u_long	f_busctl;	/* M-bus error control signal log	      */	u_long	f_buscsr;	/* M-bus error status register		      */	u_long	f_modtype;	/* Module type register			      */};/* * FMDC registers */struct fmdc_regs {	u_long	pad[109];	u_long	fm_exp_selfsig;	/* Self test signature expect register	      */	u_long	fm_exp_dramsig;	/* DRAM control signature expect register     */	u_long	fm_exp_mbussig;	/* M-Bus control signature expect register    */	u_long	fm_ledlatch;	/* Diagnostics/self test LED latch	      */	u_long	fm_selfsig;	/* Self test signature register		      */	u_long	fm_dramsig;	/* DRAM control signature register	      */	u_long	fm_mbussig;	/* M-bus control signature register	      */	u_long	fm_msecterr;	/* Memory section had error register	      */	u_long	fm_eccsynd1;	/* Memory ECC error status reg.(QW1)	      */	u_long	fm_eccsynd0;	/* Memory ECC error status reg.(QW0)	      */	u_long	fm_eccaddr1;	/* Memory ECC error address reg.(QW0)	      */	u_long	fm_eccaddr0;	/* Memory ECC error address reg.(QW0)	      */	u_long	fm_baseaddr;	/* Memory space base address register	      */	u_long	fm_fmdcsr;	/* FMDC control/status register		      */	u_long	fm_busdat;	/* M-bus error data signal log register	      */	u_long	fm_busaddr;	/* M-bus error address signal log register    */	u_long	fm_busctl;	/* M-bus error control signal log register    */	u_long	fm_buscsr;	/* M-bus error status register		      */	u_long	fm_modtype;	/* Module type register			      */};/* * FBIC MODTYPE Register */#define	FMOD_QBUS	0x01		/* FBIC Q-bus Adaptor Module	      */#define FMOD_GRAPHICS	0x02		/* FBIC Graphics Module		      */#define FMOD_IO		0x04		/* FBIC I/O Module		      */#define FMOD_CPU	0x08		/* FBIC CPU Module		      */#define FMOD_MEM	0x10		/* FMDC Memory Module		      */#define FMOD_FIRESTARTER 0x00FE0000	/* Firestarter Memory		      */#define FMOD_REV	0xff000000	/* Revision Mask		      */#define FMOD_INTERFACE	0x00ff0000	/* Interface Mask		      */#define FMOD_SUBCLASS	0x0000ff00	/* Subclass Mask		      */#define FMOD_CLASS	0x000000ff	/* Class Mask			      *//* * FBIC BUSCSR Register * * NOTE: BUSCSR register bits are active low. */#define	FBCSR_FRZN	0x80000000	/* M-bus Error Logging Frozen	      */#define	FBCSR_ARB	0x40000000	/* M-bus Arbitration Error	      */#define FBCSR_ICMD	0x20000000	/* M-bus Invalid MCMD Encoding	      */#define FBCSR_IDAT	0x10000000	/* M-bus Invalid Data Supplied	      */#define FBCSR_MTPE	0x08000000	/* M-bus Tag Parity Error	      */#define FBCSR_MDPE	0x04000000	/* M-bus MDAL Parity Error	      */#define FBCSR_MSPE	0x02000000	/* M-bus STATUS Parity Error	      */#define FBCSR_MCPE	0x01000000	/* M-Bus MCMD Parity Error	      */#define FBCSR_ILCK	0x00800000	/* M-bus Interlock Violation	      */#define FBCSR_MTO	0x00400000	/* M-bus Slave Timeout		      */#define FBCSR_NOS	0x00200000	/* M-bus No Slave Response	      */#define FBCSR_CTO	0x00100000	/* CDAL Timeout			      */#define FBCSR_CDPE	0x00080000	/* CDAL Parity Error		      */#define FBCSR_CTPE	0x00040000	/* CDAL Tag Store Parity Error	      */#define FBCSR_CLEAR	0xffffffff	/* Used to re-enable error logging    *//* * FBIC FBICSR Register */#define FFCSR_EXCAEN	0x04000000	/* External Cache Enable	      */#define FFCSR_HALTCPU	0x02000000	/* C-bus HALT Control		      */#define FFCSR_RESET	0x01000000	/* C-bus RESET Control		      */#define FFCSR_IRQE_3	0x00800000	/* Interrupt Request Enable CIRQ3     */#define FFCSR_IRQE_2	0x00400000	/* Interrupt Request Enable CIRQ2     */#define FFCSR_IRQE_1	0x00200000	/* Interrupt Request Enable CIRQ1     */#define FFCSR_IRQE_0	0x00100000	/* Interrupt Request Enable CIRQ0     */#define FFCSR_IRQD_3	0x00080000	/* Interrupt Request Direction	      */#define FFCSR_IRQD_2	0x00040000	/* Interrupt Request Direction	      */#define FFCSR_IRQD_1	0x00020000	/* Interrupt Request Direction	      */#define FFCSR_IRQD_0	0x00010000	/* Interrupt Request Direction	      */					/* 1 = CIRQ -> MIRQ, 0 = MIRQ -> CIRQ */#define FFCSR_LEDS_OFF	0x00003f00	/* All LEDS off			      */#define FFCSR_HALTEN	0x00000080	/* Enable CPU Halts		      */#define FFCSR_PRI0EN	0x00000040	/* Mbus Hog mode		      */#define FFCSR_NORMAL	0x0000003e	/* FBIC Diagnostic Test Funciton Mask */#define FFCSR_CDPE	0x00000001	/* C-bus Parity Check Enable	      */#define FFCSR_IRQE_X	FFCSR_IRQE_3|FFCSR_IRQE_2|FFCSR_IRQE_1|FFCSR_IRQE_0#define FFCSR_IRQD_X	FFCSR_IRQD_3|FFCSR_IRQD_2|FFCSR_IRQD_1|FFCSR_IRQD_0/* * FBIC RANGE Register */#define FRANGE_ENA	0x00008000	/* M-Bus I/O-Space Addr-Range Enable  *//* * FBIC IPDVINT Register */#define FIPD_IPL17	0x08000000	/* Generate IPL 17 Interrupt	      */#define FIPD_IPL16	0x04000000	/* Generate IPL 16 Interrupt	      */#define FIPD_IPL15	0x02000000	/* Generate IPL 15 Interrupt	      */#define FIPD_IPL14	0x01000000	/* Generate IPL 14 Interrupt	      */#define FIPD_IPUNIT	0x00020000	/* Interprocessor-Interrupt Unit      */#define FIPD_DEVUNIT	0x00010000	/* Device-Interrupt Unit	      *//* * FBIC CPUID Register */#define FCPU_PROCB	0x00000000	/* Identifier for Processor B	      */#define FCPU_PROCA	0x00000003	/* Identifier for Processor A	      */#define FCPU_MID_MSK	0x0000001c	/* Module Slot Itentifier Mask	      *//* * VAX60 (ka60) Console ROM space. *    Has sys_type register. * At 0x2004 0000 in VAX Memory space; mapped to "ffcrom" */struct ffcrom_regs {	u_long pad;             /* sys_type register is 2nd long word	      */	u_short	ffcrom_licbits;	/* Digital Product License Bits <TBD>	      */        u_char ffcrom_firmrev;	/* ka60 firmware rev level		      */	u_char ffcrom_systype;	/* identifies systype of this chip set	      */};/* * There is one mb_node structure per Mbus node (FBIC/FMDC) */struct mb_node {	u_long	mb_modtype;		/* Module Type			      */	u_long	mb_physaddr;		/* Physical Addr of FBIC regs	      */	struct fbic_regs *mb_vaddr;	/* Virtual Addr of FBIC regs	      */	u_long	mb_flags;		/* Flags			      */	u_long	mb_slot;		/* Slot this module is plugged into   */}; /* * mb_node flags */#define	FBIC_MAPPED	0x00000001	/* FBIC regs mapped		      */#define FBIC_ALIVE	0x00000002	/* FBIC is alive		      */#define FBIC_PROCA	0x00000004	/* Processor A on this Module	      */#define FBIC_PROCB	0x00000008	/* Processor B on this Module	      */#define FBIC_PRI_CPU	0x00000010	/* This is the primary CPU	      */#define FBIC_SEC_CPU	0X00000020	/* This is a secondary CPU	      *//* * External declarations of the map names (declared  in spt.s) * for the VAX60 (ka60) local register space. */extern struct pte FFQBMmap[];		/* maps to virtual cvqbm	      */extern struct cvqbm_regs cvqbm[];	/* Qbus map regs		      */extern struct pte FFQREGmap[];		/* maps to virtual ffqreg	      */extern struct cqbic_regs ffqregs[];	/* mem err & mem config regs	      */extern struct pte CVQSSCmap[];		/* maps to virtual cvqssc	      */extern struct ssc_regs cvqssc[];	/* SSC registers		      */extern struct pte FFCONSmap[];		/* maps to virtual ffcons	      */extern struct fc_regs ffcons[];		/* Console DZ registers		      */extern struct pte FFCROMmap[];		/* maps to virtual ffcrom	      */extern struct ffcrom_regs ffcrom[];	/* Console ROM registers	      */extern struct pte FFIOmap[];		/* maps to virtual ffio		      */extern struct fbic_regs ffiom[];	/* FBIC registers		      */extern struct pte FFIOCSRmap[];		/* maps to virtual ffiocsr	      */extern struct ffiocsr ffiocsr[];	/* IOCSR register		      */extern struct pte FFFQAMCSRmap[];	/* Maps to virtual fqamcsr	      */

⌨️ 快捷键说明

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