--pgp-sign-Multipart_Wed_Jul__2_10:18:31_1997-1
Content-Type: multipart/mixed;
boundary="Multipart_Wed_Jul__2_10:18:31_1997-1"
Content-Transfer-Encoding: 7bit
--Multipart_Wed_Jul__2_10:18:31_1997-1
Content-Type: text/plain; charset=US-ASCII
This is an update to the last version of this document. It contains
all the changes suggested by Evan.
--Multipart_Wed_Jul__2_10:18:31_1997-1
Content-Type: text/plain; charset=US-ASCII
There are a couple of common problems with getting an EPROM recognized
by the PC. First of all, you should try to make sure, that your
network card, the actual EPROM chip and the image file all agree on
the same size. This means, if your image is
- 8192 bytes long, you need a 2764 EPROM chip and have to configure
the card to 8kB
- 16384 bytes long, you need a 27128 EPROM chip and have to
configure the card to 16kB
- 32768 bytes long, you need a 27256 EPROM chip and have to
configure the card to 32kB.
There is a very simple naming scheme to all of the 28pin chips in the
27xx family. The first two digits determine the family; this is always
'27'. Then there might by some letters that usually refer to the
architecture. In most cases this is a 'C', which stands for
CMOS. Every ones in a while you might see different letters as these
markings are manufacturer specific. The next digits determine the size
in kilobits. As most people have an easier time with thinking in bytes
rather than bits, you should divide the number by a factor of
eight. To the best of my knowledge, the smallest member in the 27xx
family was the 2708, but you are unlikely to ever see one of
them. This is ancient technology. The largest chip, that still fits
into a 28pin socket is the 27512. Everything larger than this requires
more pins. There are two other notable families of chips; the 28xx and
the 29xx series. While they are similar in design to the 27xx series,
there are subtle differences and these chips are not usually
interchangeable. The big advantage over the 27xx family is, that both
of these other families implement electrically erasable and
re-programmable EEPROMs. For further information check with the
manufacturer's data sheets and have a look at the design of the
FlashCard. Depending on the manufacturer, you might find other
markings on your chip. Usually, you will find a reference to the
access time. Common values are 250ns, 150ns, and 120ns; if you have
the choice, avoid chips with 250ns access time. Other letters often
refer to the proper temperature range, but these markings are very
different between different manufacturers.
Some older cards do not support 32kB chips, so you might want to try
to get a smaller image file. You should almost always be able to
create an image file that fits into 16kB; if you use compression and
do not enable all of the features, then you will even be able to build
images that fit into 8kB. As a general rule, it is preferable to have
smaller images, because this will leave more buffers for DOS; under
Linux there is (usually) no noticeable difference.
Sometimes, you might be unable to get hold of an EPROM with the
required size. Nowadays, 27256 EPROMs seem to be the most popular and
anything smaller than this might be hard to find. As the 27xx series
of chips was designed to be backwards compatible, you can almost
always replace a 27256 for one of the smaller chips. If you are
extremely unlucky, this might not work with your equipment, but it is
at least worth a try if you cannot otherwise get any 2764 or 27128
chips.
There are a couple of things to watch out for, though, if you intend
to substitute the EPROM with one of the bigger models. The bigger
EPROMs have one or two additional address lines. Depending on the
layout of your network card, these additional lines might be pulled
high, low or left floating. Thus the best solution is, to create a new
image that has exactly the same size as the EPROM by attaching several
copies of the original image file to each other. E.g. if you had an
image called "ne.rom" that was 16kB, but you want to burn it into a
32kB EPROM you would do "cat ne.rom ne.rom > ne-27256.rom". The
corresponding DOS command is "copy /b ne.rom + /b ne.rom
ne-27256.rom".
You should now configure the ethernet card as if you were using an
EPROM that is exactly the same size as the original image. So in the
above example, you would configure your card for an 27128 EPROM even
though you plug in a 27256 chip.
After burning the EPROM and configuring the network card, you should
be all set to boot from the card. If this does not work though, there
are a couple of suggestions for locating possible problems.
Use your EPROM burner to read out the contents of the EPROM and make
sure, that it contains the data that you want it to have. Compare the
data against the original image file.
Start DOS and launch the "debug" application. Try to locate the EPROM
and try to read its contents. Typing '?' will give you a brief summary
of the commands. Usually, the EPROM will be mapped somewhere in the
address range from 0xC8000 to 0xE8000. DOS uses segmented adresses, so
you will have to specify these numbers as C800:0000 to
E800:0000. Please note, that the first number contains _four_ rather
than _five_ digits. Just strip of the last digit, if your ethernet
program uses the five digit notation.
E.g. if you expect the image to be mapped at D000, you would type "d
D000:0000". You should now see a hexdump that corresponds to the
first few bytes of the ROM image file. You can use the UNIX command
"od -tx1 ne.rom" to verify that the values are correct. If you do not
find the EPROM image anywhere, then you should test if you are using
the "debug" command correctly; verify the contents at address
C000:0000. This is, where graphics cards put their ROM image; you can
probably read some kind of copyright message within the first few
lines of the memory dump. After successfully locating the start of
the boot image, you can now check that it is mapped all the
way. Assuming that you have a 16kB image that starts at address
D000:0000, the last used address would be D3FF:000F. As the last few
bytes of the image might be unused, you might want to check from --
say -- D300:0000 to D400:0000. You do this by typing "d D300:0000
1000".
Using "debug", you can spot some of the more obvious mistakes. A
common problem is that your network card has not been configured to
match the size of the image file and/or the EPROM type. As a result,
you will either see only part of the image (not neccessarily the first
part, though) or you will see the image repeated after every 8kB, 16kB
or 32kB boundary. If you suspect that this might be the case, then you
should check every 8kB boundary. As 8kB equals 0x2000, you need to
increment the segmented addresses in steps of 200.
There have been reports of ethernet cards, that map some constant data
in the last few bytes of the ROM image. This is supposedly done to
help with autodetection, but it causes serious problems with
"etherboot" and "netboot". You will notice this when you compare the
entire ROM dump against the image file that you burned into the
EPROM. If you happen to have one of these cards, please report to us
and we will provide you with a fix.
If you do not find the image at all, or if there are errors in the
data, then the first thing to check are your BIOS settings. Some
motherboards can map RAM into the space where you would want to map
your EPROM. Make sure that this is not happening. Also, even though
you ideally want the EPROM to be cached, some motherboards seem to
have problems with this configuration. It might be worth a try to
disable caching for this memory range. If you believe that all of your
BIOS settings are correct, then the next thing to check is that there
are no other extension cards that try to use the same memory
space. Some network cards come with test programs that try to discover
those problems, but this does not always work reliably. If in doubt,
remove all other unneeded extension cards and see if that makes a
difference. If you use a network card, that can be accessed in a
memory mapped mode (e.g. WD80x3 cards), then make sure that you do not
map the RAM buffer into the same space as the EPROM data
(incidentally, make sure that the RAM buffer is never cached by the
motherboard). Some cards can be run both in NE2000 and WD80x3 mode;
these cards have been reported to not map any EPROM data when
configured in WD80x3 compatibility mode. With most cards you need to
explicitly enable mapping of the EPROM, so double-check that this
feature is turned on. If all of this fails, try to get a faster EPROM
chip. Usually, EPROM chips that are at least as fast as 150ns should
be OK; chips that only do 250ns will probably have difficulties with
some motherboard designs.
If you discover that none of these suggestions were helpful in your
particular case, then try to collect as much information as you can
and report to the mailing list and/or the authors. We will try to help
you directly and then update this document accordingly.
--Multipart_Wed_Jul__2_10:18:31_1997-1
Content-Type: text/plain; charset=US-ASCII
--
Markus Gutschke Internet: markus@infoscape.com
Infoscape, Inc Phone: +1-415-537-3778
657 Mission Street, Suite 200
San Francisco, CA 94105
Disclaimer: The above message represents my personal opinion; It does
not constitute an offical statement by Infoscape!
--Multipart_Wed_Jul__2_10:18:31_1997-1--
--pgp-sign-Multipart_Wed_Jul__2_10:18:31_1997-1
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit
-----BEGIN PGP MESSAGE-----
Version: 2.6.2
iQCVAwUBM7qNaxqJqDLErwMxAQG/wQP/c9//KAV810r3MbdeKwhAlE3eLxr1vbV7
5ps8ltPi8LT6T/RQ8W5vxQy00xza5HS6vrp2Jj6FI8nauY6gKw0/mG7mmKx6uEIk
okMF55stWaGQiFSGvWqJW7pNquBQGI5bXPekVBoB9WRcT0jluiLUyJumbeyOYtDh
rXJaZwgcibA=
=K8WI
-----END PGP MESSAGE-----
--pgp-sign-Multipart_Wed_Jul__2_10:18:31_1997-1--
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.