#
# Help file for makerom user interface
#
#
# Copyright (C) 2004-2007 Gero Kuhlmann <gero@gkminix.han.de>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id: makerom.help,v 1.7 2007/02/01 12:09:21 gkminix Exp $
#

% 1
The netboot bootrom can hook interrupt 18h or 19h. The latter will be called by
the client BIOS before it scans for boot disks (like a floppy or hard disk) in
the system, while the first interrupt will be called after this disk scan when
no bootable operating system has been found on a local disk. When you answer
"no" to this question, makerom will generate the bootrom so that it will use
interrupt 19h. Otherwise, the bootrom will use interrupt 18h.
-
With the interrupt 19h method the bootrom will look for a boot sector on the
A: floppy drive by itself, therefore simulating some of the BIOS boot functio-
nality, before starting the netbooting process. This feature can be used to
start the system in case something is wrong with the bootrom itself.
-
The answer to this question is only relevant if the client BIOS does not
support the Bios Boot Specification (BBS). If the BIOS does support BBS, the
answer to this question doesn't matter. No interrupt will be hooked, and the
boot order will always be determined by the BIOS.

% 2
This question will only appear when you answered "no" to the previous
question and therefore selected the interrupt 19h booting mechanism. If
you answer "yes" to this question, the bootrom will lateron (at runtime)
ask the user, if the network booting process should really be started. If
the user then selects "no" the bootrom will return to the BIOS so that it
can continue with it's normal disk scan for an operating system. The network
booting process will only be started if the user answers "yes" at runtime.
If the BIOS supports BBS, asking the user about booting from network will
not be done, because the boot order can be selected in the BIOS setup. However,
makerom is unable to determine if the diskless client's BIOS supports BBS or
not, so you should specify "no" here if you know your client is BBS compliant.

% 3
With this question you can select how long the bootrom should wait for a user
to press a key. It will only appear if you selected "yes" at the previous
question. If you answer "0" here, the bootrom will wait forever for an answer.
If the bootrom times out waiting for a key press, the default action is to boot
from a local disk and not from the network.

% 4
makerom will always produce a floppy image of the bootrom, called image.flo
in the current working directory. In addition it will also create a bootrom
image which can be programmed into a ROM. At this question you can select
the type of that file:
-
Raw binary
.I
    The output file will contain a raw binary of the bootrom, suitable for
    burning into an EPROM with a programmer which can read raw binaries. It's
    name will be "image.rom".
.E
-
Image to include into a system BIOS
.I
    Using this output format a file named "image.bios" will be generated, which
    can then be used for inclusion into a system BIOS. However, netboot cur-
    rently does not provide any further support for including the output file
    into your BIOS. For doing this you will need additional support programs
    provided by the BIOS and/or system board manufacturer. For example, to
    include the bootrom into an Award BIOS, you can use the open source program
    "awardmod" which you can download from http://awardmod.sourceforge.net.
    When your client uses a BIOS made by American Megatrends Inc. (AMI), you
    should search the Internet for a program called "amibcp.exe". Unfortunately,
    those programs only run in a Windows or DOS environment.
.E
-
Image for programming a FlashCard across the network
.I
    If you have a FlashCard installed in your client you can use this output
    file type. Just start the client with an already installed bootrom or
    using the floppy bootrom image, and feed it this output file as it's
    boot image. The client will then automatically locate the FlashCard, and
    program it with the newly created bootrom image. With this technique it's
    possible to upgrade a client to a new bootrom version without opening the
    system cover. The name of the flash boot image file will be "image.flash"
    in the current working directory.
.E
-
Image for programming a flash EPROM across the network
.I
    This option lets you select an output file which can be used to program
    a flash EPROM onboard a network card. It will appear only for network
    cards which are supported by makerom to be programmed. The name of the
    flash boot image file will be "image.flash" in the current working direc-
    tory. As with programming a FlashCard you can provide this file as a boot
    image file for the client, and it will then try to detect the installed
    network card and program it's onboard flash EPROM with the netboot bootrom.
    An image created using this option can also program a FlashCard if it does
    not find a Flash EPROM on the installed network card.
