cvs commit: src/sys/pci if_xl.c

From: Bill Paul <wpaul_at_FreeBSD.org>
Date: Sat, 28 Jun 2003 18:38:57 -0700 (PDT)
wpaul       2003/06/28 18:38:57 PDT

  FreeBSD src repository

  Modified files:
    sys/pci              if_xl.c 
  Log:
  Modify the xl_reset() routine slightly so that, if we're using memory
  mapped I/O mode, we pause for .1 seconds after issuing the reset command
  before trying to poll the 'command busy' bit in the status register.
  With my 3c575C cardbus NIC, my Sony Picturebook locks up when it tries
  to read the status register immediately after the reset. This appears
  to be a problem only with certain NICs on certain hardware, but the
  added delay should not hurt cards that already work.
  
  This bug seems to have been brought to light by the fact that the xl
  driver now defaults to memory mapped I/O mode instead of programmed
  I/O mode like it used to. With PIO mode, the delay isn't needed and
  everything works (which is why this NIC worked with 5.0-RELEASE but
  not 5.1). I suspect that what's happening is that when the chip is
  reset, it takes a little while for the memory-mapped decoding logic
  to recover. Trying to access the chip's registers during this period
  causes an error condition of some kind that wedges the system.
  
  Revision  Changes    Path
  1.145     +10 -0     src/sys/pci/if_xl.c
Received on Sat Jun 28 2003 - 18:38:58 UTC