summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/sysinit.itu
blob: cad65c2f018d0cc9f2e963a1c890b96e7f535b56 (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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
#
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License").  You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# ident	"%Z%%M%	%I%	%E% SMI"
#
# Each entry in the description file is a line that establishes the
# value of a keyword in the following form:
# 
# 	keyword = value
# 
# A line with a '#' character in the first column is considered to be a
# comment. Spaces and tabs are allowed around the '=' operator.  Left
# and right braces can be used for grouping (see examples) but may not be
# nested. There is no required order in which the keywords must be
# specified within the file.  The known list of keywords is included
# below.  The keyword is listed, followed by one or more usage examples,
# followed by a description.  Keywords are case-sensitive, so 'name' is
# a valid keyword, but 'NAME' is not a valid keyword.
# 
# In general, only one value assignment should be made to a keyword, but
# some keywords can be assigned values on more than one line of the
# .itu. Keyword assignments in the description file are case sensitive.
# 
# ------------------------------------------
# 
# name=
# 
# The name of the Solaris module being delivered.  This keyword must be
# assigned a value in every description file.
# Example: name=geewhiz
# 
# itu_type=
# 
# Defines the scope of the module delivery.  The only valid itu_type
# values are 'complete' and 'partial'.  The 'complete' itu_type implies
# a full set of module, module.conf, module.bef and device database
# entries is being delivered and that the driver being delivered did not
# exist on the installation medium for the release being supplemented.
# In all other cases the itu_type should be 'partial'. This keyword
# must be assigned a value in every description file.
# Example: itu_type=complete
# 
# interface_version=
# 
# Major.Minor number that versions the .itu keywords and file syntax.
# If in the future changes are needed to the syntax of the .itu file
# that would obsolete older .itu files, an appropriate version number
# change should occur.  Currently this keyword should always be assigned
# the value of 1.0.  This keyword must be assigned a value in every
# description file.
# Example: interface_version=1.0
# 
# patchid=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The patch id that should be assigned to the patch that make_ITU
# creates.  This keyword must be assigned a value in every
# description file.
# Example: patchid=102345-01
# 
# driverpkg=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The name of the package that the module resides in on the install
# medium.  If the module is new, the name of the package that should be
# extended to include this module, or the name of a new package that
# should be constructed.  This is the abbreviated name that is assigned
# to the PKG parameter in the package's pkginfo file. This keyword must
# be assigned a value in any description file when the delivery includes
# a solaris module.
# Example: driverpkg=SUNWos86r
# 
# driverpkgvers=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the VERSION parameter in the driver package's
# pkginfo.  This should be identical to the VERSION value on the install
# medium in the case where the package existed on the install
# medium.  This keyword must be assigned a value if the driverpkg keyword
# has been assigned a value.  The value assigned to this keyword is expected
# to be a quoted string.
# Example: driverpkgvers="1.1.0,REV=0.0.0"
# 
# driverpkgdesc=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the NAME parameter in the driver package's
# pkginfo.  This is the descriptive name of the package.  This keyword
# must be assigned a value if the driverpkg keyword has been assigned a
# value.  The value assigned to this keyword is expected to be a quoted
# string.
# Example: driverpkgdesc="Platform Support, OS Functionality (Root)"
# 
# class=
# 
# Describes an entry for this module that should be added to the
# /etc/driver_classes file.
# Example: class=scsi
# 
# system_entry=
# 
# Describes an entry to be appended to the /etc/system file (which is
# read during kernel initialization).  A system entry to forceload the
# new module is generated automatically by the booting system, so this
# keyword should be used for entries other than those forceloads. The
# value assigned to this keyword is expected to be a quoted string.
# Example: system_entry="exclude: bad_buggy_driver"
# 
# devlink_entry=
# 
# Describes an entry to be appended to the /etc/devlink.tab file (which
# is used by the devlinks command to create the contents of the /dev
# directory). The value assigned to this keyword is expected to be a quoted
# string.
# Example: devlink_entry="type=ddi_serial:dialout,mb;minor=e;cu	cua4"
# 
# driver_path=
# 
# Specifies the absolute directory path to the module's location when
# installed.  If this keyword is not assigned a value, a default path of
# /platform/`uname -i`/kernel/drv will be assumed.
# Example: driver_path=/kernel/drv
# 
# realmode_path=
# 
# This keyword allows specification of the exact path for realmode
# driver delivery.  By default, new self-identifying drivers are
# installed in the boot area of the root at
# /platform/i86pc/boot/solaris/drivers/notisa.010, and
# non-self-identifying drivers are installed in
# /platform/i86pc/boot/solaris/drivers/isa.160.  This keyword is
# intended for use when delivering an updated version of a driver that's
# already on the install medium. This variable must be defined if the
# itu_type is 'partial' and a realmode driver has been delivered.  This
# keyword is only used with Solaris Intel edition ITUs.
# Example: realmode_path=/platform/i86pc/boot/solaris/drivers/notisa.010
# 
# load_always=
# 
# The Intel edition configuration assistant attempts to prune the set of
# delivered modules to only include those that are actually needed.
# Some modules being delivered may by nature not be seen by the
# configuration assistant but still must be delivered.  Setting this
# keyword to a TRUE value ensures the delivered module will not be
# pruned during the boot process. This keyword is only used with Solaris
# Intel edition ITUs.
# Example: load_always=FALSE
# 
# legacy_device=
# 
# This keyword should be set to TRUE if and only if the realmode driver
# for the device supports the legacyprobe() function call.  Realmode
# drivers only support this call when they are not self-identifying devices,
# so few, if any, new drivers will provide the legacyprobe() function.
# See the Writing Device Drivers guide, Realmode drivers section, for more
# details.  By default this keyword has the value of FALSE. Declaring
# legacy_device as true effectively makes load_always TRUE as well.  This
# keyword is only used with Solaris Intel edition ITUs.
# Example: legacy_device=TRUE
# 
# bef_name=
# 
# The name of the realmode driver accompanying the Solaris module being
# delivered.  The full name including extension should be defined.  This
# variable need not be defined if the realmode driver
# has the same basename as the Solaris module.  This keyword is only
# used with Solaris Intel edition ITUs.
# Example: bef_name=whiz.bef
# 
# dev_id=
# 
# node_name=
# 
# bus_type=
# 
# describe_dev=
# 
# dev_type=
# 
# These keywords are grouped because if any one of them is defined they
# must all be defined.  Drivers support devices, obviously, and the
# booting system maintains a database that ties information about
# specific devices to their drivers.  When a new driver is added, the
# devices it supports must be enumerated.  This cluster of keyword values
# forms a device database entry.
# 
# Multiple clusters will have to be defined if the driver supports
# multiple devices.  Judicious use of braces can cut down on the actual
# number of assignments that must be put into the .itu.
# 
# The keyword, 'dev_type' has an invariant value over all clusters, and
# thus should only be defined once.  The most common types would be
# 'msd' (short for mass storage device) and 'net' (network interface).
# Example: dev_type=msd
# 	   dev_type=net
# 
# The 'describe_dev' keyword should be assigned a quoted string as a
# value. That string should give a short (maximum of 80 characters)
# description of the supported device.  If there are multiple
# assignments to this keyword then the 'dev_id', 'node_name', and
# 'bus_type' assignments for which the description is valid should be
# grouped (using braces) with the 'describe_dev' assignment.  This
# string is presented to the user on the menu of bootable devices.
# Example: describe_dev="Whiz BR-549 SCSI Controller"
# 
# The 'dev_id' keyword describes one or more unique names assigned to
# the physical device a module drives.  In the case of self-identifying
# devices this id is obtainable by a driver at run time, and the database
# entry being created can be used to map the found id to a realmode driver.
# For example, the PCI configuration space of a machine can be probed to
# discover a pci1000,1 device id is present in the system.  A database entry
# with a dev_id of pci1000,1 is what tells the booting system that the realmode
# driver for that device is ncrs.bef.  The database also has a 'describe_dev'
# entry of "Symbios Logic 53c810 SCSI" that can be displayed to an end-user.
# Example: dev_id=PNP81C3
# 	   dev_id=pci1234,1
# 	   dev_id=CPQ6200
# 
# For an older, non self-identifying device, the scenario is somewhat
# reversed.  To find these devices, realmode drivers are run in a
# probing mode.  If the probe indicates that the device is present, the
# first database entry that matches the name of the realmode driver and
# indicates a 'bus_type' of isa (or the catch-all all) is taken to be
# the unique 'dev_id' for that device.  The 'describe_dev' description
# presented to the user is taken from this database entry as well.
# Writing drivers for non self-identifying devices is strongly
# discouraged.
# 
# The 'node_name' keyword is the name of the device as it is known in
# the kernel device tree (/devices/BUS/device_name...) when initialized.
# This is either the name of the module itself, (e.g., smc), or a name
# that maps to the module in the /etc/driver_aliases file (e.g,
# pci9004,7278; a node name that happens to map to the adp module).  In
# the special case where the 'bus_type' is pciclass, the 'node_name'
# should be assigned the value "none".  Multiple node_names may be
# defined.
# Example: node_name=geewhiz
# 	   node_name=pci1234,1
# 	   node_name=none
# 
# The 'bus_type' generally describes the bus that the device works in.
# Of course if the module supports multiple versions of a device and the
# various versions of the card support different bus types, multiple
# 'bus_type' assignments should occur, grouped with appropriate
# assignments of the other keywords in the cluster.
# Example: bus_type=pci
# 
# These five keywords are only used with Solaris Intel edition ITUs.
# 
# patch_obsoletes=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group if need be.)
# The patchid(s) associated with any patches that the patch delivering
# the module renders obsolete.  This keyword may be assigned multiple
# times if there is more than one patch obsoleted.
# Example: patch_obsoletes=102452-30
# 	   patch_obsoletes="102452-29 102452-30"
# 
# patch_required=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group if need be.)
# The patchid(s) associated with any patches that the patch delivering
# the module is dependent upon having already been installed.  This keyword
# may be assigned multiple times if there is more than one patch dependency.
# Example: patch_required=102451-29
# 
# befpkg=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group if need be.)
# The name of the package that the realmode driver resides in on the
# install medium.  The value should only be assigned if the realmode
# driver resides in a package different than the driver package on the
# install medium.  New drivers should not assign a value to this
# keyword.  If no value is assigned to this keyword, the realmode driver
# will be delivered in the same package as the Solaris module. This
# keyword is only used with Solaris Intel edition ITUs.
# Example: befpkg=SUNWos86r
# 
# befpkgvers=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the VERSION parameter in the realmode package's
# pkginfo.  This should be identical to the VERSION value on the install
# medium in the case where the package existed on the install medium.
# If befpkg has been assigned a value, this keyword must be assigned.
# This keyword is only used with Solaris Intel edition ITUs.  The value
# assigned to this keyword is expected to be a quoted string.
# Example: befpkgvers="1.1.0,REV=0.0.0"
# 
# befpkgdesc=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the NAME parameter in the realmode package's
# pkginfo.  This is the descriptive name of the package. If befpkg has
# been assigned a value, this keyword must be assigned.  This keyword is
# only used with Solaris Intel edition ITUs.  The value assigned to this
# keyword is expected to be a quoted string.
# Example: befpkgdesc="Platform Support, OS Functionality (Root)"
# 
# manpkg=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The name of the package where manual deliveries should reside. Either
# the name of the package that should be extended to include this man
# page or the name of a new package that should be constructed.  This is
# the abbreviated name that is assigned to the PKG parameter in the
# package's pkginfo file.
# Example: manpkg=SUNWman
# 
# manpkgvers=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the VERSION parameter in the manual package's
# pkginfo.  This should be identical to the VERSION value on the install
# medium in the case where the package existed on the install medium. If
# manpkg has been assigned a value, this keyword must be assigned. The
# value assigned to this keyword is expected to be a quoted string.
# Example: manpkgvers="39.0,REV=15"
# 
# manpkgdesc=
# 
# (NOTE: This keyword is to be ignored by development.  It will be
#        assigned a value by the RE group.)
# The value to assign to the NAME parameter in the manual package's
# pkginfo.  This is the descriptive name of the package.  If manpkg has
# been assigned a value, this keyword must be assigned. The value assigned
# to this keyword is expected to be a quoted string.
# Example: manpkgdesc="On-line Manual Pages"
#