RFC: ATA to CAM integration patch
Gary Jennejohn
gary.jennejohn at freenet.de
Sat Jun 27 14:44:09 UTC 2009
On Fri, 26 Jun 2009 21:47:26 +0300
Alexander Motin <mav at FreeBSD.org> wrote:
> Hi.
>
> I would like to present for testing and feedback present state of my and
> Scott work on extending CAM subsystem to support ATA in addition to
> SCSI. At this moment we have:
> - CAM transport separated on common and SCSI-specific parts, last one
> wrapped with small API that allows switching;
> - implemented SATA-specific transport, that is automatically used when
> controller reports SATA bus attached to it. It supports both single
> drive and Port Multiplier modes. The only parts unfinished yet is the
> automatic hot-plug (you have to do reset/rescan manually) and heavy
> errors recovery;
> - implemented ATA disk driver for CAM infrastructure to natively
> operate ATA disks. It already supports most of required functionality:
> identify, read, write, flush, dump, NCQ;
> - ATAPI devices handled natively by existing SCSI peripherals drivers,
> by tunneling SCSI commands over ATA bus by PACKET ATA extension;
> - implemented AHCI controller driver, supporting most of tasty
> hardware features (controller command queuing, NCQ, Port Multiplier,
> MSI). Only some features from latest AHCI specifications for which I
> have no hardware left unimplemented.
> - camcontrol took minor changes to be able to report ATA devices.
>
> To test our work you should:
> - have any AHCI compatible controller configured to native AHCI mode
> (not a COMPATIBLE or RAID or whatever else) by BIOS;
> - have some Serial ATA/ATAPI drives connected to AHCI controller;
> - patch your recently updated 8-CURRENT with this patch:
> http://people.freebsd.org/~mav/cam-ata.20090626.patch
- remove atapicam from you kernel config file, otherwise the kernel
pancis in xpt (at least, mine did)
> - rebuild and install world and kernel;
> - read new ahci man page;
> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;
> - load ahci kernel module using loader prompt or loader.conf;
> - boot.
---
Gary Jennejohn
More information about the freebsd-current
mailing list