tech-kern archive

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

Re: How does PCIe appear to the host?



>>> [...] a 5-port PCIe SATA card [...]
>> In case it matters to anyone, the card is identified, on the box and
>> on a sticker on the card itself, as a UGT-ST655, and it comes from
>> Vantec.  As one of my messages quoted autoconf as saying, it shows
>> up as vendor 0x197b product 0x0585.
> [T]he next step for me would be to dive into output of lspci and what
> the registers there say.

No lspci; this is NetBSD, not Linux.  But pcictl dump does print
interesting things.

On the ASRock machine, the card itself isn't seen, so I can't dump it.
The ppb (well, one of them - they're almost identical, and I'm not sure
which one the mechanically-x16 slot is behind anyway) looks like this
(more after 133 lines of pcictl dump output)

PCI configuration registers:
  Common header:
    0x00: 0x0f488086 0x00100007 0x0604000e 0x00810010

    Vendor Name: Intel (0x8086)
    Device ID: 0x0f48
    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: 0x0010
      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: fast (0x0)
      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: bridge (0x06)
    Subclass Name: PCI (0x04)
    Interface: 0x00
    Revision ID: 0x0e
    BIST: 0x00
    Header Type: 0x01+multifunction (0x81)
    Latency Timer: 0x00
    Cache Line Size: 0x10

  Type 1 (PCI-PCI bridge) header:
    0x10: 0x00000000 0x00000000 0x00010100 0x200000f0
    0x20: 0x0000fff0 0x0001fff1 0x00000000 0x00000000
    0x30: 0x00000000 0x00000040 0x00000000 0x0010010b

    Base address register at 0x10
      not implemented(?)
    Base address register at 0x14
      not implemented(?)
    Primary bus number: 0x00
    Secondary bus number: 0x01
    Subordinate bus number: 0x01
    Secondary bus latency timer: 0x00
    Secondary status register: 0x2000
      66 MHz capable: off
      User Definable Features (UDF) support: off
      Fast back-to-back capable: off
      Data parity error detected: off
      DEVSEL timing: fast (0x0)
      Signaled Target Abort: off
      Received Target Abort: off
      Received Master Abort: on
      System Error: off
      Parity Error: off
    I/O region:
      base register:  0xf0
      limit register: 0x00
      base upper 16 bits register:  0x0000
      limit upper 16 bits register: 0x0000
    Memory region:
      base register:  0xfff0
      limit register: 0x0000
    Prefetchable memory region:
      base register:  0xfff1
      limit register: 0x0001
      base upper 32 bits register:  0x00000000
      limit upper 32 bits register: 0x00000000
    Capability list pointer: 0x40
    Expansion ROM Base Address: 0x00000000
    Interrupt line: 0x0b
    Interrupt pin: 0x01 (pin A)
    Bridge control register: 0x0010
      Parity error response: off
      Secondary SERR forwarding: off
      ISA enable: off
      VGA enable: off
      Master abort reporting: off
      Secondary bus reset: off
      Fast back-to-back capable: off

  Capability register at 0x40
    type: 0x10 (PCI Express)
  Capability register at 0x80
    type: 0x05 (MSI)
  Capability register at 0x90
    type: 0x0d (unknown)
  Capability register at 0xa0
    type: 0x01 (Power Management, rev. 1.0)

  PCI Power Management Capabilities Register
    Capabilities register: 0xc803
      Version: 1.2
      PME# clock: off
      Device specific initialization: off
      3.3V auxiliary current: self-powered
      D1 power management state support: off
      D2 power management state support: off
      PME# support: 0x19
    Control/status register: 0x0000
      Power state: D0
      PCI Express reserved: off
      No soft reset: off
      PME# assertion disabled
      PME# status: off

  PCI Express Capabilities Register
    Capability version: 2
    Device type: Root Port of PCI Express Root Complex
    Slot implemented
    Interrupt Message Number: 0

  Device-dependent header:
    0x40: 0x01428010 0x00008000 0x00100000 0x01313c12
    0x50: 0x10010040 0x0004b260 0x00000000 0x00000000
    0x60: 0x00000000 0x00000016 0x00000000 0x00000000
    0x70: 0x00010002 0x00000000 0x00000000 0x00000000
    0x80: 0x00009005 0x00000000 0x00000000 0x00000000
    0x90: 0x0000a00d 0x0f481849 0x00000000 0x00000000
    0xa0: 0xc8030001 0x00000000 0x00000000 0x00000000
    0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
    0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
    0xd0: 0x0000c000 0x00000842 0xc9118000 0x00000000
    0xe0: 0x00000000 0x00000000 0x00000004 0x00000000
    0xf0: 0x00000050 0x000000c0 0x010e0f1a 0x01000000

