From: Dan Williams <dan.j.williams@intel.com>
To: james.bottomley@suse.de
Cc: dave.jiang@intel.com, linux-scsi@vger.kernel.org,
jacek.danecki@intel.com, ed.ciechanowski@intel.com,
jeffrey.d.skirvin@intel.com, edmund.nadolski@intel.com
Subject: [RFC PATCH 00/10] isci: core
Date: Thu, 10 Mar 2011 02:54:19 -0800 [thread overview]
Message-ID: <20110310105347.6485.20780.stgit@localhost6.localdomain6> (raw)
As first introduced in "[RFC PATCH 0/6] isci: initial driver release
(part1: intro and lldd) " [1], the isci driver is split into an lldd
layer that interfaces with libsas and a core layer that interfaces with
the hardware. Quoting from the original introduction:
Driver overview:
The hardware accelerates all the protocol fast paths (SSP, STP
FPDMA and UDMA), and relies on the the driver for everything
else. One example is legacy sata pio reads which are managed
"manually" by their own state machine in the driver. The driver
submits the read and when the data fis comes back the hardware,
not having acceleration for pio operations, assigns it to an
unidentified frame queue. The core then associates that frame
with the pending pio request, copies the data into the location
specified by the original sgl, and completes the command up to
the lldd.
Since the initial import the core has shed about 10k lines of code.
The todo list has also shrunk, we have eliminated the os abstractions
(formerly in drivers/scsi/isci/deprecated.c), and usages of phys_to_virt
and virt_to_phys have been replaced with proper dma api and kmap calls.
The full driver and history is available in git:
git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git master
The libsas-pending branch contains proposed libsas fixes (pending
acceptance into scsi-misc):
git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git libsas-pending
The x86-pending branch contains a proposed api for mapping bios roms so
the driver can retrieve configuration parameters (pending acceptance
into -tip):
git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git x86-pending
--
Dan for the isci driver team
[1]: http://marc.info/?l=linux-scsi&m=129703780424729&w=2
---
Dan Williams (10):
isci/core: controller
isci/core: phy
isci/core: port
isci/core: remote device
isci/core: remote node context
isci/core: stp
isci/core: request (general, ssp and smp)
isci/core: unsolicited frame handling and registers
isci/core: base state machine and memory descriptors
isci/core: common definitions and utility functions
drivers/scsi/isci/core/intel_ata.h | 554 +++
drivers/scsi/isci/core/intel_sas.h | 948 +++++
drivers/scsi/isci/core/intel_sat.h | 95
drivers/scsi/isci/core/intel_sata.h | 280 +
drivers/scsi/isci/core/intel_scsi.h | 474 ++
drivers/scsi/isci/core/sati_device.h | 156 +
drivers/scsi/isci/core/sati_translator_sequence.h | 304 ++
drivers/scsi/isci/core/sati_types.h | 145 +
drivers/scsi/isci/core/sci_base_controller.h | 306 ++
.../isci/core/sci_base_memory_descriptor_list.c | 159 +
.../isci/core/sci_base_memory_descriptor_list.h | 153 +
drivers/scsi/isci/core/sci_base_phy.h | 200 +
drivers/scsi/isci/core/sci_base_port.h | 203 +
drivers/scsi/isci/core/sci_base_remote_device.h | 274 +
drivers/scsi/isci/core/sci_base_request.h | 195 +
drivers/scsi/isci/core/sci_base_state.h | 90
drivers/scsi/isci/core/sci_base_state_machine.c | 182 +
drivers/scsi/isci/core/sci_base_state_machine.h | 141 +
drivers/scsi/isci/core/sci_controller.h | 98 +
drivers/scsi/isci/core/sci_controller_constants.h | 215 +
.../scsi/isci/core/sci_memory_descriptor_list.h | 168 +
drivers/scsi/isci/core/sci_object.h | 98 +
drivers/scsi/isci/core/sci_pool.h | 199 +
drivers/scsi/isci/core/sci_status.h | 409 ++
drivers/scsi/isci/core/sci_util.c | 101 +
drivers/scsi/isci/core/sci_util.h | 108 +
drivers/scsi/isci/core/scic_config_parameters.h | 346 ++
drivers/scsi/isci/core/scic_controller.h | 495 +++
drivers/scsi/isci/core/scic_io_request.h | 511 +++
drivers/scsi/isci/core/scic_phy.h | 305 ++
drivers/scsi/isci/core/scic_port.h | 195 +
drivers/scsi/isci/core/scic_remote_device.h | 294 ++
drivers/scsi/isci/core/scic_sds_controller.c | 3804 ++++++++++++++++++++
drivers/scsi/isci/core/scic_sds_controller.h | 722 ++++
.../scsi/isci/core/scic_sds_controller_registers.h | 463 ++
drivers/scsi/isci/core/scic_sds_pci.h | 94
drivers/scsi/isci/core/scic_sds_phy.c | 2726 ++++++++++++++
drivers/scsi/isci/core/scic_sds_phy.h | 476 +++
drivers/scsi/isci/core/scic_sds_phy_registers.h | 248 +
drivers/scsi/isci/core/scic_sds_port.c | 2915 +++++++++++++++
drivers/scsi/isci/core/scic_sds_port.h | 499 +++
.../isci/core/scic_sds_port_configuration_agent.c | 863 +++++
.../isci/core/scic_sds_port_configuration_agent.h | 108 +
drivers/scsi/isci/core/scic_sds_port_registers.h | 147 +
drivers/scsi/isci/core/scic_sds_remote_device.c | 2079 +++++++++++
drivers/scsi/isci/core/scic_sds_remote_device.h | 570 +++
.../scsi/isci/core/scic_sds_remote_node_context.c | 1247 +++++++
.../scsi/isci/core/scic_sds_remote_node_context.h | 323 ++
.../scsi/isci/core/scic_sds_remote_node_table.c | 600 +++
.../scsi/isci/core/scic_sds_remote_node_table.h | 195 +
drivers/scsi/isci/core/scic_sds_request.c | 2174 +++++++++++
drivers/scsi/isci/core/scic_sds_request.h | 469 ++
.../scsi/isci/core/scic_sds_smp_remote_device.c | 325 ++
drivers/scsi/isci/core/scic_sds_smp_request.c | 669 ++++
drivers/scsi/isci/core/scic_sds_smp_request.h | 69
drivers/scsi/isci/core/scic_sds_ssp_request.c | 268 +
.../scsi/isci/core/scic_sds_stp_packet_request.c | 834 ++++
.../scsi/isci/core/scic_sds_stp_packet_request.h | 153 +
drivers/scsi/isci/core/scic_sds_stp_pio_request.h | 116 +
.../scsi/isci/core/scic_sds_stp_remote_device.c | 908 +++++
drivers/scsi/isci/core/scic_sds_stp_request.c | 1941 ++++++++++
drivers/scsi/isci/core/scic_sds_stp_request.h | 221 +
.../isci/core/scic_sds_unsolicited_frame_control.c | 383 ++
.../isci/core/scic_sds_unsolicited_frame_control.h | 286 ++
drivers/scsi/isci/core/scic_task_request.h | 147 +
drivers/scsi/isci/core/scu_completion_codes.h | 283 +
drivers/scsi/isci/core/scu_constants.h | 151 +
drivers/scsi/isci/core/scu_event_codes.h | 336 ++
drivers/scsi/isci/core/scu_registers.h | 1830 ++++++++++
drivers/scsi/isci/core/scu_remote_node_context.h | 229 +
drivers/scsi/isci/core/scu_task_context.h | 942 +++++
drivers/scsi/isci/core/scu_unsolicited_frame.h | 117 +
drivers/scsi/isci/core/scu_viit_data.h | 178 +
73 files changed, 39509 insertions(+), 0 deletions(-)
create mode 100644 drivers/scsi/isci/core/intel_ata.h
create mode 100644 drivers/scsi/isci/core/intel_sas.h
create mode 100644 drivers/scsi/isci/core/intel_sat.h
create mode 100644 drivers/scsi/isci/core/intel_sata.h
create mode 100644 drivers/scsi/isci/core/intel_scsi.h
create mode 100644 drivers/scsi/isci/core/sati_device.h
create mode 100644 drivers/scsi/isci/core/sati_translator_sequence.h
create mode 100644 drivers/scsi/isci/core/sati_types.h
create mode 100644 drivers/scsi/isci/core/sci_base_controller.h
create mode 100644 drivers/scsi/isci/core/sci_base_memory_descriptor_list.c
create mode 100644 drivers/scsi/isci/core/sci_base_memory_descriptor_list.h
create mode 100644 drivers/scsi/isci/core/sci_base_phy.h
create mode 100644 drivers/scsi/isci/core/sci_base_port.h
create mode 100644 drivers/scsi/isci/core/sci_base_remote_device.h
create mode 100644 drivers/scsi/isci/core/sci_base_request.h
create mode 100644 drivers/scsi/isci/core/sci_base_state.h
create mode 100644 drivers/scsi/isci/core/sci_base_state_machine.c
create mode 100644 drivers/scsi/isci/core/sci_base_state_machine.h
create mode 100644 drivers/scsi/isci/core/sci_controller.h
create mode 100644 drivers/scsi/isci/core/sci_controller_constants.h
create mode 100644 drivers/scsi/isci/core/sci_memory_descriptor_list.h
create mode 100644 drivers/scsi/isci/core/sci_object.h
create mode 100644 drivers/scsi/isci/core/sci_pool.h
create mode 100644 drivers/scsi/isci/core/sci_status.h
create mode 100644 drivers/scsi/isci/core/sci_util.c
create mode 100644 drivers/scsi/isci/core/sci_util.h
create mode 100644 drivers/scsi/isci/core/scic_config_parameters.h
create mode 100644 drivers/scsi/isci/core/scic_controller.h
create mode 100644 drivers/scsi/isci/core/scic_io_request.h
create mode 100644 drivers/scsi/isci/core/scic_phy.h
create mode 100644 drivers/scsi/isci/core/scic_port.h
create mode 100644 drivers/scsi/isci/core/scic_remote_device.h
create mode 100644 drivers/scsi/isci/core/scic_sds_controller.c
create mode 100644 drivers/scsi/isci/core/scic_sds_controller.h
create mode 100644 drivers/scsi/isci/core/scic_sds_controller_registers.h
create mode 100644 drivers/scsi/isci/core/scic_sds_pci.h
create mode 100644 drivers/scsi/isci/core/scic_sds_phy.c
create mode 100644 drivers/scsi/isci/core/scic_sds_phy.h
create mode 100644 drivers/scsi/isci/core/scic_sds_phy_registers.h
create mode 100644 drivers/scsi/isci/core/scic_sds_port.c
create mode 100644 drivers/scsi/isci/core/scic_sds_port.h
create mode 100644 drivers/scsi/isci/core/scic_sds_port_configuration_agent.c
create mode 100644 drivers/scsi/isci/core/scic_sds_port_configuration_agent.h
create mode 100644 drivers/scsi/isci/core/scic_sds_port_registers.h
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_device.c
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_device.h
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_node_context.c
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_node_context.h
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_node_table.c
create mode 100644 drivers/scsi/isci/core/scic_sds_remote_node_table.h
create mode 100644 drivers/scsi/isci/core/scic_sds_request.c
create mode 100644 drivers/scsi/isci/core/scic_sds_request.h
create mode 100644 drivers/scsi/isci/core/scic_sds_smp_remote_device.c
create mode 100644 drivers/scsi/isci/core/scic_sds_smp_request.c
create mode 100644 drivers/scsi/isci/core/scic_sds_smp_request.h
create mode 100644 drivers/scsi/isci/core/scic_sds_ssp_request.c
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_packet_request.c
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_packet_request.h
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_pio_request.h
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_remote_device.c
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_request.c
create mode 100644 drivers/scsi/isci/core/scic_sds_stp_request.h
create mode 100644 drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.c
create mode 100644 drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.h
create mode 100644 drivers/scsi/isci/core/scic_task_request.h
create mode 100644 drivers/scsi/isci/core/scu_completion_codes.h
create mode 100644 drivers/scsi/isci/core/scu_constants.h
create mode 100644 drivers/scsi/isci/core/scu_event_codes.h
create mode 100644 drivers/scsi/isci/core/scu_registers.h
create mode 100644 drivers/scsi/isci/core/scu_remote_node_context.h
create mode 100644 drivers/scsi/isci/core/scu_task_context.h
create mode 100644 drivers/scsi/isci/core/scu_unsolicited_frame.h
create mode 100644 drivers/scsi/isci/core/scu_viit_data.h
next reply other threads:[~2011-03-10 10:53 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-10 10:54 Dan Williams [this message]
2011-03-10 10:54 ` [RFC PATCH 01/10] isci/core: controller Dan Williams
2011-03-10 10:54 ` [RFC PATCH 02/10] isci/core: phy Dan Williams
2011-03-10 10:54 ` [RFC PATCH 03/10] isci/core: port Dan Williams
2011-03-10 10:54 ` [RFC PATCH 04/10] isci/core: remote device Dan Williams
2011-03-10 10:54 ` [RFC PATCH 05/10] isci/core: remote node context Dan Williams
2011-03-10 10:54 ` [RFC PATCH 06/10] isci/core: stp Dan Williams
2011-03-10 10:54 ` [RFC PATCH 07/10] isci/core: request (general, ssp and smp) Dan Williams
2011-03-10 10:55 ` [RFC PATCH 08/10] isci/core: unsolicited frame handling and registers Dan Williams
2011-03-10 10:55 ` [RFC PATCH 09/10] isci/core: base state machine and memory descriptors Dan Williams
2011-03-10 10:55 ` [RFC PATCH 10/10] isci/core: common definitions and utility functions Dan Williams
2011-03-30 14:37 ` Christoph Hellwig
2011-03-15 17:47 ` [RFC PATCH 00/10] isci: core Jeff Garzik
2011-03-15 17:55 ` Christoph Hellwig
2011-03-15 18:08 ` Jeff Garzik
2011-03-15 20:13 ` Dan Williams
2011-03-15 21:04 ` Jeff Garzik
2011-03-18 15:56 ` Christoph Hellwig
2011-03-19 6:19 ` Dan Williams
2011-03-27 22:32 ` Christoph Hellwig
2011-03-30 1:22 ` Dan Williams
2011-03-30 7:23 ` Christoph Hellwig
2011-03-31 0:20 ` Dan Williams
2011-03-31 6:32 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110310105347.6485.20780.stgit@localhost6.localdomain6 \
--to=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=ed.ciechanowski@intel.com \
--cc=edmund.nadolski@intel.com \
--cc=jacek.danecki@intel.com \
--cc=james.bottomley@suse.de \
--cc=jeffrey.d.skirvin@intel.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).