From owner-cvs-src-old@FreeBSD.ORG Fri Jul 10 08:22:04 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9FC45106566B for ; Fri, 10 Jul 2009 08:22:04 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 848228FC0C for ; Fri, 10 Jul 2009 08:22:04 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6A8M4AD080496 for ; Fri, 10 Jul 2009 08:22:04 GMT (envelope-from scottl@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6A8M4xS080495 for cvs-src-old@freebsd.org; Fri, 10 Jul 2009 08:22:04 GMT (envelope-from scottl@repoman.freebsd.org) Message-Id: <200907100822.n6A8M4xS080495@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to scottl@repoman.freebsd.org using -f From: Scott Long Date: Fri, 10 Jul 2009 08:18:08 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/etc/mtree BSD.include.dist src/include Makefile src/lib/libcam Makefile src/sbin/camcontrol camcontrol.8 camcontrol.c src/share/man/man4 Makefile ahci.4 src/sys/cam cam.c cam.h cam_ccb.h cam_periph.c cam_xpt.c cam_xpt.h ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jul 2009 08:22:05 -0000 scottl 2009-07-10 08:18:08 UTC FreeBSD src repository Modified files: etc/mtree BSD.include.dist include Makefile lib/libcam Makefile sbin/camcontrol camcontrol.8 camcontrol.c share/man/man4 Makefile sys/cam cam.c cam.h cam_ccb.h cam_periph.c cam_xpt.c cam_xpt.h cam_xpt_periph.h sys/cam/scsi scsi_all.c scsi_cd.c scsi_ch.c scsi_da.c scsi_pass.c scsi_pt.c scsi_sa.c scsi_ses.c scsi_sg.c sys/conf files sys/dev/advansys advansys.c advlib.h sys/dev/aic7xxx aic79xx_osm.h aic7xxx_osm.h sys/dev/amd amd.h sys/dev/ata atapi-cam.c sys/dev/ciss ciss.c cissvar.h sys/dev/isp isp_freebsd.h sys/dev/mfi mfi.c mfivar.h sys/dev/mlx mlx.c mlxvar.h sys/dev/mpt mpt.h mpt_pci.c sys/dev/trm trm.h sys/modules Makefile sys/modules/cam Makefile Added files: share/man/man4 ahci.4 sys/cam cam_xpt_internal.h sys/cam/ata ata_all.c ata_all.h ata_da.c ata_xpt.c sys/cam/scsi scsi_xpt.c sys/dev/ahci ahci.c ahci.h sys/modules/ahci Makefile Log: SVN rev 195534 on 2009-07-10 08:18:08Z by scottl Separate the parallel scsi knowledge out of the core of the XPT, and modularize it so that new transports can be created. Add a transport for SATA Add a periph+protocol layer for ATA Add a driver for AHCI-compliant hardware. Add a maxio field to CAM so that drivers can advertise their max I/O capability. Modify various drivers so that they are insulated from the value of MAXPHYS. The new ATA/SATA code supports AHCI-compliant hardware, and will override the classic ATA driver if it is loaded as a module at boot time or compiled into the kernel. The stack now support NCQ (tagged queueing) for increased performance on modern SATA drives. It also supports port multipliers. ATA drives are accessed via 'ada' device nodes. ATAPI drives are accessed via 'cd' device nodes. They can all be enumerated and manipulated via camcontrol, just like SCSI drives. SCSI commands are not translated to their ATA equivalents; ATA native commands are used throughout the entire stack, including camcontrol. See the camcontrol manpage for further details. Testing this code may require that you update your fstab, and possibly modify your BIOS to enable AHCI functionality, if available. This code is very experimental at the moment. The userland ABI/API has changed, so applications will need to be recompiled. It may change further in the near future. The 'ada' device name may also change as more infrastructure is completed in this project. The goal is to eventually put all CAM busses and devices until newbus, allowing for interesting topology and management options. Few functional changes will be seen with existing SCSI/SAS/FC drivers, though the userland ABI has still changed. In the future, transports specific modules for SAS and FC may appear in order to better support the topologies and capabilities of these technologies. The modularization of CAM and the addition of the ATA/SATA modules is meant to break CAM out of the mold of being specific to SCSI, letting it grow to be a framework for arbitrary transports and protocols. It also allows drivers to be written to support discrete hardware without jeopardizing the stability of non-related hardware. While only an AHCI driver is provided now, a Silicon Image driver is also in the works. Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware is possible and encouraged. Help with new transports is also encouraged. Submitted by: scottl, mav Approved by: re Revision Changes Path 1.131 +2 -0 src/etc/mtree/BSD.include.dist 1.290 +1 -1 src/include/Makefile 1.13 +4 -2 src/lib/libcam/Makefile 1.45 +7 -1 src/sbin/camcontrol/camcontrol.8 1.59 +256 -5 src/sbin/camcontrol/camcontrol.c 1.457 +1 -0 src/share/man/man4/Makefile 1.1 +132 -0 src/share/man/man4/ahci.4 (new) 1.1 +304 -0 src/sys/cam/ata/ata_all.c (new) 1.1 +105 -0 src/sys/cam/ata/ata_all.h (new) 1.1 +1144 -0 src/sys/cam/ata/ata_da.c (new) 1.1 +1895 -0 src/sys/cam/ata/ata_xpt.c (new) 1.13 +2 -0 src/sys/cam/cam.c 1.13 +1 -0 src/sys/cam/cam.h 1.36 +67 -1 src/sys/cam/cam_ccb.h 1.80 +32 -4 src/sys/cam/cam_periph.c 1.216 +144 -2473 src/sys/cam/cam_xpt.c 1.10 +46 -0 src/sys/cam/cam_xpt.h 1.1 +205 -0 src/sys/cam/cam_xpt_internal.h (new) 1.8 +1 -0 src/sys/cam/cam_xpt_periph.h 1.55 +1 -0 src/sys/cam/scsi/scsi_all.c 1.107 +3 -0 src/sys/cam/scsi/scsi_cd.c 1.48 +3 -0 src/sys/cam/scsi/scsi_ch.c 1.236 +10 -1 src/sys/cam/scsi/scsi_da.c 1.54 +2 -1 src/sys/cam/scsi/scsi_pass.c 1.49 +3 -0 src/sys/cam/scsi/scsi_pt.c 1.117 +3 -0 src/sys/cam/scsi/scsi_sa.c 1.42 +3 -0 src/sys/cam/scsi/scsi_ses.c 1.15 +3 -0 src/sys/cam/scsi/scsi_sg.c 1.1 +2382 -0 src/sys/cam/scsi/scsi_xpt.c (new) 1.1451 +5 -0 src/sys/conf/files 1.36 +1 -1 src/sys/dev/advansys/advansys.c 1.14 +2 -0 src/sys/dev/advansys/advlib.h 1.1 +1858 -0 src/sys/dev/ahci/ahci.c (new) 1.1 +422 -0 src/sys/dev/ahci/ahci.h (new) 1.22 +4 -2 src/sys/dev/aic7xxx/aic79xx_osm.h 1.34 +4 -3 src/sys/dev/aic7xxx/aic7xxx_osm.h 1.7 +2 -1 src/sys/dev/amd/amd.h 1.63 +4 -4 src/sys/dev/ata/atapi-cam.c 1.96 +1 -0 src/sys/dev/ciss/ciss.c 1.13 +3 -0 src/sys/dev/ciss/cissvar.h 1.108 +2 -1 src/sys/dev/isp/isp_freebsd.h 1.50 +1 -1 src/sys/dev/mfi/mfi.c 1.13 +1 -0 src/sys/dev/mfi/mfivar.h 1.58 +1 -1 src/sys/dev/mlx/mlx.c 1.23 +1 -0 src/sys/dev/mlx/mlxvar.h 1.48 +3 -0 src/sys/dev/mpt/mpt.h 1.54 +2 -2 src/sys/dev/mpt/mpt_pci.c 1.6 +2 -1 src/sys/dev/trm/trm.h 1.621 +1 -0 src/sys/modules/Makefile 1.1 +8 -0 src/sys/modules/ahci/Makefile (new) 1.16 +5 -1 src/sys/modules/cam/Makefile