NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/46362: PUC driver for OX16PCI958 uses wrong freq setup
>Number: 46362
>Category: kern
>Synopsis: PUC driver for OX16PCI958 uses wrong freq setup
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Apr 21 12:15:00 +0000 2012
>Originator: Wolfgang Stukenbrock
>Release: current (CVS-repository)
>Organization:
Dr. Nagler & Company GmbH
>Environment:
amd64 - but this is not relevant here
>Description:
The entry in /usr/src/sys/dev/pci/pucdata.c for the OX16PCI958 uses a frequency
devicer setup of "COM_FREQ * 10" for all of the 8 ports.
At least our EX-41098-2 requires a setup with "COM_FREQ" in order to run with
correct speed settings.
I do not know if there are other cards with this chip that needs the "* 10"
setup or if this is just
a copy and paste error.
Here the PCI-dump information of the card, in case you need it to create a
special setup for this card (generated with "pcictl /dev/pci4 dump -d 6".
PCI configuration registers:
Common header:
0x00: 0x95381415 0x02100007 0x07020001 0x00000000
Vendor Name: Oxford Semiconductor (0x1415)
Device ID: 0x9538
Command register: 0x0007
I/O space accesses: on
Memory space accesses: on
Bus mastering: on
Special cycles: off
MWI transactions: off
Palette snooping: off
Parity error checking: off
Address/data stepping: off
System error (SERR): off
Fast back-to-back transactions: off
Interrupt disable: off
Status register: 0x0210
Capability List support: on
66 MHz capable: off
User Definable Features (UDF) support: off
Fast back-to-back capable: off
Data parity error detected: off
DEVSEL timing: medium (0x1)
Slave signaled Target Abort: off
Master received Target Abort: off
Master received Master Abort: off
Asserted System Error (SERR): off
Parity error detected: off
Class Name: communications (0x07)
Subclass Name: multi-port serial (0x02)
Interface: 0x00
Revision ID: 0x01
BIST: 0x00
Header Type: 0x00 (0x00)
Latency Timer: 0x00
Cache Line Size: 0x00
Type 0 ("normal" device) header:
0x10: 0xff700100 0x0000d101 0x0000d181 0x0000d1c1
0x20: 0xff700180 0xff7001c0 0x00000000 0x06711415
0x30: 0x00000000 0x00000040 0x00000000 0x0000010a
Base address register at 0x10
type: 32-bit nonprefetchable memory
base: 0xff700100, not sized
Base address register at 0x14
type: i/o
base: 0x0000d100, not sized
Base address register at 0x18
type: i/o
base: 0x0000d180, not sized
Base address register at 0x1c
type: i/o
base: 0x0000d1c0, not sized
Base address register at 0x20
type: 32-bit nonprefetchable memory
base: 0xff700180, not sized
Base address register at 0x24
type: 32-bit nonprefetchable memory
base: 0xff7001c0, not sized
Cardbus CIS Pointer: 0x00000000
Subsystem vendor ID: 0x1415
Subsystem ID: 0x0671
Expansion ROM Base Address: 0x00000000
Capability list pointer: 0x40
Reserved @ 0x38: 0x00000000
Maximum Latency: 0x00
Minimum Grant: 0x00
Interrupt pin: 0x01 (pin A)
Interrupt line: 0x0a
Capability register at 0x40
type: 0x01 (Power Management, rev. 1.0)
PCI Power Management Capabilities Register
Capabilities register: 0x0022
Version: 1.1
PME# clock: off
Device specific initialization: on
3.3V auxiliary current: self-powered
D1 power management state support: off
D2 power management state support: off
PME# support: 0x00
Control/status register: 0x0000
Power state: D0
PCI Express reserved: off
No soft reset: off
PME# assertion disabled
PME# status: off
Device-dependent header:
0x40: 0x00220001 0x00000000 0x00000000 0x00000000
0x50: 0x00000000 0x00000000 0x00000000 0x00000000
0x60: 0x00000000 0x00000000 0x00000000 0x00000000
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000000 0x00000000 0x00000000
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
>How-To-Repeat:
Get an EX-41098-2 8-port Serial PCI 32bit Card and try to use it. It will be
found, configured and may be accessed (if puc is configured into the kernel),
but you cannot get any communication with other devices.
>Fix:
replace "COM_FREQ * 10" by "COM_FREQ" for all eigth ports and everything is
fine.
(At least everything seems to work here.)
Home |
Main Index |
Thread Index |
Old Index