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