Impulse 7804e User Manual

Page 17

Advertising
background image

©Sealevel Systems, Inc.
SL9219 - 06/2011

7804e Manual

17

This method could also be necessary if more than 4 8250 serial ports must be used at
the same time. This requires modifying the kernel's configuration to support more
ports.

Navigate to the directory containing kernel sources (usually /usr/src/linux).

First verify that the desired device is not already supported by the 8250 driver. Open the
header file pci_ids.h located in the include/linux subdirectory. Find the keyword
"SEALEVEL". There will be a list of definitions assigning macro names like
"PCI_DEVICE_ID_SEALEVEL_*" to hexadecimal Sealevel product IDs. Scan through the list
looking for your device's product number. If it is listed, then that device is already
supported by the 8250 driver. If it is not listed, make a new entry with a unique macro
name and the corresponding product ID.

.../include/linux/pci_ids.h

#define PCI_DEVICE_ID_SEALEVEL_COMM8 0x7801 //existing entry

#define PCI_DEVICE_ID_SEALEVEL_UCOMM8 0x7804 //new entry

Next add the device to the 8250's device detection code. Edit the 8250_pci.c file located in
the drivers/serial/ subdirectory. Again, find the keyword "SEALEVEL". There will be an array
of pci_device structs. Scroll to the last entry with a SEALEVEL vendor macro. Make a new
entry using the product ID that was created in the previous step. The last element of this
entry will be a descriptor to a specific board configuration which is hardware dependent.

Contact engineering for exact instructions to add a specific product's configuration.

.../drivers/serial/8250_pci.c

{PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_COMM8, PCI_ANY_ID,

PCI_ANY_ID, 0, 0, pbn_b2_8_115200 },
{PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_UCOMM8,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_8_115200 },

Next verify that a reasonable number of 8250 serial ports can be allocated by the device
driver. Edit the .config file located in the root of the kernel source directory. Search for the
keyword "CONFIG_SERIAL_8250". And verify that appropriate values are used for each
variable.

.../.config

CONFIG_SERIAL_8250_NR_UARTS=48

CONFIG_SERIAL_8250_RUNTIME_UARTS=48

Now recompile the driver module, remove the old module, and insert the new one.


Advertising