Re: ATA_16 support on mptsas

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

 



Hello,

ATA_16 through SG is supported with recent firmware for LSI cards.
I verified non-dma/pio ATA commands only.

Regards,
Krzysztof Blaszkowski

On Monday 23 June 2008 21:40, Moore, Eric wrote:
> On Monday, June 23, 2008 10:00 AM, Krzysztof Błaszkowski wrote:
> > I found that any HDIO_DRIVE_CMD ioctl on sata drive connected
> > through mpsas
> > and backplane will fail. Basically the scsi_host_template structure is
> > missing ioctl callback. after adding it and temporary
> > tweaking domain_device
> > structure associated to scsi_device (rphy only) i reached a
> > point where
> > ata_scsi_ioctl returns EIO and this why i need some clue on a
> > way of adding
> > such support similar way to aic94 where it has been done.
> >
> > I found also that mptsas leaves domain_device rather
> > uninitialized. the
> > example is rphy but there more fields i don't know if they
> > are revelant to
> > proper processing of HDIO_DRIVE_CMD.
> > i need additional references on libata design, call flow and
> > structures
> > relationship.
> >
> > probably it would be the best to design mptsas from scratch
> > using libsas but
> > this seems to me as huge work although if i was guided i
> > would probably
> > complete this.
>
> We have no plans to implement HDIO ioctls in our driver.   The SATL
> implementation is inside the mpt fusion firmware, and from the driver, we
> don't care whether the underlying protocal is SAS, SATA, Fibre Channel, or
> SPI.   For all protocals, we send scsi commands to the controller firmware
> using SCSI_IO opcode, with the following struct:
>
> typedef struct _MSG_SCSI_IO_REQUEST
> {
>     U8                      TargetID;           /* 00h */
>     U8                      Bus;                /* 01h */
>     U8                      ChainOffset;        /* 02h */
>     U8                      Function;           /* 03h */
>     U8                      CDBLength;          /* 04h */
>     U8                      SenseBufferLength;  /* 05h */
>     U8                      Reserved;           /* 06h */
>     U8                      MsgFlags;           /* 07h */
>     U32                     MsgContext;         /* 08h */
>     U8                      LUN[8];             /* 0Ch */
>     U32                     Control;            /* 14h */
>     U8                      CDB[16];            /* 18h */
>     U32                     DataLength;         /* 28h */
>     U32                     SenseBufferLowAddr; /* 2Ch */
>     SGE_IO_UNION            SGL;                /* 30h */
> } MSG_SCSI_IO_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO_REQUEST,
>   SCSIIORequest_t, MPI_POINTER pSCSIIORequest_t;
>
> > I tried another approach where i used SG_IO ioctl and
> > prepared ATA_16 cdb
> > (just like libata does) but this failed on mptsas connected drives too
> > altough this way works on drives connected to ICH6.
>
> The SG tools will work with mpt fusion if your passing the ATA_12
> (opcode=0xA1) and ATA_16 (opcode=0x85).   This is implemented in fusion
> firmware.  If your failing, then your probably having old firmware.  I
> suggest that you upgrading by going to the download site  located here:
> http://www.lsi.com/cm/DownloadSearch.do?locale=EN.    Ken Stewart is from
> support, he should be able to assist you with upgrading the firmware if you
> encounter any problems.
>
> Eric Moore
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux