This document includes step by step instructions which will help you to
configure your Racal InterLan Network Card with NI5210B chipset. It is based
on my experience while trying to set up my small home network in my appartment. I
have heared that setting up a network card under Linux can be a pain in the butt
but I really didn't have any idea it gets that nasty. Most of you probably know that
Racal InterLan is not produced anymore since 1990-91. It is an old network card
that has jumpers for memory addresses, RAM size, and IRQs. This seemed to be equal
to Chinese when I first learned about the card but later it all started making sence.
I would advise you however to get a little bit of information on the terms pointed
above because you will only really understand how to set the jumpers if you know
what they are really for. When you see the 18 jumper slots, please, don't get scared,
it will all make sence at the end.
I will make a note here that my work on Racal InterLan NI5210B has been done on a Gateway 2000, People PC, Intel PI - 166, 586, 64 RAM, 2 HD (2.5G, 2G), running Red Hat Linux 7.0.
Why to choose Racal? The network card is old, and kinda slow, but look at it this way - you can probably purchase one for $ 2-5 from any computer show that deals old hardware parts It is totally neat for home networks because it doesn't really need a hub or anything else except the cable. So basically you save a good ammount of money and get to have a network in the house. Doesn't really get better than this!
Let's look at the network card a little bit closer. There can be a bit of a confusion
for those of you that don't really know about the network card hardware. Interesting
things to see are some of the components of the network card that would eventually help
you in deciding how to set the jumpers. The longest chip on the board is the processor.
It is a 82586 LAN coprocessor. It's purpose is to handle the data carriage, transmission
errors, data-link level processing data. It handles transmission as well as reception of
that data and notifies the CPU that it has arrived. That's about as much as you'll need
to know about it. The RAM that is built-in for it and it
can be 8 or 16 Kbytes. The RAM holds data that was received and processed by the
coprocessor, holds data that is ready to "go out" to the network, and it is a link between
both processors (coprocessor and your PC CPU). Remember, if there is an empty slot on your
network card this is probbaly an empty slot for extra RAM, and your card has probably
8Kb RAM. If you are a little bit curious as I am:), you will be very excited to know that
the MAC address is written on a sticker on top of the chip that holds the 48-bit number.
(Isn't this c00l:).
Before I start with the jumpers I need to tell you that in order to get the network
card working you will need a BNC Thin-Ethernet cable. You will also need several other
things as well. I will give you an example with what I have set up at home. For
connecting 2 computers you will need 2 T connectors, 2 terminators (which are just
resistors), and ofcourse some cable:)
O.K. so far so good. Now let's look closely at the jumpers. There are 5 types of jumpers that perform different tasks. I will go through each individually to describe how changing the settings can affect the configuration. I will also provide you with a set of tables that can help you customise your own NI5210.
I can say that IRQ jumpers are the easiest to set. There are numbers for IRQs and you put the jumper on the slot that you want. The slots are numbered from 2 to 7. On my machine I have planty of stuff hooked up and my only free IRQ was 8 and then 9. Now, apparently on Linux IRQ 9 = IRQ 2 (Don't ask me why) so the problem is solved. I advise you to put the setting the IRQ jumper to 2. For just in case to make sure something is not already there you can type in "cat /proc/interrupts" which will give you a good listing of the IRQs that are already in use. This can be a pain sometimes. Some IRQs won't show up in "/proc/interrups". To see them you need to enter the BIOS of the compputer and write them down and then compare what you have written with the "/proc/interrupts". If you need some additional information about the status of the IRQs and the ISA and PNP devices on your system you can also try "isapnp" (read the manpage for it first if you want to understand anything at all:))
The I/O base address is an address in the PC by which the it identifies the piece of hardware.
In operation the PC uses it to gain access to the NI5210 command and status registers.
On the hardware part the jumpers are located in the bottom left corner next to the IRQ jumpers.
The jumpers are included with tiny brackets with a title "IOBA" and are numbered 8 through 3.
The original settings of the card are set to IOBA "0x360". Many of you probably can figure
out that the IOBA MUST be different than any other address of expansion boards on the PC.
This IO address must not overlap any other device address on the PC. NI5210 IOBA must be at
least 0x8 less than any other BA on the PC.
Ok. Now to continue with calculating the IOBA. It is important to know that the IOBA starts at
0x200 and ends at 0x3f8. Knowing this imagine the following: 0x200 is 1 000 000 000 binary.
What we really will need to pay attention here is the the values of the second to the seventh bits
from left to right. Ok so imagine this
Value | 0 | 0 | 0 | 0 | 0 | 0 |
Slot | 8 | 7 | 6 | 5 | 4 | 3 |
Address HEX | Address BIN | 8 | 7 | 6 | 5 | 4 | 3 |
0x200 | 1000000000 | A | A | A | A | A | A |
0x208 | 1000001000 | A | A | A | A | A | B |
0x210 | 1000010000 | A | A | A | A | B | A |
0x218 | 1000011000 | A | A | A | A | B | B |
0x220 | 1000100000 | A | A | A | B | A | A |
0x228 | 1000101000 | A | A | A | B | A | B |
0x230 | 1000110000 | A | A | A | B | B | A |
0x238 | 1000111000 | A | A | A | B | B | B |
0x240 | 1001000000 | A | A | B | A | A | A |
0x248 | 1001001000 | A | A | B | A | A | B |
0x250 | 1001010000 | A | A | B | A | B | A |
0x258 | 1001011000 | A | A | B | A | B | B |
0x260 | 1001100000 | A | A | B | B | A | A |
0x268 | 1001101000 | A | A | B | B | A | B |
0x270 | 1001110000 | A | A | B | B | B | A |
0x278 | 1001111000 | A | A | B | B | B | B |
0x280 | 1010000000 | A | B | A | A | A | A |
0x288 | 1010001000 | A | B | A | A | A | B |
0x290 | 1010010000 | A | B | A | A | B | A |
0x298 | 1010011000 | A | B | A | A | B | B |
0x2a0 | 1010100000 | A | B | A | B | A | A |
0x2a8 | 1010101000 | A | B | A | B | A | B |
0x2b0 | 1010110000 | A | B | A | B | B | A |
0x2b8 | 1010111000 | A | B | A | B | B | B |
0x2c0 | 1011000000 | A | B | B | A | A | A |
0x2c8 | 1011001000 | A | B | B | A | A | B |
0x2d0 | 1011010000 | A | B | B | A | B | A |
0x2d8 | 1011011000 | A | B | B | A | B | B |
0x2e0 | 1011100000 | A | B | B | B | A | A |
0x2e8 | 1011101000 | A | B | B | B | A | B |
0x2f0 | 1011110000 | A | B | B | B | B | A |
0x2f8 | 1011111000 | A | B | B | B | B | B |
0x300 | 1100000000 | B | A | A | A | A | A |
0x308 | 1100001000 | B | A | A | A | A | B |
0x310 | 1100010000 | B | A | A | A | B | A |
0x318 | 1100011000 | B | A | A | A | B | B |
0x320 | 1100100000 | B | A | A | B | A | A |
0x328 | 1100101000 | B | A | A | B | A | B |
0x330 | 1100110000 | B | A | A | B | B | A |
0x338 | 1100111000 | B | A | A | B | B | B |
0x340 | 1101000000 | B | A | B | A | A | A |
0x348 | 1101001000 | B | A | B | A | A | B |
0x350 | 1101010000 | B | A | B | A | B | A |
0x358 | 1101011000 | B | A | B | A | B | B |
0x360 | 1101100000 | B | A | B | B | A | A |
0x368 | 1101101000 | B | A | B | B | A | B |
0x370 | 1101110000 | B | A | B | B | B | A |
0x378 | 1101111000 | B | A | B | B | B | B |
0x380 | 1110000000 | B | B | A | A | A | A |
0x388 | 1110001000 | B | B | A | A | A | B |
0x390 | 1110010000 | B | B | A | A | B | A |
0x398 | 1110011000 | B | B | A | A | B | B |
0x3a0 | 1110100000 | B | B | A | B | A | A |
0x3a8 | 1110101000 | B | B | A | B | A | B |
0x3b0 | 1110110000 | B | B | A | B | B | A |
0x3b8 | 1110111000 | B | B | A | B | B | B |
0x3c0 | 1111000000 | B | B | B | A | A | A |
0x3c8 | 1111001000 | B | B | B | A | A | B |
0x3d0 | 1111010000 | B | B | B | A | B | A |
0x3d8 | 1111011000 | B | B | B | A | B | B |
0x3e0 | 1111100000 | B | B | B | B | A | A |
0x3e8 | 1111101000 | B | B | B | B | A | B |
0x3f0 | 1111110000 | B | B | B | B | B | A |
0x3f8 | 1111111000 | B | B | B | B | B | B |
The memory base address marks the beginning of the memory address in the memory space of the PC. This not only concernes the network card but also every expansion card on the PC. There are 4 jumpers for the MBA which are located under the IOBA marked with 17, 16, 15, 14. This is a little bit more weird. Imagine the number C0000. In binary - 1111 1111 1100 0000. The numbers 17, 16, 15, 14 are representing the 11, 12, 13, 14 bits from left to right in the number. So let's see what happens if the values are changed. So if you want to see how the card is set up (MBA wise) all you need to do is substitute 0 for A and 1 for B and voila. Note that the range here is from 0xC0000 to 0xEC000.
Quick Reference Table:
Address HEX | Address BIN | 17 | 16 | 15 | 14 |
0xc0000 | 1111111111000000 | A | A | A | A |
0xc4000 | 1111111111000100 | A | A | A | B |
0xc8000 | 1111111111001000 | A | A | B | A |
0xcc000 | 1111111111001100 | A | A | B | B |
0xd0000 | 1111111111010000 | A | B | A | A |
0xd4000 | 1111111111010100 | A | B | A | B |
0xd8000 | 1111111111011000 | A | B | B | A |
0xdc000 | 1111111111011100 | A | B | B | B |
0xe0000 | 1111111111100000 | B | A | A | A |
0xe4000 | 1111111111100100 | B | A | A | B |
0xe8000 | 1111111111101000 | B | A | B | A |
0xec000 | 1111111111101100 | B | A | B | B |
The extended memory jumpers are located at the bottom of the row together with IOBA and MBA. they are noted as XME and XRE. I
don't really know how to make the calculations on this set of jumpers so if anyone knows, please let me know. It is important to
know that if you have:
Quick Reference Table:
Setting | XME | XRE |
8-Kbyte RAM | 1 | _ |
16-Kbyte RAM | 0 | 0 |
Optional Boot PROM Device | 0 | 1 |
This jumper should be enabled only if the NI5210 is to be installed in slot 8 of an IBM PC XT or compatible. So I imagine most of you don't really need to enable it. Just leave it hanging on only ONE of the pins.
Now comes the last and best. After reading for 7 hours and going through minimum 60 web pages I finally managed to make my NI5210 work. As you can imagine I was pretty much pleased. Now comes the easy part. You need to put the configured card in the ISA PNP slot of your PC, close the lid and hook it up to the network. Turn on your PC and log in as root. Now go to:
/lib/modules/kernel version/net/ |
ni52.o |
insmod ni52 |
io=IOBA's value irq=IRQ setting memstart=MBA's value memend=MBA's value + RAM's value |
# insmod ni52 io=0x360 irq=9 memstart=0xd0000 memend=0xd2000 |
/etc/rc.d/init.d/network restart |
/etc/modules.conf |
alias eth0 ni5 options ni52 io=0x360 irq=9 memstart=0xd0000 memend=0xd2000 |