cvs commit: src/sys/pci if_xl.c

Bill Paul wpaul at
Sat Jun 28 18:38:58 PDT 2003

wpaul       2003/06/28 18:38:57 PDT

  FreeBSD src repository

  Modified files:
    sys/pci              if_xl.c 
  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

More information about the cvs-all mailing list