Oxford Serial Cards

Oxford Serial Cards

Post by Liam Fr » Mon, 20 Oct 2003 23:05:20



A while ago I added two PCI dual-serial, single-parallel cards to my Linux
box.
I did cat /proc/pci to get card details (addresses, IRQ's, etc).
I added some 'setserial' entries to my /etc/rc.d/rc.serial and all was fine.
That is, until I went from RedHat 7.2 to RedHat 8.0.
Now I get "address already in use" whenever my rc.serial script runs.
I've gone though my entire procedure again ... cat'ing /proc/pci to check
address and IRQ's ... and what was reported in 7.2 is that same that being
reported in 8.0  So if the memory addresses and IRQ's haven't changed, why
is my rc.setserial script failing?

# WTF 17-Nov-02
# Add these four lines to support my Oxford dual-serial/single-parallel
cards
# run 'cat /proc/pci' to get IRQ and port values
# create this file
# run 'ln -s /etc/rc.d/rc.serial /etc/rc.serial'
# this script is run by '/etc/rc.d/rc.sysinit'
#
setserial /dev/ttyS2 uart 16950 irq 9 port 0xecf8
setserial /dev/ttyS3 uart 16950 irq 9 port 0xece8
setserial /dev/ttyS4 uart 16950 irq 10 port 0xec98
setserial /dev/ttyS5 uart 16950 irq 10 port 0xec88

Here's a snip from 'cat /proc/pci'

  Bus  2, device   7, function  0:
    Serial controller: Oxford Semiconductor Ltd OX16PCI952 (Dual 16950 UART)
(rev 0).
      IRQ 9.
      I/O at 0xecf8 [0xecff].
      I/O at 0xece8 [0xecef].
      I/O at 0xecc0 [0xecdf].
      Non-prefetchable 32 bit memory at 0xfbfff000 [0xfbffffff].
      Non-prefetchable 32 bit memory at 0xfbffe000 [0xfbffefff].
  Bus  2, device   8, function  0:
    Serial controller: Oxford Semiconductor Ltd OX16PCI952 (Dual 16950 UART)
(#2) (rev 0).
      IRQ 10.
      I/O at 0xec98 [0xec9f].
      I/O at 0xec88 [0xec8f].
      I/O at 0xec60 [0xec7f].
      Non-prefetchable 32 bit memory at 0xfbffc000 [0xfbffcfff].
      Non-prefetchable 32 bit memory at 0xfbffb000 [0xfbffbfff].
  Bus  2, device   7, function  1:
    Parallel controller: PCI device 1415:9523 (Oxford Semiconductor Ltd)
(rev 0).
      IRQ 9.
      I/O at 0xecf0 [0xecf7].
      I/O at 0xece4 [0xece7].
      I/O at 0xeca0 [0xecbf].
      Non-prefetchable 32 bit memory at 0xfbffd000 [0xfbffdfff].
  Bus  2, device   8, function  1:
    Parallel controller: PCI device 1415:9523 (Oxford Semiconductor Ltd)
(rev 0).
      IRQ 10.
      I/O at 0xec90 [0xec97].
      I/O at 0xece0 [0xece3].
      I/O at 0xec40 [0xec5f].
      Non-prefetchable 32 bit memory at 0xfbffa000 [0xfbffafff].

 
 
 

1. Oxford Semiconductor's OXCB950 UART not recognized by serial.c

We have 32-bit CardBus cards with OXCB950 CardBus (PCI ID 1415:950b) UART
chips on them (OXCB950 is the CardBus version of 16C950) . The module
serial_cb in the pcmcia-cs package recognizes them correctly. But, when
not using serial_cb, the function serial_pci_guess_board in serial.c
doesn't (kernel 2.4.17 tested). The problem is that the card advertises 3
i/o memory regions and 2 ports. If one replaces the line

if (num_iomem <= 1 && num_port == 1) {

with

if (num_port >= 1) {

in the function serial_pci_guess_board(), the card is detected and works
perfectly. Only, when inserting it, the kernel displays the message:

Redundant entry in serial pci_table.  Please send the output of
lspci -vv, this message (1415,950b,1415,0001)
and the manufacturer and name of serial board or modem board

And this is the output of lspci -vv, only the part relevant to the Oxford
card:

03:00.0 Serial controller: Oxford Semiconductor Ltd CardBus Device
(prog-if 06 [16950])
        Subsystem: Oxford Semiconductor Ltd: Unknown device 0001
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at 4800 [size=8]
        Region 1: Memory at 10c00000 (32-bit, non-prefetchable) [size=4K]
        Region 2: I/O ports at 4810 [size=16]
        Region 3: Memory at 10c01000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 10c02000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 1
                Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA
PME(D0+,D1-,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Fabrizio Gennari
Philips Research Monza
via G.Casati 23, 20052 Monza (MI), Italy
tel. +39 039 2037816, fax +39 039 2037800
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

2. HELP: null modem and getty

3. devfs + PCI serial card = no extra serial ports (probably uns upported card)

4. Authentication Problem :-(

5. devfs + PCI serial card = no extra serial ports (probably unsupported card)

6. Does anyone use Linux-FT

7. Oxford Semi - OX16PCI952 dual UART I/O expansion card

8. Where the heck is kerneld in RH6.2 ?

9. devfs + PCI serial card = no extra serial ports

10. 2 standard serial cards != 4 working serial-devices

11. multi-serial card and linux serial driver

12. PCMCIA cards don't work (serial card + 3c562B/563B/Etherlink III)