📄 cvax.h
字号:
*/#define CVQCBADDR ((short *)(0x20084000))#define CVQCBSIZE 512/* * This is the Qbus Map Registers (8192 long words, 32K bytes, 64 pages), * PLUS the Unibus config registers (2K bytes, 4 pages). * * Note: the address 0x2008 7800 is 2Kbytes (0x800 bytes) before the address * of the Qbus map registers (0x2008 8000). */#define CVQBMADDR ((short *)(0x20087800))#define CVQBMSIZE (512*68)/* * VAX3600 (ka650): Mapping info for Fourth 'chunk' of Local Regs (3 pages) */#define CVQSSCADDR ((short *)(0x20140000))#define CVQSSCSIZE (512*3)/* * VAX3600 (ka650): Mapping info for Fifth 'chunk' of space (128 pages) */#define CVQCACHEADDR ((short *)(0x10000000))#define CVQCACHESIZE (512*128)/* * VAX3600 (ka650): Mapping info for Sixth 'chunk' of space (1 page) */#define CVQIPCRADDR ((short *)(0x20001E00))#define CVQIPCRSIZE (512)/* * VAX3600 (ka650): Mapping info for Seventh 'chunk' of space (1 page) */#define CVQROMADDR ((short *)(0x20040000))#define CVQROMSIZE (512)/* * Bits in DSER: DMA System Error Register (cvqmerr->cvq1_dser) */#define DSER_QNXM 0x00000080 /* <7> Q-22 Bus NXM */#define DSER_QPE 0x00000020 /* <5> Q-22 Bus parity Error */#define DSER_MEM 0x00000010 /* <4> Main mem err due to ext dev DMA */#define DSER_LOST 0x00000008 /* <3> Lost error: DSER <7,5,4,0> set */#define DSER_NOGRANT 0x00000004 /* <2> No Grant timeout on cpu demand R/W */#define DSER_DNXM 0x00000001 /* <0> DMA NXM */#define DSER_CLEAR (DSER_QNXM|DSER_QPE|DSER_MEM|DSER_LOST|DSER_NOGRANT|DSER_DNXM)/* * Time limits for errors. Recoverable errors are fatal if 3 errors occur * within the time period. All times are given in 10 ms units (100ths of secs) * to be used with the 10ms units of the standard VAX TODR. */#define TIME_THRESH 100 /* 1 sec max for most error types */#define TIME_THRESH_C1 6000 /* 60 sec max for 1st lev cache errs */#define TIME_THRESH_C2 30000 /* 5 mins max for 2nd lev cache errs *//* * External definitions for the module where each of these are used. */extern struct pte CVQSSCmap[]; /* maps to virtual ssc_regs */extern struct ssc_regs cvqssc[]; /* SSC regs */extern struct pte CVQBMmap[]; /* maps to virtual cvqbm */extern struct cvqbm_regs cvqbm[]; /* Qbus map registers */extern struct cqbic_regs ffqregs[]; /* Firefox CQBIC registers */extern struct ni_regs cvqni[]; /* Firefox NI regs, SA ROM & RAM buf */extern struct pte CVQNImap[];extern struct sii_regs cvqmsi[]; /* Firefox DSSI registers */extern struct pte CVQMSImap[];extern struct siibuf cvqmsirb[]; /* Firefox DSSI RAM buffer */extern struct pte CVQMSIRBmap[];extern struct ctsi ctsi[]; /* CTSIA (needed for Firefox LEGSS) */extern struct pte CTSImap[];extern char fgctsixs[]; /* CTSIA extended driver state */extern struct pte FGCTSIXSmap[];/* timers & counters for errors: used with following error bit... */extern struct cfpa_errcnt cfpa_errcnt; /* machine checks 1 thru 4 */extern struct cdal_errcnt cdal_errcnt; /* MSER_MCD */extern struct cache_errcnt cache_errcnt; /* MSER_MCC */extern struct qnxm_errcnt qnxm_errcnt; /* DSER_QNXM */extern struct qngr_errcnt qngr_errcnt; /* DSER_NOGRANT */extern struct qpe_errcnt qpe_errcnt; /* DSER_QPE */extern struct dnxm_errcnt dnxm_errcnt; /* DSER_DNXM */extern struct crd_errcnt crd_errcnt; /* MEM_CRD */extern struct cdalW_errcnt cdalW_errcnt; /* MEM_CDAL */extern struct rdsW_errcnt rdsW_errcnt; /* MEM_RDS */extern struct tag_errcnt tag_errcnt; /* CACR_CPE */extern char *mcCVAX[];#define CCA_V_BOOTIP 0x1 /* set: bootstrap being attempted */#define CCA_V_WARMIP 0x2 /* moved - where ??? */#define CCA_V_REBOOT 0x10 /* set: OS is requesting a reboot */#define CCA_V_NO_2ND_TEST 0x4 /* set: ??? */struct cca { char *cca_base; /* 4B: phs addr of cca */ short cca_size; /* 2B: size (in bytes) of cca */ char cca_indent0; /* 1B: ascii id (char 'C') */ char cca_indent1; /* 1B: ascii id (char 'C') */ char cca_nproc; /* 1B: max # procs which can be */ /* supported by this cca */ char cca_chksum; /* 1B: chksum of 1st 9 bytes */ char cca_hflag; /* 1B: flags: */ /* CCA_V_BOOTIP 0x01 */ /* CCA_V_USE_PCASHE 0x02 */ /* CCA_V_USE_BCASHE 0x04 */ /* CCA_V_BCASHE_CLEARABLE 0x08 */ /* CCA_V_REBOOT 0x10 */ /* CCA_V_REPROMPT 0x20 */ /* CCA_V_CON_REBOOT 0x40 */ char cca_b_revision; /* 1B: rev # for cca format */ unsigned long cca_ready; /* 8B: bitmask of processors which */ unsigned long cca_ready1; /* have data posted in trans buff */ unsigned long cca_console; /* 8B: bitmask of processors known */ unsigned long cca_console1; /* to be in console mode */ unsigned long cca_enabled; /* 8B: bitmask of which processors */ unsigned long cca_enabled1; /* are enabled to leave console */ /* mode */ unsigned long cca_bitmap_sz; /* 4B: size in bytes of phys mem */ /* bitmap */ unsigned long cca_bitmap; /* 4B: phys addre of phys mem bitmap */ unsigned long cca_bitmap_cksum; /* 4B: n/a in XRP (Rigel) */ unsigned long cca_tk50node; /* 1B: (+3B spare) node numbers */ /* bits 4-7 : XMI node number */ /* bits 0-3 : BI node number */ unsigned long cca_secstart; /* 8B: bitmask of processors */ unsigned long cca_secstart1; /* currently being started by */ /* primary processor */ unsigned long cca_restartip; /* 8B: bitmap of processors */ unsigned long cca_restartip1; /* currently attempting restarts */ unsigned long cca_resv1; /* 24B: 3 longwords of reserved space */ unsigned long cca_resv2; unsigned long cca_resv3; unsigned long cca_user_halted; /* 8B: bitmask of processors which */ unsigned long cca_user_halted1; /* entered consolke mode as a */ /* result of a ^P */ union cca_rev_dependent { struct { char cca_serialnum[12]; struct { char cvax_rev; char sccs_rev; char fpa_rev; char compat; int module_rev; } cca_revs[16]; char pad[284]; } cca_rev3; struct { char cca_serialnum[8]; /* 8B: least significant 8 chars */ /* of serial number stored in */ /* EEPROM */ struct { /* 16*8B=128B: array of 16 quadwords */ /* containing chip and module */ /* revision info for processors in */ /* the system */ char reserved1; /* 1B */ char reserved2; /* 1B */ char reserved3; /* 1B */ char compat; /* 1B: compatablility group?? */ char module_rev[4]; /* 4B: module rev */ } cca_revs[16]; unsigned long cca_vec_enabled1; unsigned long cca_vec_enabled2; /* 8B: bitmask of processors which */ /* have enabled vector processors */ unsigned long cca_vec_present1; unsigned long cca_vec_present2; /* 8B: bitmask of processors which */ /* have working vector processors */ struct { /* 16*4B=64B: vector processor rev */ /* info */ char cca_module_rev; /* 1B: binary copy of vector */ /* module # */ char cca_vectl_rev; /* 1B: binary copy of vectl */ /* chip rev */ short reserved; /* 2B: reserved */ } cca_vec_revision[16]; char pad[208]; } cca_rev4; } cca_rev_dependent; struct { /* 64*168B=10752B: once buffer area for */ /* each possible XMI node */ char flags; /* 1B: status flag */ /* RXRDY - a complete message is in rx */ char zdest; /* 1B: if set then XMI node # sending to */ char zsrc; /* 1B: if set then XMI node # receiving from */ char spare; /* 1B: */ char txlen; /* 1B: length of message in tx */ char rxlen; /* 1B: length of message in rx */ short zrxcd; /* 1B: char-at-a-time communicaiton */ char tx[80]; /* 80B: buffer for transmit to primary */ char rx[80]; /* 80B: buffer for receipt from primary */ } cca_buf[64];};struct cca ccabase;#define RXRDY 0x1struct ctsi_chan_blk { u_char ctcb_dvatr; /* Device attributes byte */ u_char ctcb_chatr; /* Channel attributes byte */ u_short ctcb_statesize; /* Driver state size */ char *ctcb_entry_p; /* Driver entry point physical addr */ char *ctcb_entry_v; /* Driver entry point virtual addr */ char *ctcb_iosegtbl_p; /* I/O Segment table physical addr */ char *ctcb_iosegtbl_v; /* I/O Segment table virtual addr */ char *ctcb_extdvrstate_p; /* Extended Driver State physical addr*/ char *ctcb_extdvrstate_v; /* Extended Driver State virtual addr */};struct ctsi_mode_desc { u_short ctmd_pgcnt; /* Module Descriptor page count */ u_short :16; /* unused */ char *ctmd_baseaddr; /* Base Address of Firmware Module */};struct ctsi_getchar_state { u_char ctgs_flags; /* Flags */ u_char ctgs_kbd; /* Keyboard */ u_short :16; /* unused */ u_long pad[3]; /* Reserved */};struct ctsi_putchar_state { u_char ctps_flags; /* Flags */ u_char :8; /* unused */ u_short :16; /* unused */ u_long pad[3]; /* unused */};struct ctsi { u_long ct_base; /* phys addr of base of CTSIA */ u_short ct_size; /* size in bytes of the CTSIAZZ */ u_short ct_ident; /* The ASCII characters "CT" */ u_char :8; /* unused */ u_char ct_cksum; /* Checksum */ u_char ct_flags; /* Flags used by CTSIA routines */ u_char ct_revisn; /* Rev. number for the CTSIA format */ struct ctsi_mode_desc ct_cons0; /* Console Mod Descriptor 0 */ struct ctsi_mode_desc ct_cons1; /* Console Mod Descriptor 1 */ struct ctsi_mode_desc ct_rcons0; /* Remote Console Desc. 0 */ struct ctsi_mode_desc ct_rcons1; /* Remote Console Desc. 1 */ struct ctsi_mode_desc ct_fcons; /* Fallback Conssole Desc. */ struct ctsi_mode_desc ct_ucons; /* Utility Console Descriptor */ struct ctsi_chan_blk ct_std_in; /* Standard Input Channel */ struct ctsi_chan_blk ct_std_out; /* Standard Output Channel */ struct ctsi_chan_blk ct_fb_in; /* Fallback Input Channel */ struct ctsi_chan_blk ct_fb_out; /* Fallback Output Channel */ struct ctsi_chan_blk ct_rmot_in; /* Remote Input Channel */ struct ctsi_chan_blk ct_rmot_out; /* Remote Output Channel */ char *ct_save_p; /* SAVE physical address */ char *ct_save_v; /* SAVE virutal address */ char *ct_restore_p; /* RESTORE physical address */ char *ct_restore_v; /* RESTORE virtual address */ char *ct_translate_p; /* TRANSLATE physical address */ char *ct_translate_v; /* TRANSLATE virtual address */ char *ct_getchar_p; /* GET_CHARACTER physical address */ char *ct_getchar_v; /* GET_CHARACTER virtual address */ struct ctsi_getchar_state ct_getchar_state; /* GET_CHARACTER state */ char *ct_putchar_p; /* PUT_CHARACTER physical address */ char *ct_putchar_v; /* PUT_CHARACTER virtual address */ struct ctsi_putchar_state ct_putchar_state; /* PUT_CHARACTER state */ char *ct_msgout_p; /* MESSAGE_OUT physical address */ char *ct_msgout_v; /* MESSAGE_OUT virtual address */ char *ct_rwp_p; /* READ_WITH_PROMPT physical address */ char *ct_rwp_v; /* READ_WITH_PROMPT virtual address */};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -