Template Version: @(#)sac_nextcase 1.56 10/26/05 SMI This information is Copyright 2006 Sun Microsystems, Inc. 1. Introduction 1.1. Project/Component Working Name: scsa dma enhancement 1.2. Name of Document Author/Supplier: Author: Eric T 1.3 Date of This Document: 11 April, 2006 4. Technical Description Summary ------- This fast-track modifies the contract private interfaces introduced through 2005/680 so that SCSA can do DMA resource allocation and breakup on behalf of the HBA driver. It also raises the commitment level to evolving. Proposal -------- 2005/680 introduced a kmem_cache mechanism which provided initial- ized scsi_pkt's to HBA drivers. We can take this a step further and have SCSA handle DMA resource allocation and breakup on behalf of the HBA driver. The effect of this is that SCSA hands the HBA driver an array of DMA cookies, so an HBA driver that uses this interface does not need to bind DMA resources, manage partial DMA mappings, etc.; it also obviates the need for the HBA driver to provide tran_dmafree and tran_sync_pkt entry points. This proposal removes the "tran_setup_bp" entry point and adds three new fields to the scsi_pkt structure, which describe the number of DMA cookies, a pointer to the DMA cookie array, etc. Instead of doing allocation and setup, the HBA driver examines the array of DMA cookies in the scsi_pkt at tran_start time, and then programs them into its DMA engine. Man pages are attached, with changebars where it differs from 2005/680. There are no changes to scsi_hba_attach; it is included again for reference. Interface Table: ---------------- exported: INTERFACE STABILITY COMMENTS tran_setup_pkt evolving scsi_hba_tran_t struct member tran_teardown_pkt evolving scsi_hba_tran_t struct member tran_pkt_constructor evolving scsi_hba_tran_t struct member tran_pkt_destructor evolving scsi_hba_tran_t struct member tran_hba_len evolving scsi_hba_tran_t struct member pkt_cdblen evolving scsi_pkt struct member pkt_scblen evolving scsi_pkt struct member pkt_tgtlen evolving scsi_pkt struct member pkt_numcookies evolving scsi_pkt struct member pkt_cookies evolving scsi_pkt struct member pkt_dma_flags evolving scsi_pkt struct member SCSI_HBA_TRAN_CDB evolving scsi_hba_attach flag SCSI_HBA_TRAN_SCB evolving scsi_hba_attach flag imported: INTERFACE STABILITY COMMENTS DDI_DMA_* flags evolving see ddi_dma_buf_bind_handle(9f) Release Binding: --------------- Minor. 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: on 6.5. ARC review type: FastTrack