2002-02-20 15:15:04

by fabrizio.gennari

[permalink] [raw]
Subject: 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
to [email protected].

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