DragonFly commits List (threaded) for 2009-06
DragonFly BSD
DragonFly commits List (threaded) for 2009-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

DragonFly- master sys/dev/disk/sili fixme sili.c sili.h sili_attach.c

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 17 Jun 2009 10:30:31 -0700 (PDT)

commit 2102f407be5b41cdedede78004706649f812a698
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Wed Jun 17 10:27:00 2009 -0700

    SILI - Work around hardware LRAM bugs part 1/2.
    After tearing my hair out a bit and wondering why the Sili chip couldn't
    have more then one command pending on a port at a time when talking to a PM,
    I found an issue reported in the Linux sili device driver related to its
    LRAM.  Basically, reading from the Sili chip's LRAM while commands are active
    will corrupt it.
    The solution is to use a completely external PRB rather then the PRB in
    the LRAM, and use the command activation register to start the command
    instead of the command FIFO (which only works for the fixed PRBs in the LRAM).
    This commit fixes basic command dispatch but does not yet handle situations
    where the RFIS must be read from the LRAM... for example, when reading data
    from a PM SCA register or reading sense data from an ATAPI command.  With
    this commit I can dd from 5 drives behind a PM in parallel.

Summary of changes:
 sys/dev/disk/sili/fixme         |    7 ----
 sys/dev/disk/sili/sili.c        |   72 ++++++++++++++++++++++++++-------------
 sys/dev/disk/sili/sili.h        |   61 +++++++++++++++++++--------------
 sys/dev/disk/sili/sili_attach.c |   12 +++---
 4 files changed, 89 insertions(+), 63 deletions(-)
 delete mode 100755 sys/dev/disk/sili/fixme


DragonFly BSD source repository

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