Subject: kern/29636: Promise SATA 150 TX2plus not configured
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Lukas L. Diduch <count0@sdf-eu.org>
List: netbsd-bugs
Date: 03/09/2005 01:16:00
>Number:         29636
>Category:       kern
>Synopsis:       device not configured (due to unknown id 0x3d75)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 09 01:16:00 +0000 2005
>Originator:     Lukas L. Diduch
>Release:        current
>Organization:
>Environment:
System: 
NetBSD 2.99.16 (GENERIC) #11: Sun Feb 27 23:46:55 CET 2005
   root@hades.entropie:/sourcepool/src_current/sys/arch/sparc64/compile/obj.sparc64/GENERIC
Architecture: sparc64
Machine: sparc64 
>Description:
I'm using this (brandnew) card with a 160gb sata hdd in a u60.  The card shows up not
configured at startup (pdcsata). Adding the id to pcidevs and pcidevs.h does
not work.  (I've wrote already to current-users, topic 'promise sata TX2Plus
not configured'. Some more infos there.)

After some 'hacking' in pcidevs and pcidevs.h : 
changed :
product PROMISE PDC20318        0x3318  PDC20318 SATA/150 IDE controller
to :
product PROMISE PDC20318        0x3d75  PDC20318 SATA/150 IDE controller

the driver recognizes the card, but during the hdd initialization later the hdd
is recognized as a 65gb hdd and the system hangs with a ('bogus int (reg 0x2)'
message in an endless loop). Sorry got no dmesg of that.

...dmesg :
Promise Technology product 0x3d75 (miscellaneous mass storage, revision 0x02)
at pci0 dev 2 function 0 not configured
 
...here's a pcictl dump of the device :
PCI configuration registers:
  Common header:
    0x00: 0x3d75105a 0x02300007 0x01800002 0x00002040

    Vendor Name: Promise Technology (0x105a)
    Device ID: 0x3d75
    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
    Status register: 0x0230
      Capability List support: on
      66 MHz capable: on
      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: mass storage (0x01)
    Subclass Name: miscellaneous (0x80)
    Interface: 0x00
    Revision ID: 0x02
    BIST: 0x00
    Header Type: 0x00 (0x00)
    Latency Timer: 0x20
    Cache Line Size: 0x40

  Type 0 ("normal" device) header:
    0x10: 0x00001801 0x00000000 0x00001c01 0x00110000
    0x20: 0x00120000 0x00000000 0x00000000 0x3d75105a
    0x30: 0x00140000 0x00000060 0x00000000 0x1204010e

    Base address register at 0x10
      type: i/o
      base: 0x00001800, not sized
    Base address register at 0x14
      not implemented(?)
    Base address register at 0x18
      type: i/o
      base: 0x00001c00, not sized
    Base address register at 0x1c
      type: 32-bit nonprefetchable memory
      base: 0x00110000, not sized
    Base address register at 0x20
      type: 32-bit nonprefetchable memory
      base: 0x00120000, not sized
    Base address register at 0x24
      not implemented(?)
    Cardbus CIS Pointer: 0x00000000
    Subsystem vendor ID: 0x105a
    Subsystem ID: 0x3d75
    Expansion ROM Base Address: 0x00140000
    Capability list pointer: 0x60
    Reserved @ 0x38: 0x00000000
    Maximum Latency: 0x12
    Minimum Grant: 0x04
    Interrupt pin: 0x01 (pin A)
    Interrupt line: 0x0e

  Capability register at 0x60
    type: 0x01 (Power Management, rev. 1.0)

  Device-dependent header:
    0x40: 0x00010000 0x00000000 0x00000000 0x00000000
    0x50: 0x00000000 0x00000000 0x00000000 0x00000000
    0x60: 0x02220001 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: 0x04000000 0x0003ffff 0x00000000 0x00000000


Best regards,
Lukas

>How-To-Repeat:
	i will test all code you can provide as fast as i can.
>Fix: