Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 May 2011 13:55:49 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/ahci ahci.c src/sys/dev/mvs mvs.c src/sys/dev/siis siis.c
Message-ID:  <201105251356.p4PDu2Mm030979@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
mav         2011-05-25 13:55:49 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/ahci         ahci.c 
    sys/dev/mvs          mvs.c 
    sys/dev/siis         siis.c 
  Log:
  SVN rev 222285 on 2011-05-25 13:55:49Z by mav
  
  According to SATA specification, when Serial ATA Enclosure Management Bridge
  (SEMB) is unable to communicate to Storage Enclosure Processor (SEP), in
  response to hard and soft resets it should among other things return value
  0x7F in Status register. The weird side is that it means DRQ bit set, which
  tells that reset request is not completed. It would be fine if SEMB was the
  only device on port. But if SEMB connected to PMP or built into it, it may
  block access to other devices sharing same SATA port.
  
  Make some tunings/fixes to soft-reset handling to workaround the issue:
   - ahci(4): request CLO on the port after soft reset to ignore DRQ bit;
   - siis(4): gracefully reinitialize port after soft reset timeout (hardware
  doesn't detect reset request completion in this case);
   - mvs(4): if PMP is used, send dummy soft-reset to the PMP port to make it
  clear DRQ bit for us.
  
  For now this makes quirks in ata_pmp.c, hiding SEMB ports of SiI3726/SiI4726
  PMPs, less important. Further, if hardware permit, I hope to implement real
  SEMB support.
  
  Revision  Changes    Path
  1.68      +13 -12    src/sys/dev/ahci/ahci.c
  1.15      +34 -10    src/sys/dev/mvs/mvs.c
  1.43      +18 -7     src/sys/dev/siis/siis.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105251356.p4PDu2Mm030979>