When I put the card into the other machine, into the x16 slot that
actually _is_ x16, the one it works in, it shows up as ahcisata0,
attached via

ppb1 at pci0 dev 2 function 0: vendor 0x1022 product 0x9603 (rev. 0x00)
ppb1: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x16 @ 5.0GT/s
ppb1: link is x2 @ 5.0GT/s
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
ahcisata0 at pci2 dev 0 function 0: vendor 0x197b product 0x0585
ahcisata0: interrupting at ioapic0 pin 18
ahcisata0: AHCI revision 0x10301, 5 ports, 32 command slots, features 0xef33e080

and pcictl dump /dev/pci2 -d 0 shows (114 lines)

PCI configuration registers:
  Common header:
    0x00: 0x0585197b 0x00100107 0x01060100 0x00000010

    Vendor Name: JMicron Technology (0x197b)
    Device ID: 0x0585
    Command register: 0x0107
      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): on
      Fast back-to-back transactions: off
      Interrupt disable: off
    Status register: 0x0010
      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: fast (0x0)
      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: SATA (0x06)
    Interface: 0x01
    Revision ID: 0x00
    BIST: 0x00
    Header Type: 0x00 (0x00)
    Latency Timer: 0x00
    Cache Line Size: 0x10

  Type 0 ("normal" device) header:
    0x10: 0x0000dc01 0x0000d881 0x0000d801 0x0000d481
    0x20: 0x0000d401 0xfbefe000 0x00000000 0x0000197b
    0x30: 0xfbee0000 0x00000080 0x00000000 0x0000010a

    Base address register at 0x10
      type: i/o
      base: 0x0000dc00, not sized
    Base address register at 0x14
      type: i/o
      base: 0x0000d880, not sized
    Base address register at 0x18
      type: i/o
      base: 0x0000d800, not sized
    Base address register at 0x1c
      type: i/o
      base: 0x0000d480, not sized
    Base address register at 0x20
      type: i/o
      base: 0x0000d400, not sized
    Base address register at 0x24
      type: 32-bit nonprefetchable memory
      base: 0xfbefe000, not sized
    Cardbus CIS Pointer: 0x00000000
    Subsystem vendor ID: 0x197b
    Subsystem ID: 0x0000
    Expansion ROM Base Address: 0xfbee0000
    Capability list pointer: 0x80
    Reserved @ 0x38: 0x00000000
    Maximum Latency: 0x00
    Minimum Grant: 0x00
    Interrupt pin: 0x01 (pin A)
    Interrupt line: 0x0a

  Capability register at 0x80
    type: 0x01 (Power Management, rev. 1.0)
  Capability register at 0x90
    type: 0x05 (MSI)
  Capability register at 0xc0
    type: 0x10 (PCI Express)

  PCI Power Management Capabilities Register
    Capabilities register: 0x4003
      Version: 1.2
      PME# clock: off
      Device specific initialization: off
      3.3V auxiliary current: self-powered
      D1 power management state support: off
      D2 power management state support: off
      PME# support: 0x08
    Control/status register: 0x0008
      Power state: D0
      PCI Express reserved: off
      No soft reset: on
      PME# assertion disabled
      PME# status: off

  PCI Express Capabilities Register
    Capability version: 2
    Device type: Legacy PCI Express Endpoint device
    Interrupt Message Number: 0

  Device-dependent header:
    0x40: 0x00000000 0x00000000 0x00000000 0x00000000
    0x50: 0x00000000 0x00000000 0x00000000 0x00000000
    0x60: 0x00000000 0x00000000 0x00000000 0x00000000
    0x70: 0x00000000 0x00000000 0x00000000 0x00000000
    0x80: 0x40039001 0x00000008 0x00000000 0x00000000
    0x90: 0x0086c005 0x00000000 0x00000000 0x00000000
    0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
    0xb0: 0x0000c011 0x00000000 0x00000008 0x00000000
    0xc0: 0x00120010 0x10008102 0x00092810 0x0041a023
    0xd0: 0x00220040 0x00000000 0x00000000 0x00000000
    0xe0: 0x00000000 0x00140392 0x00000000 0x0000000e
    0xf0: 0x00010003 0x00000000 0x00000000 0x00000000

I hope the above includes whatever you'd be looking for!

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index