.E
-
Intel hex
.I
    Output file suitable for EPROM programmers which understand the Intel hex
    format.
.E
-
Motorola hex
.I
    Output file suitable for EPROM programmers which understand the Motorola
    EXORmacs hex format.
.E
-
Tektronix hex
.I
    Output file suitable for EPROM programmers which understand the Tektronix
    hex format.
.E
-
For all hex output formats the default output file name will be "image.hex".

% 5
Enter the type of bus interface used by your network card. If your card is
Plug-and-Play compatible and not PCI, select ISA (which is the default).

% 6
Enter the number for the manufacturer of your network card. In the following
list (printed after answering this question) makerom will then print only the
network cards for the selected manufacturer. If you enter 0 (which means "all
manufacturers"), it will print all known network cards.

% 7
Enter the number for your network card. You can review the whole list by ente-
ring -1 at this prompt. Once you entered a known network card, makerom will
print it's name again for your information. Select a network card description
out of this list which matches your physical network card as close as possible.
Some manufacturers produce network cards in different versions, with different
chipsets. Those cards can have different PCI ID numbers, or require different
driver settings, even if their names look similar. If your card is not in the
list, it's because it is not included in the makerom database.
-
makerom will print a '*' character for each network card for which it could
find at least one suitable network driver. If makerom could not find a driver
for a network card, it might be because you did not properly install the driver.
In this case, netboot will ask you lateron for the path name of the driver if
you select such a network card.
-
If your network card is not included in the driver database, you either have
to edit the driver database file yourself, or contact the netboot author.
Alternatively, you can also select 0 at this prompt. makerom will then ask you
all required details it needs to properly use your network driver files. How-
ever, this is insecure. Some network cards require additional parameters which
are only available by using the network database, and which require internal
knowledge of the specific network driver. Therefore, you should only select 0
here if your network card is not in the network driver database, and you abso-
lutely know what you are doing.

% 8
You did not select a specific network card. makerom contains a database of
network cards, including specifications required to make them work with various
drivers. Some drivers require a special set of operating parameters, which
need internal knowledge of the driver to get configured correctly (for example,
the packet driver for the SiS900 network interface chip does not shrink after
startup as most others do, but instead increases it's size, so the minsize/max-
size parameters have to be specified correctly, or the driver will fail to
work). Only anwer "yes" to this question if you really know what you are doing.

% 9
This question will only be printed for PCI network cards. You have to enter
the card's vendor ID in hexadecimal notation here. For example, Intel chipsets
use the number 8086, but beware: Intel also builds network cards with chipsets
not built by them (for example, Intel has recently included the Digital chip-
sets into their product line), so you should not simply guess a number from the
manufacturer of your card. If you don't know the vendor ID for your network
card, try using a system information tool like AGSI, which prints these ID's.
Also, the interrupt list by Ralf Brown (which can be found on many Simtel mir-
rors) contains an extensive list of these numbers.

% 10
PCI cards have a device ID in addition to the vendor ID. It also has to be
entered as a hexadecimal number. Find out about this number by either using
the interrupt list (written by Ralf Brown, you can find it on any Simtel
mirror), or by using a system information tool like AGSI. You can also often
find the correct ID number by looking at Windows .INF files distributed with
the drivers for your network card.

% 11
Each PnP card (either for ISA, EISA or MCA bus) has a unique 7-character iden-
tifier assigned to it by the manufacturer. Unfortunately, there is no easy way
to find it out. It can sometimes be found in some Windows configuration files
distributed together with your network card. However, this parameter is only
necessary for some BIOSes to select the boot order when using BBS. If you are
unable to determine the PnP ID of your card, try to leave this field empty. The
PnP ID consists of a 7 character string, with the first 3 characters being upper
case letters, and the last 4 character representing a hexadecimal number, like
"PNP807D", for example.

% 12
When you selected a pre-known network card, makerom will list here a description
for all network drivers it could find. Select the driver you want to use, or
enter 0 to specify a different driver which is not listed here. The default for
this question is for the driver with the least number of parameters required for
configuration, and/or the smallest driver available.

% 13
makerom knows about different network driver interfaces. Select the interface
which fits the network driver you want to use.

% 14
Enter the hardware interrupt number used by the network card, ranging from
2 to 15. This question will only be printed if the network driver is unable
to determine the hardware interrupt number by itself.

% 15
The I/O port base address in hex. This question will only be printed if the
network driver is unable to determine the I/O port base address by itself.

% 16
Some network cards use shared RAM for storing incoming packets. This parameter
specifies the base segment (not physical address!) of this memory. For example,
if your network card uses D8000 as its shared memory base, enter D800 here (a
segment is the physical address shifted to the right by four bits). This ques-
tion will only be printed if the network driver is unable to determine the
shared memory base address by itself.

% 17
For some network cards it's necessary to specify a DMA channel number. It can
range from 0 to 7. This question will only be printed if the network driver is
unable to determine the DMA channel number by itself.

% 18
This parameter is only necessary for network cards which have multiple physical
network connectors, and for which the driver is unable to detect the used con-
nector by itself. The meaning of this parameter depends on the driver used. The
numbers can range from -1 to +1, with -1 meaning "default".

% 19
This question asks about the number of bytes the network driver or DOS program
will occupy once it installed itself resident. If the program does not remain
in memory, enter 0 here (a network driver usually installs itself resident, and
you should therefore never use 0 for a network driver). Entering -1 will let
makerom guess a suitable value (which might be incorrect!). See the makerom(8)
man page for a further explanation of this parameter.

% 20
Here you can enter the number of bytes required to load the network driver or
DOS program into memory. Entering -1 will let makerom guess a suitable value
(which might be incorrect!). See the makerom(8) man page for a further expla-
nation of this parameter.

% 21
If you want to run some DOS program in addition to the network driver (only
available for packet and NDIS driver interfaces), you have to answer "yes" to
this question. These additional programs can, for example, configure the net-
work card for proper operation. For every program you want to run in addition
to the network driver you have to enter it's command line arguments and mini-
mum/maximum sizes like for a packet or NDIS network driver.

% 22
Enter the path name of the program you want to run in addition to the network
driver. If you don't specify an absolute path name here, it is taken relative
to the utilities directory specified in the makerom configuration file. You
can enter '*' in order to see a list of all suitable files. makerom will only
print file which end in ".com" or ".exe" as only those files are executable
by DOS.

% 23
Here you can enter the command line which should get passed to the DOS pro-
gram upon execution. You can leave it empty if the program does not require
any command line arguments.

% 24
All additional DOS programs get executed in the order they were entered into
makerom. With this question you can specify, if a particular program should be
run _before_ starting the network driver, or _after_ starting the network
driver. If you select "yes" here, makerom will reorder the list of programs to
execute so that this particular DOS program executes immediately before the
network driver gets started. Otherwise, the program will be put at the end of
the list of programs to execute.

% 25
If you have not selected a pre-known network card, you now have to enter the
path name of your network driver binary. If you enter a star character, makerom
will print a directory listing of the main network driver directory and it's
subdirectories, showing all files which look like a network driver. You can
either enter a full pathname, or a non-absolute name. In that case, makerom
will search the main network driver directory and it's subdirectories for the
driver binary.

% 26
For packet drivers you have to enter a command line. Usually, you have to give
the software interrupt number and I/O port, memory addresses etc. on that com-
mand line. How the command line has to look depends on the driver you are
using. The default used for the command line will be "0x%S", with the "%S"
being replaced by a default software interrupt number selected automatically by
makerom.

% 27
When using a packet driver, it is possible to include a debugger into the
bootrom for testing purposes. This debugger will split the screen when the
bootrom starts and will then print all incoming and outgoing packets into
the lower half of the screen. This debugging feature is only useful if you
have a thorough understanding of IP networking and if you can decode the
header information printed. Otherwise, don't use the debugger.

% 28
For NDIS drivers you have to enter the pathname of a PROTOCOL.INI file. Of
course, it does not have to be named PROTOCOL.INI, but it has to contain the
necessary PROTOCOL.INI information for the network driver. Such a file has
to be a normal text file which is organized into sections whose names are
enclosed into square brackets, and parameter. Each parameter consists of a
parameter name, an equal sign and a value. The section and parameter names
depend on the network driver. See your network driver documentation about
what this file has to contain and how it has to be written. You only have to
include the network card information into the PROTOCOL.INI file. There is no
need to specify any additional sections (for example for the protocol manager,
which does not exist in the bootrom). Any additional section just increases
the bootrom size unnecessarily. However, comments and blank lines in the
PROTOCOL.INI file get removed by makerom when it processes the file.

% 29
After you specified all parameters for a specific client, you can save this
information in the systems database. This allows you to recreate the bootrom
for the client lateron by running makerom with the -b or --batch-sys command
line option. makerom will then get all the data which you entered previously
out of the systems database, and create the bootrom without asking you any
question again.

% 30
Here you can enter a name under which to save all the bootrom configuration
data which you entered previously. If this name already exists in the systems
database, the old configuration will be overwritten without asking. You can
lateron refer to the bootrom configuration by specifying this system name
with the -b or --batch-sys command line option when calling makerom again.

% 31
Using the BIOS Boot Specification (BBS) the BIOS can sort the devices where
to look for an operating system. The netboot bootrom supports BBS by default
so that it is possible to enable or disable network booting through the BIOS
setup. Older systems do not support BBS, so the bootrom will automatically
use the Interrupt 19h or 18h boot mechanism. However, some BIOS do support
BBS but have the support implemented incorrectly (some Award BIOS are known
for this deficiency). The netboot bootrom is unable to determine this situ-
ation automatically, so you can disable BBS support here. By default, BBS
is enabled. Only disable it if the bootrom does not start up on system
reboot.

% 32
When more than one network card of this type is installed in the client system
the bootrom needs to know on which card it should act upon. The default action
is to use the device on which the bootrom has been installed. However, this
only works if the system supports BBS, and the bootrom is really installed on
a network card. If any of these requirements are not met, the bootrom will
take the first device it can find. If you select 0 with this question this
default action will be used. It is compatible to older bootrom versions.
If you enter some other number from 1 to 7, this default behaviour gets over-
ridden. Instead, the bootrom will always use the network card with the number
you entered. How the network cards are numbered is BIOS dependent. If an inter-
face card with the given number doesn't exist the bootrom will abort with an
error message.

% 33
If you entered a path name for a network driver, makerom will search it's
database to find a suitable driver description. If there is a description
in the database, and you say that it's correct, makerom will use the values
given in the database entry for your driver instead of asking you questions
about various driver properties.

% 34
If makerom can find a network driver in it's permanent repository, it doesn't
need to ask you for a driver file name in order to create a bootrom. If you
answer "yes" to this question, makerom will install your network driver binary
into this permanent repository. It can be in a system wide directory (for
example /usr/local/share/netboot/netdrvr or wherever you installed netboot),
or in your personal home directory (like ~/.netboot/netdrvr). 

% 35
Usually a DHCP client should send a unique client ID to the DHCP server,
which identifies the client against the server. The netboot bootrom constructs
such a client ID by using the hardware address of the ethernet network inter-
face. Some operating systems, which get loaded by the bootrom, do send their
own DHCP request, but without a client ID or with a client ID which is diffe-
rent from the one generate by the bootrom. In this case, the DHCP server will
assign two different IP addresses to the client - one for the bootrom with
it's client ID, and another one to the operating system. If you find that the
bootrom gets a different IP address from the DHCP server than the booted
operating system, you should answer "no" to this question. In all other cases
you should to answer "yes" (which is the default).

% 0
# end of help file

