Mainpine

Q1. How do I install RockRorce boards with Redhat Linux 7.3?

Once you have physically installed the board, boot up your system. The first port on the board may be automatically detected. If so, you can use this as a starting point for your own configuration. You should follow the instructions below manually to get the correct configuration before committing it to your startup files. However, once you have the configuration working we suggest putting these commands in a file such as /etc/rc.serial and make sure this is run at startup.

Checking the board version

Log in as root, and type:

/sbin/lspci -d 1522:*

This will display all Mainpine boards in your system and will produce output similar to this:

00:0a.0 Modem: MainPine Ltd PCI <-> IOBus Bridge (rev 32)

Then type the following, replacing the green section below with the output from your system that corresponds to the green section above:

/sbin/lspci -nvs 00:0a.0

You will then see something like this:

00:0a.0 Class 0703: 1522:0100 (rev 32)
Subsystem: 1522:0d00
Flags: medium devsel, IRQ 10
I/O ports at e000 [size=128]
Memory at df100000 (32-bit, non-prefetchable) [size=1M]

If the value above in blue, in this case 0d00, is either 0200, 0300, 0400 or 0500 then you have an older revision board, and you can find instructions for it by following this link.

The subsytem ID above (in blue) corresponds to the DUO+, QUATRO+ and OCTO+ boards. Please follow the links below to the relevant instructions for your board:

RockForce DUO+ 2 port analog board (0c00) installation

From the command we ran earlier, we have the following information:

00:0a.0 Class 0703: 1522:0100 (rev 32)
Subsystem: 1522:0c00
Flags: medium devsel, IRQ 10
I/O ports at e000 [size=128]
Memory at df100000 (32-bit, non-prefetchable) [size=1M]

This tells us two pieces of information that we need. Firstly, the board interrupt (in this case 10) and the i/o base address (in this case e000). The first port is located at the base address, and each subsequent port is located at an i/o address 8 bytes further on. In the example case, that means the second port is located at address E008. There is also something we have to configure for proper operation called an interrupt latch. It is important that it is properly configured, as system errors may occur otherwise, so only put this in startup files once it is tested. The address of the latch is 60h further on than the base address - for example E060 in this case.

This translates to the following:

Device
i/o addr calculation
Example i/0 addr
Port 1
Base+0x00
0xE000
Port 2
Base+0x08
0xE008
Multiport Interrupt Status Register
Base+0x60
0xE060

So, putting this together, in order to configure the board, we type:

setserial /dev/ttyS4 port 0xE000 irq 10 autoconfig ^fourport
setserial /dev/ttyS5 port 0xE008 irq 10 autoconfig ^fourport
setserial /dev/ttyS4 set_multiport port1 0xE060 mask1 0x03 match1 0x00

The parts highlighted above in colour are the ones that change based on your system. All the rest must remain the same. There is one caveat to this, we are assuming the system automatically assigns the first port to ttyS4. This is almost always the case, but if the system automatiically assigns another value then you should start with that and increment for each additional port.

The system configuration can then be checked by typing:

setserial /dev/ttyS4

This will produce output similar to:

/dev/ttyS4, UART: 16550A, Port: 0xe000, IRQ: 10

You can also confirm that the interrupt latch is properly configured by typing the following:

setserial /dev/ttyS4 get_multiport

The results will look similar to this:

Multiport config for irq 10:
Port monitor = 0x0
Port1 = 0xe060, mask=0x3, match=0x0
Port2 = 0x0, mask=0x0, match=0x0
Port3 = 0x0, mask=0x0, match=0x0
Port4 = 0x0, mask=0x0, match=0x0

Do not be confused by the listing of 4 ports here - these refer to 4 possible latch configurations, and only Port1 will have non-zero values.

Now the board is properly installed, you can test it by using minicom. If you run it using the -o option then it will not try and initialise the modems when you connect. Open minicom, press ctrl-A and then "o" to enter the setup menu where you can select /dev/ttyS4 for example. Once connected, if you type AT and press enter, the modem should respond with OK. You can also type ATI and enter, and the modem will respond with information about itself.

Your RockForce board is now properly configured. Please take a look at our more information section on Linux-based applications

RockForce QUATRO+ 4 port analog board (0d00) installation

From the command we ran earlier, we have the following information:

00:0a.0 Class 0703: 1522:0100 (rev 32)
Subsystem: 1522:0d00
Flags: medium devsel, IRQ 10
I/O ports at e000 [size=128]
Memory at df100000 (32-bit, non-prefetchable) [size=1M]

This tells us two pieces of information that we need. Firstly, the board interrupt (in this case 10) and the i/o base address (in this case e000). The first port is located at the base address, and each subsequent port is located at an i/o address 8 bytes further on. In the example case, that means the second port is located at address E008. There is also something we have to configure for proper operation called an interrupt latch. It is important that it is properly configured, as system errors may occur otherwise, so only put this in startup files once it is tested. The address of the latch is 60h further on than the base address - for example E060 in this case.

This translates to the following:

Device
i/o addr calculation
Example i/0 addr
Port 1
Base+0x00
0xE000
Port 2
Base+0x08
0xE008
Port 3
Base+0x10
0xE010
Port 4
Base+0x18
0xE018
Multiport Interrupt Status Register
Base+0x60
0xE060

So, putting this together, in order to configure the board, we type:

