summaryrefslogtreecommitdiff
path: root/sys/arch/vax/include/rpb.h
blob: 1a4438b7c8aec92db7f2e33e00d342c18f90db66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*	$OpenBSD: rpb.h,v 1.11 2008/08/18 23:19:24 miod Exp $ */
/*	$NetBSD: rpb.h,v 1.6 1998/07/01 09:37:11 ragge Exp $ */
/*
 * Copyright (c) 1995 Ludd, University of Lule}, Sweden.
 * All rights reserved.
 *
 * This code is derived from software contributed to Ludd by Bertram Barth.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed at Ludd, University of 
 *      Lule}, Sweden and its contributors.
 * 4. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * Look at "VAX/VMS Internals and Data Structures" around page 907
 * to get more info about RPB.
 */

struct rpb {		/* size		description */
	struct rpb *rpb_base;	/* 4  physical base address of block */
	void	(*rpb_restart)(void);/* 4  physical address of restart routine */
	long	rpb_chksum;/* 4  checksum of first 31 longwords of restart */
	long	rpb_rstflg;	/* 4  Restart in progress flag */
	long	rpb_haltpc;	/* 4  PC at HALT/restart */
			/* offset: 20 */
	long	rpb_haltpsl;/* 4  PSL at HALT/restart */
	long	rpb_haltcode;/* 4  reason for restart */
	long	rpb_bootr0;/* 24  Saved bootstrap parameters (R0 through R5) */
	long	rpb_bootr1;
	long	rpb_bootr2;
	long	rpb_bootr3;
	long	rpb_bootr4;
	long	rpb_bootr5;
	long	iovec;	/* 4  Address of bootstrap driver */
	long	iovecsz;/* 4  Size (in bytes) of bootstrap driver */
			/* offset: 60 */
	long	fillbn;	/* 4  LBN of seconday bootstrap file */
	long	filsiz;	/* 4  Size (in blocks) of seconday bootstrap file */
	long	pfnmap[2];	/* 8  Descriptor of PFN bitmap */
	long	pfncnt;	/* 4  Count of physical pages */
			/* offset: 80 */
	long	svaspt;	/* 4  system virtual address of system page table */
	long	csrphy;	/* 4  Physical Address of UBA device CSR */
	long	csrvir;	/* 4  Virtual Address of UBA device CSR */
	long	adpphy;	/* 4  Physical Address of adapter configurate reg. */
	long	adpvir;	/* 4  Virtual Address of adapter configurate reg. */
			/* offset: 100 */
	short	unit;	/* 2  Bootstrap device unit number */
	u_char	devtyp;	/* 1  Bootstrap device type code */
	u_char	slave;	/* 1  Bootstrap device slave unit number */
	char	file[40];	/* 40  Secondary bootstrap file name */
	u_char	confreg[16];	/* 16  Byte array of adapter types */
			/* offset: 160 */
#if 0
	u_char	hdrpgcnt; /* 1  Count of header pages in 2nd bootstrap image */
	short	bootndt;/* 2  Type of boot adapter */
	u_char	flags;	/* 1  Miscellaneous flag bits */
#else
	long	align;	/* if the compiler doesnt proper alignment */
#endif
	long	max_pfn;/* 4  Absolute highest PFN */
	long	sptep;	/* 4  System space PTE prototype register */
	long	sbr;	/* 4  Saved system base register */
	long	cpudbvec;/* 4  Physical address of per-CPU database vector */
			/* offset: 180 */
	long	cca_addr;	/* 4  Physical address of CCA */
	long	slr;	/* 4  Saved system length register */
	long	memdesc[16];	/* 64  Longword array of memory descriptors */
	long	smp_pc;	/* 4  SMP boot page physical address */
	long	wait;	/* 4  Bugcheck loop code for attached processor */
			/* offset: 260 */
	long	badpgs;	/* 4  Number of bad pages found in memory scan */
	u_char	ctrlltr;/* 1  Controller letter designation */
	u_char	scbpagct;	/* 1  SCB page count */
	u_char	reserved[6];	/* 6  -- */
	long	vmb_revision;	/* 4  VMB revision label */
};

/*
 * Bootstrap device number encoding.
 */
#define	BDEV_HP		0
#define	BDEV_RK		1
#define	BDEV_RL		2
#define	BDEV_IDC	3
#define	BDEV_UDA	17
#define	BDEV_TK		18
#define	BDEV_HSC	32
#define	BDEV_KDB	33
#define	BDEV_KRB	34
#define	BDEV_NK		35
#define	BDEV_RD		36	/* ST506/MFM disk on HDC9224 */
#define	BDEV_ST		37	/* SCSI tape on NCR5380 */
#define	BDEV_SDS	39	/* SCSI disk on SII */
#define	BDEV_SD		42	/* SCSI disk on NCR5380 */
#define BDEV_SDN	46	/* SCSI disk on NCR5394 */
#define	BDEV_CNSL	64
#define	BDEV_QE		96
#define	BDEV_DE		97
#define	BDEV_NI		98
#define	BDEV_LE		99
#define	BDEV_ZE		100

#define	BDEV_NET 	BDEV_QE		/* first network BDEV */

#ifdef _KERNEL
extern struct rpb rpb;
#endif