Subject: Re: How to implement PSC driver on Au1550
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
From: Shigeyuki Fukushima <shige@netbsd.org>
List: port-evbmips
Date: 02/24/2006 04:25:51
Izumi Tsutsui wrote:
> In article <43FDE116.8010506@netbsd.org>
> shige@NetBSD.org wrote:
> 
>> Almost Ok.
>> But Attaching wm0 failed. Hummmm...
>> kiyohara's OMS-AL400 works fine.
> 
> Hmm, bad firmware revision (PCI space is not mapped properly)?
> pci_configure_bus(9) is recommended?
> Anyway, info by options PCI_CONFIG_DUMP may help.

About wm0's PCI_CONFIG_DUMP:

wm0 at pci0 dev 3 function 0: PCI configuration registers:
  Common header:
    0x00: 0x10768086 0x02300147 0x02000005 0x0000fc00

    Vendor Name: Intel (0x8086)
    Device Name: i82541GI Gigabit Ethernet (0x1076)
    Command register: 0x0147
      I/O space accesses: on
      Memory space accesses: on
      Bus mastering: on
      Special cycles: off
      MWI transactions: off
      Palette snooping: off
      Parity error checking: on
      Address/data stepping: off
      System error (SERR): on
      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: network (0x02)
    Subclass Name: ethernet (0x00)
    Interface: 0x00
    Revision ID: 0x05
    BIST: 0x00
    Header Type: 0x00 (0x00)
    Latency Timer: 0xfc
    Cache Line Size: 0x00

  Type 0 ("normal" device) header:
    0x10: 0x20000000 0x00000000 0x01000001 0x00000000
    0x20: 0x00000000 0x00000000 0x00000000 0x10768086
    0x30: 0x00000000 0x000000dc 0x00000000 0x00ff0100

    Base address register at 0x10
      type: 32-bit nonprefetchable memory
      base: 0x20000000, size: 0x00020000
    Base address register at 0x14
      not implemented(?)
    Base address register at 0x18
      type: 32-bit i/o
      base: 0x01000000, size: 0x00000040
    Base address register at 0x1c
      not implemented(?)
    Base address register at 0x20
      not implemented(?)
    Base address register at 0x24
      not implemented(?)
    Cardbus CIS Pointer: 0x00000000
    Subsystem vendor ID: 0x8086
    Subsystem ID: 0x1076
    Expansion ROM Base Address: 0x00000000
    Capability list pointer: 0xdc
    Reserved @ 0x38: 0x00000000
    Maximum Latency: 0x00
    Minimum Grant: 0xff
    Interrupt pin: 0x01 (pin A)
    Interrupt line: 0x00

  Capability register at 0xdc
    type: 0x01 (Power Management, rev. 1.0)
  Capability register at 0xe4
    type: 0x07 (PCI-X)

  Device-dependent header:
    0x40: 0x00000000 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 0x4822e401
    0xe0: 0x28002000 0x00020007 0x00400040 0x00000000
    0xf0: 0x00800005 0x00000000 0x00000000 0x00000000

    Don't know how to pretty-print device-dependent header.

Intel i82541GI Gigabit Ethernet (ethernet network, revision 0x05) at ?
dev 3 function 0 (intrswiz 0, intrpin 0x1, i/o on, mem on, no quirks):
Intel i82541GI 1000BASE-T Ethernet, rev. 5
wm0: unable to map device registers


About wm1's PCI_CONFIG_DUMP:

wm1 at pci0 dev 4 function 0: PCI configuration registers:
  Common header:
    0x00: 0x10768086 0x02300147 0x02000005 0x0000fc00

    Vendor Name: Intel (0x8086)
    Device Name: i82541GI Gigabit Ethernet (0x1076)
    Command register: 0x0147
      I/O space accesses: on
      Memory space accesses: on
      Bus mastering: on
      Special cycles: off
      MWI transactions: off
      Palette snooping: off
      Parity error checking: on
      Address/data stepping: off
      System error (SERR): on
      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: network (0x02)
    Subclass Name: ethernet (0x00)
    Interface: 0x00
    Revision ID: 0x05
    BIST: 0x00
    Header Type: 0x00 (0x00)
    Latency Timer: 0xfc
    Cache Line Size: 0x00

  Type 0 ("normal" device) header:
    0x10: 0x20020000 0x00000000 0x01000041 0x00000000
    0x20: 0x00000000 0x00000000 0x00000000 0x10768086
    0x30: 0x00000000 0x000000dc 0x00000000 0x00ff0100

    Base address register at 0x10
      type: 32-bit nonprefetchable memory
      base: 0x20020000, size: 0x00020000
    Base address register at 0x14
      not implemented(?)
    Base address register at 0x18
      type: 32-bit i/o
      base: 0x01000040, size: 0x00000040
    Base address register at 0x1c
      not implemented(?)
    Base address register at 0x20
      not implemented(?)
    Base address register at 0x24
      not implemented(?)
    Cardbus CIS Pointer: 0x00000000
    Subsystem vendor ID: 0x8086
    Subsystem ID: 0x1076
    Expansion ROM Base Address: 0x00000000
    Capability list pointer: 0xdc
    Reserved @ 0x38: 0x00000000
    Maximum Latency: 0x00
    Minimum Grant: 0xff
    Interrupt pin: 0x01 (pin A)
    Interrupt line: 0x00

  Capability register at 0xdc
    type: 0x01 (Power Management, rev. 1.0)
  Capability register at 0xe4
    type: 0x07 (PCI-X)

  Device-dependent header:
    0x40: 0x00000000 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 0x4822e401
    0xe0: 0x28002000 0x00020007 0x00400080 0x00000000
    0xf0: 0x00800005 0x00000000 0x00000000 0x00000000

    Don't know how to pretty-print device-dependent header.

Intel i82541GI Gigabit Ethernet (ethernet network, revision 0x05) at ?
dev 4 function 0 (intrswiz 0, intrpin 0x1, i/o on, mem on, no quirks):
Intel i82541GI 1000BASE-T Ethernet, rev. 5
wm1: interrupting at irq 1
wm1: Ethernet address 00:0a:85:02:50:46


-- 
Kind Regards,
--- shige
Shigeyuki Fukushima <shige@{FreeBSD,jp.FreeBSD,NetBSD}.org>