setserial /dev/ttyS4 port 0xE000 irq 10 autoconfig ^fourport
setserial /dev/ttyS5 port 0xE008 irq 10 autoconfig ^fourport
setserial /dev/ttyS6 port 0xE010 irq 10 autoconfig ^fourport
setserial /dev/ttyS7 port 0xE018 irq 10 autoconfig ^fourport
setserial /dev/ttyS4 set_multiport port1 0xE060 mask1 0x0F match1 0x00

The parts highlighted above in colour are the ones that change based on your system. All the rest must remain the same. There is one caveat to this, we are assuming the system automatically assigns the first port to ttyS4. This is almost always the case, but if the system automatiically assigns another value then you should start with that and increment for each additional port.

The system configuration can then be checked by typing:

setserial /dev/ttyS4

This will produce output similar to:

/dev/ttyS4, UART: 16550A, Port: 0xe000, IRQ: 10

You can also confirm that the interrupt latch is properly configured by typing the following:

setserial /dev/ttyS4 get_multiport

The results will look similar to this:

Multiport config for irq 10:
Port monitor = 0x0
Port1 = 0xe060, mask=0xf, match=0x0
Port2 = 0x0, mask=0x0, match=0x0
Port3 = 0x0, mask=0x0, match=0x0
Port4 = 0x0, mask=0x0, match=0x0

Do not be confused by the listing of 4 ports here - these refer to 4 possible latch configurations, and only Port1 will have non-zero values.

Now the board is properly installed, you can test it by using the minicom program that is a part of most standard Linux distributions. If you run it using the -o option then it will not try and initialise the modems when you connect. Open minicom, press ctrl-A and then "o" to enter the setup menu where you can select /dev/ttyS4 for example. Once connected, if you type AT and press enter, the modem should respond with OK. You can also type ATI and enter, and the modem will respond with information about itself.

Your RockForce board is now properly configured. Please take a look at our more information section on Linux-based applications

RockForce OCTO+ 8 port analog board (1d00) installation

From the command we ran earlier, we have the following information:

00:0a.0 Class 0703: 1522:0100 (rev 32)
Subsystem: 1522:1d00
Flags: medium devsel, IRQ 10
I/O ports at e000 [size=128]
Memory at df100000 (32-bit, non-prefetchable) [size=1M]

This tells us two pieces of information that we need. Firstly, the board interrupt (in this case 10) and the i/o base address (in this case e000). The first port is located at the base address, and each subsequent port is located at an i/o address 8 bytes further on. In the example case, that means the second port is located at address E008. There is also something we have to configure for proper operation called an interrupt latch. It is important that it is properly configured, as system errors may occur otherwise, so only put this in startup files once it is tested. The address of the latch is 60h further on than the base address - for example E060 in this case.

This translates to the following:

Device
i/o addr calculation
Example i/0 addr
Port 1
Base+0x00
0xE000
Port 2
Base+0x08
0xE008
Port 3
Base+0x10
0xE010
Port 4
Base+0x18
0xE018
Port 5
Base+0x20
0xE020
Port 6
Base+0x28
0xE028
Port 7
Base+0x30
0xE030
Port 8
Base+0x38
0xE038
Multiport Interrupt Status Register
Base+0x60
0xE060

So, putting this together, in order to configure the board, we type:

setserial /dev/ttyS4 port 0xE000 irq 10 autoconfig ^fourport
setserial /dev/ttyS5 port 0xE008 irq 10 autoconfig ^fourport
setserial /dev/ttyS6 port 0xE010 irq 10 autoconfig ^fourport
setserial /dev/ttyS7 port 0xE018 irq 10 autoconfig ^fourport
setserial /dev/ttyS8 port 0xE020 irq 10 autoconfig ^fourport
setserial /dev/ttyS9 port 0xE028 irq 10 autoconfig ^fourport
setserial /dev/ttyS10 port 0xE030 irq 10 autoconfig ^fourport
setserial /dev/ttyS11 port 0xE038 irq 10 autoconfig ^fourport
setserial /dev/ttyS4 set_multiport port1 0xE060 mask1 0xFF match1 0x00

The parts highlighted above in colour are the ones that change based on your system. All the rest must remain the same. There is one caveat to this, we are assuming the system automatically assigns the first port to ttyS4. This is almost always the case, but if the system automatiically assigns another value then you should start with that and increment for each additional port.

The system configuration can then be checked by typing:

setserial /dev/ttyS4

This will produce output similar to:

/dev/ttyS4, UART: 16550A, Port: 0xe000, IRQ: 10

You can also confirm that the interrupt latch is properly configured by typing the following:

setserial /dev/ttyS4 get_multiport

The results will look similar to this:

Multiport config for irq 10:
Port monitor = 0x0
Port1 = 0xe060, mask=0xff, match=0x0
Port2 = 0x0, mask=0x0, match=0x0
Port3 = 0x0, mask=0x0, match=0x0
Port4 = 0x0, mask=0x0, match=0x0

Do not be confused by the listing of 4 ports here - these refer to 4 possible latch configurations, and only Port1 will have non-zero values.

Now the board is properly installed, you can test it by using the minicom program that is a part of most standard Linux distributions. If you run it using the -o option then it will not try and initialise the modems when you connect. Open minicom, press ctrl-A and then "o" to enter the setup menu where you can select /dev/ttyS4 for example. Once connected, if you type AT and press enter, the modem should respond with OK. You can also type ATI and enter, and the modem will respond with information about itself.

Your RockForce board is now properly configured. Please take a look at our more information section on Linux-based applications

< Linux questions
< Questions

 

 
© Mainpine 1997-2006 *Legal information