1230557Sjimharris/*- 2230557Sjimharris * This file is provided under a dual BSD/GPLv2 license. When using or 3230557Sjimharris * redistributing this file, you may do so under either license. 4230557Sjimharris * 5230557Sjimharris * GPL LICENSE SUMMARY 6230557Sjimharris * 7230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 8230557Sjimharris * 9230557Sjimharris * This program is free software; you can redistribute it and/or modify 10230557Sjimharris * it under the terms of version 2 of the GNU General Public License as 11230557Sjimharris * published by the Free Software Foundation. 12230557Sjimharris * 13230557Sjimharris * This program is distributed in the hope that it will be useful, but 14230557Sjimharris * WITHOUT ANY WARRANTY; without even the implied warranty of 15230557Sjimharris * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16230557Sjimharris * General Public License for more details. 17230557Sjimharris * 18230557Sjimharris * You should have received a copy of the GNU General Public License 19230557Sjimharris * along with this program; if not, write to the Free Software 20230557Sjimharris * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 21230557Sjimharris * The full GNU General Public License is included in this distribution 22230557Sjimharris * in the file called LICENSE.GPL. 23230557Sjimharris * 24230557Sjimharris * BSD LICENSE 25230557Sjimharris * 26230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 27230557Sjimharris * All rights reserved. 28230557Sjimharris * 29230557Sjimharris * Redistribution and use in source and binary forms, with or without 30230557Sjimharris * modification, are permitted provided that the following conditions 31230557Sjimharris * are met: 32230557Sjimharris * 33230557Sjimharris * * Redistributions of source code must retain the above copyright 34230557Sjimharris * notice, this list of conditions and the following disclaimer. 35230557Sjimharris * * Redistributions in binary form must reproduce the above copyright 36230557Sjimharris * notice, this list of conditions and the following disclaimer in 37230557Sjimharris * the documentation and/or other materials provided with the 38230557Sjimharris * distribution. 39230557Sjimharris * 40230557Sjimharris * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 41230557Sjimharris * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 42230557Sjimharris * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 43230557Sjimharris * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 44230557Sjimharris * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 45230557Sjimharris * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 46230557Sjimharris * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 47230557Sjimharris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 48230557Sjimharris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 49230557Sjimharris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 50230557Sjimharris * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 51230557Sjimharris * 52230557Sjimharris * $FreeBSD$ 53230557Sjimharris */ 54230557Sjimharris#ifndef _SCIF_OVERVIEW_H_ 55230557Sjimharris#define _SCIF_OVERVIEW_H_ 56230557Sjimharris 57230557Sjimharris/** 58230557Sjimharris@page framework_page SCI Framework 59230557Sjimharris 60230557Sjimharris@section scif_introduction_section Introduction 61230557Sjimharris 62230557SjimharrisThe SCI Framework component provides SAS and SATA storage specific abstraction 63230557Sjimharristo any OS driver devoid of this type of functionality. The functionality 64230557Sjimharrisprovided by this component is of a higher nature and considered unnecessary 65230557Sjimharrisfor some driver environments. Basically, a user should be able to utilize 66230557Sjimharristhe same SCI Framework with different SCI Core implementations, with the 67230557Sjimharrislittle to no changes necessary. 68230557Sjimharris 69230557Sjimharris@warning In situations where the SCI framework is utilized, users should NOT 70230557Sjimharris invoke core methods on core objects for which there are associated 71230557Sjimharris framework objects and framework methods. Therefore, if a method is 72230557Sjimharris common to both the core and the framework object, do not invoke the 73230557Sjimharris core method if utilizing the framework. Some exceptions to this 74230557Sjimharris exist and are called out. It is important to mention that methods 75230557Sjimharris found only in the core are safe to invoke at times specified per 76230557Sjimharris that methods definition. 77230557Sjimharris 78230557SjimharrisThe following is a list of features found in an SCI Framework implementation: 79230557Sjimharris 80230557Sjimharris-# SCI Core management 81230557Sjimharris-# Port configuration scheme enforcement. There are 2 port configuration 82230557Sjimharrisschemes: 83230557Sjimharris -# Automatic Port Configuration (APC). In APC mode the framework will 84230557Sjimharris allow for any port configuration based on what is physically connected, 85230557Sjimharris assuming the underlying SCI Core also supports the configuration. 86230557Sjimharris -# Manual Port Configuration (MPC). In MPC mode the framework expects the 87230557Sjimharris user to supply exactly which phys are to be allocated to each specific 88230557Sjimharris port. If the discovered direct attached physical connections do not match 89230557Sjimharris the user supplied map, then an error is raised and the initialization 90230557Sjimharris process is halted. 91230557Sjimharris-# Domain Discovery 92230557Sjimharris-# Domain level resets (i.e. bus reset) 93230557Sjimharris-# Task management processing 94230557Sjimharris-# Controller Shutdown management (e.g. release STP affiliations, quiesce IOs) 95230557Sjimharris-# Remote Device Configuration. Potential features: 96230557Sjimharris -# SSP: maybe mode selects to set timers or modify DIF settings. 97230557Sjimharris -# STP: IDENTIFY_DEVICE, SET FEATURES, etc. 98230557Sjimharris -# SMP: CONTROL type requests to set timers. 99230557Sjimharris-# SAT Translation (Actually contained in SATI component) 100230557Sjimharris-# SMP Zoning management 101230557Sjimharris 102230557Sjimharris@image latex sci_framework.eps "SCI Framework Class Diagram" width=10cm 103230557Sjimharris 104230557Sjimharris@note 105230557SjimharrisFor the SCU Driver Standard implementation of the SCI Framework interface the 106230557Sjimharrisfollowing definitions should be used to augment the cardinalities described 107230557Sjimharrisin the previous diagram: 108230557Sjimharris-# There are exactly 4 scif_domain objects in the scif_controller. This 109230557Sjimharris number directly correlates to the number of scic_port objects in the core. 110230557Sjimharris-# The maximum number of supported controllers in a library is a truly flexible 111230557Sjimharris value, but the likely maximum number is 4. 112230557Sjimharris 113230557Sjimharris */ 114230557Sjimharris 115230557Sjimharris#endif // _SCIF_OVERVIEW_H_ 116230557Sjimharris 117