Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

SATAlink PCI card and Ultra 5?



Hi,

(This is likely not to be NetBSD-related at all, but I hope that there is
enough hardware expertise with Sun hardware here to help figure out the
answer...)


I'm mystified... I'm trying to get SATA to my Ultra5, and for that purpose
got a number of "cheap off-the shelf" PCI-to-SATA controllers, to see which
one works with NetBSD/Sparc.

The one that looks most promising is SATAlink based, and it works perfectly
well (!!) in my Ultra60, with NetBSD-5.0:

satalink0 at pci0 dev 5 function 0
satalink0: Silicon Image SATALink 3512 (rev. 0x01)
satalink0: SATALink BA5 register space disabled
satalink0: bus-master DMA support present
satalink0: primary channel wired to native-PCI mode
satalink0: using ivec 1c for native-PCI interrupt
atabus0 at satalink0 channel 0
satalink0: secondary channel wired to native-PCI mode
atabus1 at satalink0 channel 1

(no devices attached right now, due to the Ultra60 not being suited very
well to power non-SCA drives - but I've tested it with a WD 750G drive, and
everything behaved quite normally).


Now the funny part.  The "target" machine for this controller is an Ultra5,
which direly needs a larger and faster hard disk.  PCI being PCI, I assumed
it would "just work".  But it doesn't.

 - OBP does not recognize the card ("setenv diag-switch? true" shows the
   PCI slot in question as "empty" - the slot is OK, though, as a PCI
   RTL8019 network card is recognized just fine).

 - the kernel does not give any indication of the card being found

 - "pcictl /dev/pci[012] list" does not display anything either.


Looking at Wikipedia and at my machines, both machines have 5V PCI slots
(the U60 has 3.3V and 5V slots, but the SATA card is in one of the 5V 
slots - and of course the U60 has 64bit, but that shouldn't matter for a
32 bit-only card).  

The SATA card itself is coded as "universal 3.3V and 5V card".

Maybe there is some other difference, like "PCI 2.1" vs. "PCI 2.2" or 
something?  Should it matter?  How can I find out?

confused regards,

gert


PS: for reference, the "pcictl dump" output for the SATAlink card (moved
back into the U60) is:

PCI configuration registers:
  Common header:
    0x00: 0x35121095 0x02b00007 0x01040001 0x00000038

    Vendor Name: CMD Technology (0x1095)
    Device Name: SiI3512 SATALink (0x3512)
    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: 0x02b0
      Capability List support: on
      66 MHz capable: on
      User Definable Features (UDF) support: off
      Fast back-to-back capable: on
      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: RAID (0x04)
    Interface: 0x00
    Revision ID: 0x01
    BIST: 0x00
    Header Type: 0x00 (0x00)
    Latency Timer: 0x00
    Cache Line Size: 0x38

  Type 0 ("normal" device) header:
    0x10: 0x00000c01 0x00000c09 0x00000c11 0x00000c19
    0x20: 0x00000c21 0x00018000 0x00000000 0x65121095
    0x30: 0x00080000 0x00000060 0x00000000 0x00000100

    Base address register at 0x10
      type: i/o
      base: 0x00000c00, not sized
    Base address register at 0x14
      type: i/o
      base: 0x00000c08, not sized
    Base address register at 0x18
      type: i/o
      base: 0x00000c10, not sized
    Base address register at 0x1c
      type: i/o
      base: 0x00000c18, not sized
    Base address register at 0x20
      type: i/o
      base: 0x00000c20, not sized
    Base address register at 0x24
      type: 32-bit nonprefetchable memory
      base: 0x00018000, not sized
    Cardbus CIS Pointer: 0x00000000
    Subsystem vendor ID: 0x1095
    Subsystem ID: 0x6512
    Expansion ROM Base Address: 0x00080000
    Capability list pointer: 0x60
    Reserved @ 0x38: 0x00000000
    Maximum Latency: 0x00
    Minimum Grant: 0x00
    Interrupt pin: 0x01 (pin A)
    Interrupt line: 0x00

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

  Device-dependent header:
    0x40: 0x00000002 0xa0102204 0x00000000 0x00000000
    0x50: 0x00000000 0x00000000 0x00000000 0x00000000
    0x60: 0x06220001 0x64004000 0x00000000 0x00000000
    0x70: 0x00000000 0x00000000 0x00000000 0x00000000
    0x80: 0x00000022 0x00000022 0x00000000 0xbafebde7
    0x90: 0x0c000000 0x80003512 0x18000000 0x00000000
    0xa0: 0x65150101 0x62dd62dd 0x43924392 0x40094009
    0xb0: 0x65150101 0x62dd62dd 0x43924392 0x40094009
    0xc0: 0x00000184 0x00000000 0x00000000 0x00000000
    0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
    0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
    0xf0: 0x00000000 0x00000000 0x00000000 0x00000000


-- 
USENET is *not* the non-clickable part of WWW!
                                                           //www.muc.de/~gert/
Gert Doering - Munich, Germany                             
gert%greenie.muc.de@localhost
fax: +49-89-35655025                        
gert%net.informatik.tu-muenchen.de@localhost


Home | Main Index | Thread Index | Old Index