Blue Heat/PCI Software Installation Guide for SCO UnixWare 7

Introduction

The instructions below are designed to assist users with the software installation of Blue Heat PCI serial adapters under a SCO UnixWare platform. The following instructions are specifically for SCO UnixWare 7. If you are using a different version of SCO Unixware, contact the Connect Tech Technical Support department for more information about installing the Blue Heat PCI serial driver.

Back Up the Kernel

It is always a good idea to back up the kernel before you decide to recompile it. Although this step is optional, it is highly recommended.
To make a backup of your current kernel, issue the following commands:

# cd /stand
# cp unix unix.safe

Now you will have a copy of your current kernel, called kernel.safe. You will be able to boot this kernel if a recompile causes a kernel panic, or if you cannot boot your recompiled kernel.

Extracting the Driver

You will be able to attain the Connect Tech Inc. Blue Heat PCI serial driver in one of two fashions; downloaded from the internet, or on a diskette that is shipped with the Blue Heat hardware. In either case, the directory where you decide to place it will now be referenced by {direct}. Typically the file is placed in a /usr directory, but it is your choice.

To extract the driver, issue the following commands:
# cd {direct}
# tar -xvf BH-UW7*.tar
Copy the image to a floppy and use the dd utility to extract the files.

Within the {direct} directory, you should now see two more directories, named utils and driver. The driver directory will contain the Blue Heat serial driver, while the utils directory will contain a few useful utilites to set the line disciplines/modes for the Blue Heat ports.

Installing the Driver

To install the serial driver, issue the following commands:

# cd {direct}/driver
# /etc/conf/bin/idinstall -M bh
# /sbin/dcu -S

Remember that {direct} is the directory where you initially placed the Blue Heat serial driver. After this step is complete, the unit field in /etc/conf/sdevice.d/iasy will have to be updated to take into account the additional Blue Heat ports. Use your favorite text editor to open up this file. When opened, it will look similiar to the line below:

iasy Y 4 0 0 0 0 0 0 0 -1

What you will need to do is add the number of Blue Heat ports you are going to install to the number beside the “Y”, which in this case is four (4).
For example, if you were going to install two (2) Blue Heat boards, each of which had eight (8) ports each, you would be installing a total of 16 Blue Heat ports. Therefore, you should edit the iasy file to look like this:

iasy Y 20 0 0 0 0 0 0 0 -1

After you have finished editing the file, exit the text editor. Now that this is done, we need to ‘tweak’ UnixWare’s boot time logging. We need to increase the logging buffer size so that nothing gets lost in the boot log, since we will need to look at the log shortly.

To increase the logging buffer size, issue the following command:
# /etc/conf/bin/idtune PUTBUFSZ 10000

Now, rebuild the kernel by issuing the following command:
# /etc/conf/bin/idbuild -B

After the kernel has been rebuilt, reboot the system
# init 6

Editing the Boot Time Scan Table

The boot time scan table will need to be edited to account for the new Blue Heat ports. Each of the ports will need to have the I/O address and IRQ number entered. The file you will be editing in this step is called space.c, and will be located in the /etc/conf/pack.d/bh directory.

The first thing that we need to do is get the IRQ and I/O addresses of the Blue Heat ports. You can find this information from the boot log.

To view the contents of the boot log, issue the following command:
# vi /var/adm/log/osmlog

In this file, look for the driver signon:
NOTICE: bh vx.xx Copyright (c) 2002 Connect Tech Inc.

Immediately after this line you should see entries for the Blue Heat ports, which will look something like this:
NOTICE: bh Unknown type UART at IO 0x0000A800 IRQ 10

In this example, the I/O address would be A800, and the IRQ would be 10. This is the information that needs to be added to the boot time scan table.

Open the boot time scan table by issuing the following command:
# vi /etc/conf/pack.d/bh/space.c

Now in space.c, look for the table called bh_uart_scantbl. In this table, you will add the following line for each Blue Heat port:

{ 0xA800, 10, NOTYPE, NOSTATE, 8, 16, (struct termios *)0, (struct termiox *)0, 0 }

Notice here that 0x800 is the I/O address of the port, and 10 is the IRQ value.

Now, look for MAX_SCAN_DEVS, and update this value to reflect the number of ports in the bh_uart_scantbl table.

Adjust the variable bh_sminor in Space.c to account for other already installed serial ports. For instance, if you had COM1 and COM2 installed already then bh_sminor should be at least 8. For each port, iasy assigns four (4) minor numbers, starting at 0. So COM1 you be minors 0-3, COM2 minors 4-7 and then the Blue Heat ports 8+. You can use DCU to look at your current config, or look at the minor numbers of the already existing /dev/tty* files.

Creating the Device Nodes

You will need to create device nodes for your Blue Heat ports. To do this, you will need to edit the file /etc/conf/node.d/bh.
This particular file contains instructions on what to do, so it won’t be repeated here.

Final Build

Once more, you will have to recompile and rebuild the kernel. Issue the following commands:

# /etc/conf/bin/idbuild -B
# init 6

This will finish off the installation. You may also want to include the header file if you are going to be developing applications which use the Blue Heat serial ports. To do so, issue the following commands:

# mkdir -p /usr/include/sys/cti
# cp bh.h /usr/include/sys/cti

Go to Top