mvmeprom.h Source File

Back to the index.

mvmeprom.h
Go to the documentation of this file.
1 /* $OpenBSD: prom.h,v 1.16 2006/05/16 22:51:28 miod Exp $ */
2 /*
3  * Copyright (c) 1998 Steve Murphree, Jr.
4  * Copyright (c) 1996 Nivas Madhur
5  * Copyright (c) 1995 Theo de Raadt
6  * All rights reserved.
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. The name of the author may not be used to endorse or promote products
17  * derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 #ifndef __MACHINE_PROM_H__
31 #define __MACHINE_PROM_H__
32 
33 /* BUG trap vector */
34 #define MVMEPROM_VECTOR 496
35 
36 #define MVMEPROM_INCHR 0x00
37 #define MVMEPROM_INSTAT 0x01
38 #define MVMEPROM_INLN 0x02
39 #define MVMEPROM_READSTR 0x03
40 #define MVMEPROM_READLN 0x04
41 #define MVMEPROM_DSKRD 0x10
42 #define MVMEPROM_DSKWR 0x11
43 #define MVMEPROM_DSKCFIG 0x12
44 #define MVMEPROM_DSKFMT 0x14
45 #define MVMEPROM_DSKCTRL 0x15
46 #define MVMEPROM_NETFOPEN 0x1b
47 #define MVMEPROM_NETFREAD 0x1c
48 #define MVMEPROM_NETCTRL 0x1d
49 #define MVMEPROM_OUTCHR 0x20
50 #define MVMEPROM_OUTSTR 0x21
51 #define MVMEPROM_OUTSTRCRLF 0x22
52 #define MVMEPROM_WRITE 0x23
53 #define MVMEPROM_WRITELN 0x24
54 #define MVMEPROM_OUTCRLF 0x26
55 #define MVMEPROM_DELAY 0x43
56 #define MVMEPROM_RTC_RD 0x53
57 #define MVMEPROM_EXIT 0x63
58 #define MVMEPROM_GETBRDID 0x70
59 #define MVMEPROM_ENVIRON 0x71
60 #define MVMEPROM_FORKMPU 0x100
61 
62 #define NETCTRLCMD_GETETHER 1
63 
64 #define ENVIRONCMD_WRITE 1
65 #define ENVIRONCMD_READ 2
66 #define ENVIRONTYPE_EOL 0
67 #define ENVIRONTYPE_START 1
68 #define ENVIRONTYPE_DISKBOOT 2
69 #define ENVIRONTYPE_ROMBOOT 3
70 #define ENVIRONTYPE_NETBOOT 4
71 #define ENVIRONTYPE_MEMSIZE 5
72 
73 #define FORKMPU_NOT_IDLE -1
74 #define FORKMPU_BAD_ADDRESS -2
75 #define FORKMPU_NO_MPU -3
76 
78  uint8_t ctrl;
79  uint8_t dev;
80  uint16_t status;
81  uint32_t cmd;
82  uint32_t addr;
83  uint32_t len;
84  uint32_t flags;
85 };
86 
88  uint8_t ctrl;
89  uint8_t dev;
90  uint16_t status;
91  char filename[64];
92 };
93 
95  uint8_t ctrl;
96  uint8_t dev;
97  uint16_t status;
98  uint32_t addr;
99  uint16_t bytes;
100  uint16_t blk;
101  uint32_t timeout;
102 };
103 
105  uint8_t type;
106  uint8_t len;
107 };
108 
110  uint32_t eye_catcher;
111  uint8_t rev;
112  uint8_t month;
113  uint8_t day;
114  uint8_t year;
115  uint16_t size;
116  uint16_t rsv1;
117  uint16_t model;
118  uint8_t suffix[2];
119  uint16_t options;
120  uint8_t family;
121  uint8_t cpu;
122  uint16_t ctrlun;
123  uint16_t devlun;
124  uint16_t devtype;
125  uint16_t devnum;
126  uint32_t bug;
127  uint8_t version[4];
128  uint8_t serial[12]; /* SBC serial number */
129  uint8_t id[16]; /* SBC id */
130  uint8_t pwa[16]; /* printed wiring assembly number */
131  uint8_t speed[4]; /* cpu speed */
132  uint8_t etheraddr[6]; /* mac address, all zero if no ether */
133  uint8_t fill[2];
134  uint8_t scsiid[2]; /* local SCSI id */
135  uint8_t sysid[8]; /* system id - nothing on mvme187 */
136  uint8_t brd1_pwb[8]; /* memory board 1 pwb */
137  uint8_t brd1_serial[8]; /* memory board 1 serial */
138  uint8_t brd2_pwb[8]; /* memory board 2 pwb */
139  uint8_t brd2_serial[8]; /* memory board 2 serial */
140  uint8_t reserved[153];
141  uint8_t cksum[1];
142 };
143 
145  uint8_t year_BCD;
146  uint8_t month_BCD;
147  uint8_t day_BCD;
148  uint8_t wday_BCD;
149  uint8_t hour_BCD;
150  uint8_t min_BCD;
151  uint8_t sec_BCD;
152  uint8_t cal_BCD;
153 };
154 
156  uint8_t ctrl_lun;
157  uint8_t dev_lun;
158  uint16_t status;
159  uint32_t pbuffer;
160  uint32_t blk_num;
161  uint16_t blk_cnt;
162  uint8_t flag;
163 #define BUG_FILE_MARK 0x80
164 #define IGNORE_FILENUM 0x02
165 #define END_OF_FILE 0x01
166  uint8_t addr_mod;
167 };
168 #define MVMEPROM_BLOCK_SIZE 256
169 
170 #endif /* __MACHINE_PROM_H__ */
mvmeprom_brdid::cpu
uint8_t cpu
Definition: mvmeprom.h:121
mvmeprom_brdid::fill
uint8_t fill[2]
Definition: mvmeprom.h:133
mvmeprom_brdid::brd1_pwb
uint8_t brd1_pwb[8]
Definition: mvmeprom.h:136
mvmeprom_brdid::devnum
uint16_t devnum
Definition: mvmeprom.h:125
mvmeprom_netctrl
Definition: mvmeprom.h:77
prom_environ_hdr
Definition: mvmeprom.h:104
mvmeprom_brdid::eye_catcher
uint32_t eye_catcher
Definition: mvmeprom.h:110
prom_environ_hdr::type
uint8_t type
Definition: mvmeprom.h:105
mvmeprom_brdid::ctrlun
uint16_t ctrlun
Definition: mvmeprom.h:122
mvmeprom_time::cal_BCD
uint8_t cal_BCD
Definition: mvmeprom.h:152
mvmeprom_brdid::speed
uint8_t speed[4]
Definition: mvmeprom.h:131
mvmeprom_time::wday_BCD
uint8_t wday_BCD
Definition: mvmeprom.h:148
mvmeprom_dskio::blk_num
uint32_t blk_num
Definition: mvmeprom.h:160
mvmeprom_brdid
Definition: mvmeprom.h:109
mvmeprom_brdid::sysid
uint8_t sysid[8]
Definition: mvmeprom.h:135
mvmeprom_netfread::status
uint16_t status
Definition: mvmeprom.h:97
mvmeprom_brdid::brd2_pwb
uint8_t brd2_pwb[8]
Definition: mvmeprom.h:138
mvmeprom_netfopen::dev
uint8_t dev
Definition: mvmeprom.h:89
mvmeprom_time
Definition: mvmeprom.h:144
mvmeprom_netfread::bytes
uint16_t bytes
Definition: mvmeprom.h:99
mvmeprom_brdid::version
uint8_t version[4]
Definition: mvmeprom.h:127
mvmeprom_netfread::timeout
uint32_t timeout
Definition: mvmeprom.h:101
mvmeprom_dskio::dev_lun
uint8_t dev_lun
Definition: mvmeprom.h:157
mvmeprom_dskio::addr_mod
uint8_t addr_mod
Definition: mvmeprom.h:166
mvmeprom_dskio::pbuffer
uint32_t pbuffer
Definition: mvmeprom.h:159
mvmeprom_brdid::pwa
uint8_t pwa[16]
Definition: mvmeprom.h:130
mvmeprom_netfopen::ctrl
uint8_t ctrl
Definition: mvmeprom.h:88
mvmeprom_brdid::devtype
uint16_t devtype
Definition: mvmeprom.h:124
mvmeprom_netctrl::status
uint16_t status
Definition: mvmeprom.h:80
mvmeprom_netctrl::len
uint32_t len
Definition: mvmeprom.h:83
mvmeprom_time::day_BCD
uint8_t day_BCD
Definition: mvmeprom.h:147
mvmeprom_brdid::month
uint8_t month
Definition: mvmeprom.h:112
mvmeprom_time::month_BCD
uint8_t month_BCD
Definition: mvmeprom.h:146
mvmeprom_netfopen::status
uint16_t status
Definition: mvmeprom.h:90
mvmeprom_netctrl::cmd
uint32_t cmd
Definition: mvmeprom.h:81
mvmeprom_dskio::status
uint16_t status
Definition: mvmeprom.h:158
mvmeprom_dskio
Definition: mvmeprom.h:155
mvmeprom_dskio::flag
uint8_t flag
Definition: mvmeprom.h:162
mvmeprom_netfopen
Definition: mvmeprom.h:87
mvmeprom_netfopen::filename
char filename[64]
Definition: mvmeprom.h:91
mvmeprom_brdid::rev
uint8_t rev
Definition: mvmeprom.h:111
mvmeprom_netfread::dev
uint8_t dev
Definition: mvmeprom.h:96
mvmeprom_brdid::family
uint8_t family
Definition: mvmeprom.h:120
mvmeprom_netfread::ctrl
uint8_t ctrl
Definition: mvmeprom.h:95
mvmeprom_brdid::brd1_serial
uint8_t brd1_serial[8]
Definition: mvmeprom.h:137
mvmeprom_time::sec_BCD
uint8_t sec_BCD
Definition: mvmeprom.h:151
prom_environ_hdr::len
uint8_t len
Definition: mvmeprom.h:106
mvmeprom_brdid::bug
uint32_t bug
Definition: mvmeprom.h:126
mvmeprom_brdid::suffix
uint8_t suffix[2]
Definition: mvmeprom.h:118
mvmeprom_brdid::options
uint16_t options
Definition: mvmeprom.h:119
mvmeprom_dskio::blk_cnt
uint16_t blk_cnt
Definition: mvmeprom.h:161
mvmeprom_netctrl::ctrl
uint8_t ctrl
Definition: mvmeprom.h:78
mvmeprom_brdid::size
uint16_t size
Definition: mvmeprom.h:115
mvmeprom_time::min_BCD
uint8_t min_BCD
Definition: mvmeprom.h:150
mvmeprom_brdid::serial
uint8_t serial[12]
Definition: mvmeprom.h:128
mvmeprom_brdid::day
uint8_t day
Definition: mvmeprom.h:113
mvmeprom_brdid::model
uint16_t model
Definition: mvmeprom.h:117
mvmeprom_brdid::cksum
uint8_t cksum[1]
Definition: mvmeprom.h:141
mvmeprom_brdid::reserved
uint8_t reserved[153]
Definition: mvmeprom.h:140
mvmeprom_dskio::ctrl_lun
uint8_t ctrl_lun
Definition: mvmeprom.h:156
mvmeprom_netctrl::flags
uint32_t flags
Definition: mvmeprom.h:84
mvmeprom_time::hour_BCD
uint8_t hour_BCD
Definition: mvmeprom.h:149
mvmeprom_brdid::scsiid
uint8_t scsiid[2]
Definition: mvmeprom.h:134
mvmeprom_netctrl::dev
uint8_t dev
Definition: mvmeprom.h:79
mvmeprom_netctrl::addr
uint32_t addr
Definition: mvmeprom.h:82
mvmeprom_netfread::blk
uint16_t blk
Definition: mvmeprom.h:100
mvmeprom_netfread
Definition: mvmeprom.h:94
mvmeprom_brdid::year
uint8_t year
Definition: mvmeprom.h:114
mvmeprom_brdid::devlun
uint16_t devlun
Definition: mvmeprom.h:123
mvmeprom_brdid::brd2_serial
uint8_t brd2_serial[8]
Definition: mvmeprom.h:139
mvmeprom_time::year_BCD
uint8_t year_BCD
Definition: mvmeprom.h:145
mvmeprom_brdid::etheraddr
uint8_t etheraddr[6]
Definition: mvmeprom.h:132
mvmeprom_netfread::addr
uint32_t addr
Definition: mvmeprom.h:98
mvmeprom_brdid::rsv1
uint16_t rsv1
Definition: mvmeprom.h:116

Generated on Tue Aug 25 2020 19:25:06 for GXemul by doxygen 1.8.18