• Suganath Prabu's avatar
    scsi: mpt3sas: Support MEMORY MOVE Tool box command · ba630ea0
    Suganath Prabu authored
    Host uses the Memory Move Tool to copy data from any source/destination
    combination of system memory and IOC memory.
    
    Memory Move Tool box request contains two SGE fields, First SGE field must
    contains the source buffer details described by an MPI Simple SGE.  The
    second SGE field must contains the destination buffer details described by
    an MPI Simple SGE.
    
     Source   ->   Destination
    
    1. IOC    ->   IOC    (Both the SGE's will be filled by application)
    
    2. HOST   ->   HOST   (Both the SGE's will be filled by the host,
                   application should give sgl_offset to first SGE offset)
    
    3. IOC    ->   HOST   (Application will fill the first SGE and set the
                   sgl_offset to second SGE and hence driver fills
                   the second SGE)
    4. HOST   ->   IOC    (Application will fill IOC buffer information in the
                   first SGE and set the sgl_offset to second SGE.
                   Then driver will fill the second SGE with Host buffer
                   information and just before posting the command to the
                   firmware, driver will swap these two SGEs so that first
                   SGE contains the HOST buffer information and second SGE
                   contains the IOC information.
    
    Driver has to take care only of the 4th case, other three cases are by
    default supported by the current driver design.
    Signed-off-by: default avatarSuganath Prabu <suganath-prabu.subramani@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ba630ea0
mpt3sas_ctl.c 99 KB