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