1 .\" $NetBSD: ndiscvt.8,v 1.6 2007/12/24 18:52:34 jnemeth Exp $
4 .\" Bill Paul <wpaul@windriver.com> All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
14 .\" 3. All advertising materials mentioning features or use of this software
15 .\" must display the following acknowledgement:
16 .\" This product includes software developed by Bill Paul.
17 .\" 4. Neither the name of the author nor the names of any co-contributors
18 .\" may be used to endorse or promote products derived from this software
19 .\" without specific prior written permission.
21 .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
22 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 .\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
25 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 .\" THE POSSIBILITY OF SUCH DAMAGE.
33 .\" $FreeBSD: src/usr.sbin/ndiscvt/ndiscvt.8,v 1.5.2.1 2005/02/27 15:40:17 brueffer Exp $
42 NDIS drivers for use with
52 .\".Op Fl f Ar firmfile
58 NDIS driver into a data file which
62 compatibility driver module.
64 drivers consist of two main parts: a
66 file, which contains the actual driver executable code,
69 file, which provides the
72 identifier information and a list of driver-specific registry keys.
75 utility can convert these files into a header file that is compiled
78 to create an object code module that can be linked into
85 file is typically required since only it contains device
86 identification data such as PCI vendor and device IDs or PCMCIA
90 file may be optionally omitted however,
93 utility will only perform the conversion of the
96 This is useful for debugging purposes only.
98 The options are as follows:
99 .Bl -tag -offset indent -width XfXfirmfileXX
100 .\"***************************************************************************
101 .\" The section describing the -f option for firmware has been commented out
102 .\" Because this is not currently supported on NetBSD.
103 .\"***************************************************************************
104 .\".It Fl f Ar firmfile
105 .\"A few NDIS drivers come with additional files that the core
106 .\"driver module will load during initialization time.
108 .\"these files contain firmware which the driver will transfer to
109 .\"the device in order to make it fully operational.
111 .\".Tn Windows\[rg] ,
112 .\"these files are usually just copied into one of the system
113 .\"directories along with the driver itself.
117 .\"there are two mechanism for loading these files.
119 .\"is built as a loadable kernel module which is loaded after the
120 .\"kernel has finished booting
121 .\"(and after the root filesystem has
123 .\"the extra files can simply be copied to the
125 .\"directory, and they will be loaded into the kernel on demand when the
126 .\"the driver needs them.
128 .\"If however the driver is required to bootstrap the system
130 .\"the NDIS-based network interface is to be used for diskless/PXE
132 .\"the files need to be pre-loaded by the bootstrap
133 .\"loader in order to be accessible, since the driver will need them
134 .\"before the root file system has been mounted.
135 .\"However, the bootstrap
136 .\"loader is only able to load files that are shared
142 .\"flag can be used to convert an arbitrary file
144 .\"into shared object format
145 .\"(the actual conversion is done using
151 .\"The resulting files can then be copied to the
153 .\"directory, and can be pre-loaded directly from the boot loader
154 .\"prompt, or automatically by editing the
157 .\"If desired, the files can also be loaded into memory
158 .\"at runtime using the
162 .\"When an NDIS driver tries to open an external file, the
164 .\"code will first search for a loaded kernel module that matches the
165 .\"name specified in the open request, and if that fails, it will then
166 .\"try to open the file from the
168 .\"directory as well.
169 .\"Note that during kernel bootstrap, the ability
170 .\"to open files from
172 .\"is disabled: only the module search will be performed.
178 .\"will generate both a relocatable object file
182 .\"and a shared object file
186 .\"The shared object is the one that should be placed in
190 .\"The relocatable object file is useful if the user wishes
191 .\"to create a completely static kernel image: the object file can be
192 .\"linked into the kernel directly along with the driver itself.
194 .\"editing of the kernel configuration files will be necessary in order
195 .\"to have the extra object included in the build.
197 Open and parse the specified
199 file when performing conversion.
202 utility will parse this file and emit a device identification
203 structure and registry key configuration structures which will be
213 will emit a dummy configuration structure only.
215 Specify an alternate name for the network device/interface which will
216 be created when the driver is instantiated.
217 If you need to load more
218 than one NDIS driver into your system (i.e., if you have two different
219 network cards in your system which require NDIS driver support), each
220 module you create must have a unique name.
221 Device can not be larger than
223 If no name is specified, the driver will use the
224 default a default name
228 .Pa ndis_driver_data.h
231 .Pa ndis_driver.data.o
233 The latter file will contain a copy of the
236 driver image encoded as a
243 driver image directly into an object code file saves disk space
244 and compilation time.
246 Specify the output file in which to place the resulting data.
247 This can be any file pathname.
252 the data will be written to the standard output.
255 module expects to find the driver data in a file called
256 .Pa ndis_driver_data.h ,
257 so it is recommended that this name be used.
259 Open and parse the specified
262 This file must contain a
267 utility will perform some manipulation of the sections within the
268 executable file to make runtime linking within the kernel a little
269 easier and then convert the image into a data array.
280 utility first appeared in
286 utility was written by
287 .An Bill Paul Aq wpaul@windriver.com .
293 file parser was written by
294 .An Matthew Dodd Aq mdodd@FreeBSD.org .