1 /* $NetBSD: rpb.h,v 1.8 2002/12/01 21:21:45 matt Exp $ */ 2 /* 3 * Copyright (c) 1995 Ludd, University of Lule}, Sweden. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Ludd by Bertram Barth. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. All advertising materials mentioning features or use of this software 17 * must display the following acknowledgement: 18 * This product includes software developed at Ludd, University of 19 * Lule}, Sweden and its contributors. 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 25 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 26 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 28 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 32 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 #ifndef _VAX_RPB_H_ 35 #define _VAX_RPB_H_ 36 37 /* 38 * Look at "VAX/VMS Internals and Data Structures" around page 907 39 * to get more info about RPB. 40 */ 41 42 struct rpb { /* size description */ 43 struct rpb *rpb_base; /* 4 physical base address of block */ 44 void (*rpb_restart)/* 4 physical address of restart routine */ 45 __P((void)); 46 long rpb_chksum;/* 4 checksum of first 31 longwords of restart */ 47 long rpb_rstflg; /* 4 Restart in progress flag */ 48 long rpb_haltpc; /* 4 PC at HALT/restart */ 49 /* offset: 20 */ 50 long rpb_haltpsl;/* 4 PSL at HALT/restart */ 51 long rpb_haltcode;/* 4 reason for restart */ 52 long rpb_bootr0;/* 24 Saved bootstrap parameters (R0 through R5) */ 53 long rpb_bootr1; 54 long rpb_bootr2; 55 long rpb_bootr3; 56 long rpb_bootr4; 57 long rpb_bootr5; 58 long iovec; /* 4 Address of bootstrap driver */ 59 long iovecsz;/* 4 Size (in bytes) of bootstrap driver */ 60 /* offset: 60 */ 61 long fillbn; /* 4 LBN of seconday bootstrap file */ 62 long filsiz; /* 4 Size (in blocks) of seconday bootstrap file */ 63 long pfnmap[2]; /* 8 Descriptor of PFN bitmap */ 64 long pfncnt; /* 4 Count of physical pages */ 65 /* offset: 80 */ 66 long svaspt; /* 4 system virtual address of system page table */ 67 long csrphy; /* 4 Physical Address of UBA device CSR */ 68 long csrvir; /* 4 Virtual Address of UBA device CSR */ 69 long adpphy; /* 4 Physical Address of adapter configurate reg. */ 70 long adpvir; /* 4 Virtual Address of adapter configurate reg. */ 71 /* offset: 100 */ 72 short unit; /* 2 Bootstrap device unit number */ 73 u_char devtyp; /* 1 Bootstrap device type code */ 74 u_char slave; /* 1 Bootstrap device slave unit number */ 75 char file[40]; /* 40 Secondary bootstrap file name */ 76 u_char confreg[16]; /* 16 Byte array of adapter types */ 77 /* offset: 160 */ 78 #if 0 79 u_char hdrpgcnt; /* 1 Count of header pages in 2nd bootstrap image */ 80 short bootndt;/* 2 Type of boot adapter */ 81 u_char flags; /* 1 Miscellaneous flag bits */ 82 #else 83 long align; /* if the compiler doesnt proper alignment */ 84 #endif 85 long max_pfn;/* 4 Absolute highest PFN */ 86 long sptep; /* 4 System space PTE prototype register */ 87 long sbr; /* 4 Saved system base register */ 88 long cpudbvec;/* 4 Physical address of per-CPU database vector */ 89 /* offset: 180 */ 90 long cca_addr; /* 4 Physical address of CCA */ 91 long slr; /* 4 Saved system length register */ 92 long memdesc[16]; /* 64 Longword array of memory descriptors */ 93 long smp_pc; /* 4 SMP boot page physical address */ 94 long wait; /* 4 Bugcheck loop code for attached processor */ 95 /* offset: 260 */ 96 long badpgs; /* 4 Number of bad pages found in memory scan */ 97 u_char ctrlltr;/* 1 Controller letter designation */ 98 u_char scbpagct; /* 1 SCB page count */ 99 u_char reserved[6]; /* 6 -- */ 100 long vmb_revision; /* 4 VMB revision label */ 101 }; 102 103 /* 104 * Bootstrap device number encoding. 105 */ 106 #define BDEV_HP 0 107 #define BDEV_RK 1 108 #define BDEV_RL 2 109 #define BDEV_IDC 3 110 #define BDEV_UDA 17 111 #define BDEV_TK 18 112 #define BDEV_HSC 32 113 #define BDEV_KDB 33 114 #define BDEV_KRB 34 115 #define BDEV_NK 35 116 #define BDEV_RD 36 /* ST506/MFM disk on HDC9224 */ 117 #define BDEV_ST 37 /* SCSI tape on NCR5380 */ 118 #define BDEV_SD 42 /* SCSI disk on NCR5380 */ 119 #define BDEV_SDN 46 /* SCSI disk on NCR5394 (VS4000) */ 120 #define BDEV_CNSL 64 121 #define BDEV_QE 96 122 #define BDEV_DE 97 123 #define BDEV_NI 98 124 #define BDEV_LE 99 125 #define BDEV_ZE 100 126 127 #ifdef _KERNEL 128 extern struct rpb rpb; 129 #endif 130 131 #endif /* _VAX_RPB_H_ */ 132