1 /* ubareg.h 4.2 12/17/80 */ 2 3 /* 4 * Unibus adapter 5 */ 6 7 #define UBA0 0x80060000 /* sys virt i/o for UBA 0 */ 8 #define UBA0_DEV (UBA0+0x2000-0160000) /* sys virt of device regs */ 9 #define UNIBASE 0760000 /* UNIBUS phys base of i/o reg's */ 10 11 #if VAX==780 12 /* UBA Configuration Register, CNFGR */ 13 #define PARFLT 0x80000000 /* SBI Parity Fault */ 14 #define WSQFLT 0x40000000 /* SBI Write Sequence Fault */ 15 #define URDFLT 0x20000000 /* SBI Unexpected Read Fault */ 16 #define ISQFLT 0x10000000 /* SBI Interlock Sequence Fault */ 17 #define MXTFLT 0x8000000 /* SBI Multiple Transmitter Fault */ 18 #define XMTFLT 0x4000000 /* UBA is transmit faulter */ 19 #define ADPDN 0x800000 /* Adapter Power Down */ 20 #define ADPUP 0x400000 /* Adapter Power Up */ 21 #define UBINIT 0x40000 /* UNIBUS INIT is asserted */ 22 #define UBPDN 0x20000 /* UNIBUS Power Down */ 23 #define UBIC 0x10000 /* UNIBUS Initialization */ 24 /* UNIBUS Ready */ 25 #define UBACOD 0xff /* UBA Code bits */ 26 27 /* UBA Control Register, UBACR */ 28 29 #define MRD16 0x40000000 /* Map Reg Disable Bit 4 */ 30 #define MRD8 0x20000000 /* Map Reg Disable Bit 3 */ 31 #define MRD4 0x10000000 /* Map Reg Disable Bit 2 */ 32 #define MRD2 0x8000000 /* Map Reg Disable Bit 1 */ 33 #define MRD1 0x4000000 /* Map Reg Disable Bit 0 */ 34 #define IFS 0x40 /* Interrupt Field Switch */ 35 #define BRIE 0x20 /* BR Interrupt Enable */ 36 #define USEFIE 0x10 /* UNIBUS to SBI Error Field IE */ 37 #define SUEFIE 0x8 /* SBI to UNIBUS Error Field IE */ 38 #define CNFIE 0x4 /* Configuration IE */ 39 #define UPF 0x2 /* UNIBUS Power Fail */ 40 #define ADINIT 0x1 /* Adapter Init */ 41 42 /* UBA Status Register, UASR */ 43 #define BR7FULL 0x8000000 /* BR7 Receive Vector Rg Full */ 44 #define BR6FULL 0x4000000 /* BR6 Receive Vector Reg Full */ 45 #define BR5FULL 0x2000000 /* BR5 Receive Vector Reg Full */ 46 #define BR4FULL 0x1000000 /* BR4 Receive Vector Reg Full */ 47 #define RDTO 0x400 /* UNIBUS to SBI Read Data Timeout */ 48 #define RDS 0x200 /* Read Data Substitute */ 49 #define CRD 0x100 /* Corrected Read Data */ 50 #define CXTER 0x80 /* Command Transmit Error */ 51 #define CXTMO 0x40 /* Command Transmit Timeout */ 52 #define DPPE 0x20 /* Data Path Parity Error */ 53 #define IVMR 0x10 /* Invalid Map Register */ 54 #define MRPF 0x8 /* Map Register Parity Failure */ 55 #define LEB 0x4 /* Lost Error */ 56 #define UBSTO 0x2 /* UNIBUS Select Timeout */ 57 #define UBSSTO 0x1 /* UNIBUS Slave Sync Timeout */ 58 59 /* Failed Map Entry Register, FMER */ 60 61 #define FMRN 0x1ff /* Failed Map Reg. No. Field */ 62 63 /* Failed UNIBUS Address Register, FUBAR */ 64 #define FUA 0xffff /* Failed UNIBUS Address Field */ 65 66 /* BR Receive Vector register, BRRVR */ 67 #define AIRI 0x80000000 /* Adapter Interrupt Request */ 68 #define DIV 0xffff /* Device Interrupt Vector Field */ 69 #endif 70 71 /* Data Path Register, DPR */ 72 #define BNE 0x80000000 /* Buffer Not Empty - Purge */ 73 #define BTE 0x40000000 /* Buffer Transfer Error */ 74 #define DPF 0x20000000 /* DP Function (RO) */ 75 #define BS 0x7f0000 /* Buffer State Field */ 76 #define BUBA 0xffff /* Buffered UNIBUS Address */ 77 78 /* Map Register, MR */ 79 #define MRV 0x80000000 /* Map Register Valid */ 80 #define BO 0x2000000 /* Byte Offset Bit */ 81 #define DPDB 0x1e00000 /* Data Path Designator Field */ 82 #define SBIPFN 0xfffff /* SBI Page Address Field */ 83 84 /* 85 * Unibus maps 86 */ 87 #ifdef KERNEL 88 #define UAMSIZ 50 89 90 struct map ubamap[UAMSIZ]; 91 char bdpwant; /* someone is waiting for buffered data path */ 92 #if VAX==780 93 #define NUBABDP 15 94 #else 95 #define NUBABDP 3 96 #endif 97 98 struct map bdpmap[NUBABDP]; 99 char umrwant; /* ... for unibus map registers */ 100 #endif 101 102 /* 103 * UBA registers 104 */ 105 106 struct uba_regs 107 { 108 int uba_cnfgr; 109 int uba_cr; 110 int uba_sr; 111 int uba_dcr; 112 int uba_fmer; 113 int uba_fubar; 114 int pad1[2]; 115 int uba_brsvr[4]; 116 int uba_brrvr[4]; 117 int uba_dpr[16]; 118 int pad2[480]; 119 struct pte uba_map[496]; 120 }; 121 122 union ub_info { 123 struct ub_Info { 124 unsigned int Ub_off:18, 125 Ub_npf:10, 126 Ub_bdp:4; 127 } ub_I; 128 int ub_word; 129 }; 130 131 #define ub_off ub_I.Ub_off 132 #define ub_npf ub_I.Ub_npf 133 #define ub_bdp ub_I.Ub_bdp 134