summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k/include/bugio.h
blob: c4ef12009edfe19f36ae2798588baa41944acac3 (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
131
132
133
134
135
136
137
138
139
140
141
/*	$OpenBSD: bugio.h,v 1.11 2001/09/28 20:45:48 miod Exp $ */

#ifndef __MACHINE_BUGIO_H__
#define __MACHINE_BUGIO_H__

#include <sys/cdefs.h>

struct bugdisk_io {
	char	clun;
	char	dlun;
	short	status;
	void	*addr;
	int	blkno;
#define	fileno	blkno
	short	nblks;
	char	flag;
#define	FILEMARKFLAG	0x80
#define	IGNOREFILENO	0x02
#define	ENDOFFILE	0x01
	char	am;
};	

/* values are in BCD {upper nibble+lower nibble} */

struct bugrtc {
	unsigned char	Y;
	unsigned char	M;
	unsigned char	D;
	unsigned char	d;
	unsigned char	H;
	unsigned char	m;
	unsigned char	s;
	unsigned char	c;
};

/* Board ID - lots of info */

struct bugbrdid {
	unsigned char	eye[4];
	char	rev;
	char	month;
	char	day;
	char	year;
	short	packetsize;
	short	dummy;
	short	brdno;
	unsigned char	brdsuf[2];
	char	options[3];
	char	family:4;
	char	cpu:4;
	short	clun;
	short	dlun;
	short	type;
	short	dev;
	int	option;
	char	version[4];
	char	serial[12];			/* SBC serial number */
	char	id[16];				/* SBC id */
	char	pwa[16];				/* printed wiring assembly number */
	char	speed[4];			/* cpu speed */
	char	etheraddr[6];		/* mac address, all zero if no ether */
	char	fill[2];		
	char	scsiid[2];			/* local SCSI id */
	char	sysid[8];			/* system id - nothing on mvme187 */
	char	brd1_pwb[8];		/* memory board 1 pwb */
	char	brd1_serial[8];	/* memory board 1 serial */
	char	brd2_pwb[8];		/* memory board 2 pwb */
	char	brd2_serial[8];	/* memory board 2 serial */
	char	reserved[153];
	char	cksum[1];
};

struct bugniocall {
	unsigned char clun;
	unsigned char dlun;
	unsigned char ci;
	unsigned char cd;
#define	NETCTRL_INITDEVICE	0
#define	NETCTRL_GETHDW		1
#define	NETCTRL_TX		2
#define	NETCTRL_RX		3
#define	NETCTRL_FLUSH		4
#define	NETCTRL_RESET		5
	unsigned long cid;
	unsigned long memaddr;
	unsigned long nbytes;
	unsigned long csword;
};

typedef struct netcnfgp {
	unsigned int magic;
	unsigned int nodemem;
	unsigned int bfla;
	unsigned int bfea;
	unsigned int bfed;
	unsigned int bfl;
	unsigned int bfbo;
	unsigned int tbuffer;
	unsigned char cipa[4];
	unsigned char sipa[4];
	unsigned char netmask[4];
	unsigned char broadcast[4];
	unsigned char gipa[4];
	unsigned char bootp_retry;
	unsigned char tftp_retry;
	unsigned char bootp_ctl;
	unsigned char cnfgp_ctl;
	unsigned char filename[64];
	unsigned char argfname[64];
} NETCNFGP;

struct bugniotcall {
	unsigned char clun;
	unsigned char dlun;
	unsigned char ci;
	unsigned char cd;
	NETCNFGP * netcfngp_p;
	void * unused;
#define NIOT_READ  (1<<0)
#define NIOT_WRITE (1<<1)
#define NIOT_NVRAM (1<<2)    
	unsigned long cntrlflag;
};

void buginit	__P((void));
int buginstat	__P((void));
char buginchr	__P((void));
void bugoutchr	__P((unsigned char));
void bugoutstr	__P((char *, char *));
void bugpcrlf	__P((void));
int bugdskrd	__P((struct bugdisk_io *));
int bugdskwr	__P((struct bugdisk_io *));
void bugrtcrd	__P((struct bugrtc *));
void bugreturn	__P((void));
int bugfork	__P((int cpu, unsigned address));
void bugbrdid	__P((struct bugbrdid *));
void bugnetctrl	__P((struct bugniocall *));
void bugdelay	__P((int));
int bugnetcfg	__P((struct bugniotcall *));

#endif /* __MACHINE_BUGIO_H__ */