--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.