Date: Tue, 14 Feb 2012 15:56:02 +0000 (UTC) From: Jim Harris <jimharris@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r231688 - in stable/8: . share/man/man4 sys/amd64/conf sys/conf sys/dev/isci sys/dev/isci/scil sys/i386/conf sys/modules sys/modules/isci Message-ID: <201202141556.q1EFu2Q9006483@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jimharris Date: Tue Feb 14 15:56:01 2012 New Revision: 231688 URL: http://svn.freebsd.org/changeset/base/231688 Log: MFC r230843, r231134, r231136, r231137, r231296 Add isci(4) driver for amd64 and i386 targets. The isci driver is for the integrated SAS controller in the Intel C600 (Patsburg) chipset. Source files in sys/dev/isci directory are FreeBSD-specific, and sys/dev/isci/scil subdirectory contains an OS-agnostic library (SCIL) published by Intel to control the SAS controller. This library is used primarily as-is in this driver, with some post-processing to better integrate into the kernel build environment. isci.4 and a README in the sys/dev/isci directory contain a few additional details. This driver is only built for amd64 and i386 targets. Sponsored by: Intel Reviewed by: scottl Approved by: scottl Added: stable/8/share/man/man4/isci.4 - copied unchanged from r230843, head/share/man/man4/isci.4 stable/8/sys/dev/isci/ - copied from r230843, head/sys/dev/isci/ stable/8/sys/modules/isci/ - copied from r230843, head/sys/modules/isci/ Modified: stable/8/MAINTAINERS (contents, props changed) stable/8/share/man/man4/Makefile stable/8/sys/amd64/conf/GENERIC stable/8/sys/amd64/conf/NOTES stable/8/sys/conf/files.amd64 stable/8/sys/conf/files.i386 stable/8/sys/conf/options.amd64 stable/8/sys/conf/options.i386 stable/8/sys/dev/isci/isci.h (contents, props changed) stable/8/sys/dev/isci/isci_io_request.c (contents, props changed) stable/8/sys/dev/isci/isci_remote_device.c (contents, props changed) stable/8/sys/dev/isci/scil/sati_abort_task_set.c (contents, props changed) stable/8/sys/dev/isci/scil/scic_sds_controller.c (contents, props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_request.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_controller.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_controller_state_handlers.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_domain.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_io_request.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_io_request.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_remote_device.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_io_request.c (contents, props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_task_request.c (contents, props changed) stable/8/sys/i386/conf/GENERIC stable/8/sys/i386/conf/NOTES stable/8/sys/modules/Makefile stable/8/sys/modules/isci/Makefile (contents, props changed) Directory Properties: stable/8/share/man/man4/ (props changed) stable/8/sys/ (props changed) stable/8/sys/dev/isci/README (props changed) stable/8/sys/dev/isci/environment.h (props changed) stable/8/sys/dev/isci/isci.c (props changed) stable/8/sys/dev/isci/isci_controller.c (props changed) stable/8/sys/dev/isci/isci_domain.c (props changed) stable/8/sys/dev/isci/isci_interrupt.c (props changed) stable/8/sys/dev/isci/isci_logger.c (props changed) stable/8/sys/dev/isci/isci_oem_parameters.c (props changed) stable/8/sys/dev/isci/isci_sysctl.c (props changed) stable/8/sys/dev/isci/isci_task_request.c (props changed) stable/8/sys/dev/isci/isci_timer.c (props changed) stable/8/sys/dev/isci/sci_environment.h (props changed) stable/8/sys/dev/isci/scil/intel_ata.h (props changed) stable/8/sys/dev/isci/scil/intel_pci.h (props changed) stable/8/sys/dev/isci/scil/intel_sas.h (props changed) stable/8/sys/dev/isci/scil/intel_sat.h (props changed) stable/8/sys/dev/isci/scil/intel_sata.h (props changed) stable/8/sys/dev/isci/scil/intel_scsi.h (props changed) stable/8/sys/dev/isci/scil/sati.c (props changed) stable/8/sys/dev/isci/scil/sati.h (props changed) stable/8/sys/dev/isci/scil/sati_abort_task_set.h (props changed) stable/8/sys/dev/isci/scil/sati_atapi.c (props changed) stable/8/sys/dev/isci/scil/sati_atapi.h (props changed) stable/8/sys/dev/isci/scil/sati_callbacks.h (props changed) stable/8/sys/dev/isci/scil/sati_design.h (props changed) stable/8/sys/dev/isci/scil/sati_device.c (props changed) stable/8/sys/dev/isci/scil/sati_device.h (props changed) stable/8/sys/dev/isci/scil/sati_inquiry.c (props changed) stable/8/sys/dev/isci/scil/sati_inquiry.h (props changed) stable/8/sys/dev/isci/scil/sati_log_sense.c (props changed) stable/8/sys/dev/isci/scil/sati_log_sense.h (props changed) stable/8/sys/dev/isci/scil/sati_lun_reset.c (props changed) stable/8/sys/dev/isci/scil/sati_lun_reset.h (props changed) stable/8/sys/dev/isci/scil/sati_mode_pages.c (props changed) stable/8/sys/dev/isci/scil/sati_mode_pages.h (props changed) stable/8/sys/dev/isci/scil/sati_mode_select.c (props changed) stable/8/sys/dev/isci/scil/sati_mode_select.h (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense.c (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense.h (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense_10.c (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense_10.h (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense_6.c (props changed) stable/8/sys/dev/isci/scil/sati_mode_sense_6.h (props changed) stable/8/sys/dev/isci/scil/sati_move.c (props changed) stable/8/sys/dev/isci/scil/sati_move.h (props changed) stable/8/sys/dev/isci/scil/sati_passthrough.c (props changed) stable/8/sys/dev/isci/scil/sati_passthrough.h (props changed) stable/8/sys/dev/isci/scil/sati_read.c (props changed) stable/8/sys/dev/isci/scil/sati_read.h (props changed) stable/8/sys/dev/isci/scil/sati_read_buffer.c (props changed) stable/8/sys/dev/isci/scil/sati_read_buffer.h (props changed) stable/8/sys/dev/isci/scil/sati_read_capacity.c (props changed) stable/8/sys/dev/isci/scil/sati_read_capacity.h (props changed) stable/8/sys/dev/isci/scil/sati_reassign_blocks.c (props changed) stable/8/sys/dev/isci/scil/sati_reassign_blocks.h (props changed) stable/8/sys/dev/isci/scil/sati_report_luns.c (props changed) stable/8/sys/dev/isci/scil/sati_report_luns.h (props changed) stable/8/sys/dev/isci/scil/sati_request_sense.c (props changed) stable/8/sys/dev/isci/scil/sati_request_sense.h (props changed) stable/8/sys/dev/isci/scil/sati_start_stop_unit.c (props changed) stable/8/sys/dev/isci/scil/sati_start_stop_unit.h (props changed) stable/8/sys/dev/isci/scil/sati_synchronize_cache.c (props changed) stable/8/sys/dev/isci/scil/sati_synchronize_cache.h (props changed) stable/8/sys/dev/isci/scil/sati_test_unit_ready.c (props changed) stable/8/sys/dev/isci/scil/sati_test_unit_ready.h (props changed) stable/8/sys/dev/isci/scil/sati_translator_sequence.h (props changed) stable/8/sys/dev/isci/scil/sati_types.h (props changed) stable/8/sys/dev/isci/scil/sati_unmap.c (props changed) stable/8/sys/dev/isci/scil/sati_unmap.h (props changed) stable/8/sys/dev/isci/scil/sati_util.c (props changed) stable/8/sys/dev/isci/scil/sati_util.h (props changed) stable/8/sys/dev/isci/scil/sati_verify.c (props changed) stable/8/sys/dev/isci/scil/sati_verify.h (props changed) stable/8/sys/dev/isci/scil/sati_write.c (props changed) stable/8/sys/dev/isci/scil/sati_write.h (props changed) stable/8/sys/dev/isci/scil/sati_write_and_verify.c (props changed) stable/8/sys/dev/isci/scil/sati_write_and_verify.h (props changed) stable/8/sys/dev/isci/scil/sati_write_buffer.c (props changed) stable/8/sys/dev/isci/scil/sati_write_buffer.h (props changed) stable/8/sys/dev/isci/scil/sati_write_long.c (props changed) stable/8/sys/dev/isci/scil/sati_write_long.h (props changed) stable/8/sys/dev/isci/scil/sci_abstract_list.c (props changed) stable/8/sys/dev/isci/scil/sci_abstract_list.h (props changed) stable/8/sys/dev/isci/scil/sci_base_controller.c (props changed) stable/8/sys/dev/isci/scil/sci_base_controller.h (props changed) stable/8/sys/dev/isci/scil/sci_base_domain.c (props changed) stable/8/sys/dev/isci/scil/sci_base_domain.h (props changed) stable/8/sys/dev/isci/scil/sci_base_iterator.c (props changed) stable/8/sys/dev/isci/scil/sci_base_iterator.h (props changed) stable/8/sys/dev/isci/scil/sci_base_library.c (props changed) stable/8/sys/dev/isci/scil/sci_base_library.h (props changed) stable/8/sys/dev/isci/scil/sci_base_logger.c (props changed) stable/8/sys/dev/isci/scil/sci_base_logger.h (props changed) stable/8/sys/dev/isci/scil/sci_base_memory_descriptor_list.c (props changed) stable/8/sys/dev/isci/scil/sci_base_memory_descriptor_list.h (props changed) stable/8/sys/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c (props changed) stable/8/sys/dev/isci/scil/sci_base_object.c (props changed) stable/8/sys/dev/isci/scil/sci_base_object.h (props changed) stable/8/sys/dev/isci/scil/sci_base_observer.c (props changed) stable/8/sys/dev/isci/scil/sci_base_observer.h (props changed) stable/8/sys/dev/isci/scil/sci_base_phy.c (props changed) stable/8/sys/dev/isci/scil/sci_base_phy.h (props changed) stable/8/sys/dev/isci/scil/sci_base_port.c (props changed) stable/8/sys/dev/isci/scil/sci_base_port.h (props changed) stable/8/sys/dev/isci/scil/sci_base_remote_device.c (props changed) stable/8/sys/dev/isci/scil/sci_base_remote_device.h (props changed) stable/8/sys/dev/isci/scil/sci_base_request.c (props changed) stable/8/sys/dev/isci/scil/sci_base_request.h (props changed) stable/8/sys/dev/isci/scil/sci_base_state.h (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine.c (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine.h (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine_logger.c (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine_logger.h (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine_observer.c (props changed) stable/8/sys/dev/isci/scil/sci_base_state_machine_observer.h (props changed) stable/8/sys/dev/isci/scil/sci_base_subject.c (props changed) stable/8/sys/dev/isci/scil/sci_base_subject.h (props changed) stable/8/sys/dev/isci/scil/sci_controller.h (props changed) stable/8/sys/dev/isci/scil/sci_controller_constants.h (props changed) stable/8/sys/dev/isci/scil/sci_fast_list.h (props changed) stable/8/sys/dev/isci/scil/sci_iterator.h (props changed) stable/8/sys/dev/isci/scil/sci_library.h (props changed) stable/8/sys/dev/isci/scil/sci_logger.h (props changed) stable/8/sys/dev/isci/scil/sci_memory_descriptor_list.h (props changed) stable/8/sys/dev/isci/scil/sci_memory_descriptor_list_decorator.h (props changed) stable/8/sys/dev/isci/scil/sci_object.h (props changed) stable/8/sys/dev/isci/scil/sci_overview.h (props changed) stable/8/sys/dev/isci/scil/sci_pool.h (props changed) stable/8/sys/dev/isci/scil/sci_simple_list.h (props changed) stable/8/sys/dev/isci/scil/sci_status.h (props changed) stable/8/sys/dev/isci/scil/sci_types.h (props changed) stable/8/sys/dev/isci/scil/sci_util.c (props changed) stable/8/sys/dev/isci/scil/sci_util.h (props changed) stable/8/sys/dev/isci/scil/scic_config_parameters.h (props changed) stable/8/sys/dev/isci/scil/scic_controller.h (props changed) stable/8/sys/dev/isci/scil/scic_io_request.h (props changed) stable/8/sys/dev/isci/scil/scic_library.h (props changed) stable/8/sys/dev/isci/scil/scic_logger.h (props changed) stable/8/sys/dev/isci/scil/scic_overview.h (props changed) stable/8/sys/dev/isci/scil/scic_phy.h (props changed) stable/8/sys/dev/isci/scil/scic_port.h (props changed) stable/8/sys/dev/isci/scil/scic_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_controller.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_controller_registers.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_library.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_library.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_logger.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_pci.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_pci.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_phy.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_phy.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_phy_registers.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_port.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_port.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_port_configuration_agent.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_port_configuration_agent.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_port_registers.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_device.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_node_context.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_node_context.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_node_table.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_remote_node_table.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_request.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_request.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_sgpio.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_smp_remote_device.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_smp_request.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_smp_request.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_ssp_request.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_packet_request.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_packet_request.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_pio_request.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_remote_device.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_stp_request.h (props changed) stable/8/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.c (props changed) stable/8/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.h (props changed) stable/8/sys/dev/isci/scil/scic_sgpio.h (props changed) stable/8/sys/dev/isci/scil/scic_task_request.h (props changed) stable/8/sys/dev/isci/scil/scic_user_callback.h (props changed) stable/8/sys/dev/isci/scil/scif_config_parameters.h (props changed) stable/8/sys/dev/isci/scil/scif_controller.h (props changed) stable/8/sys/dev/isci/scil/scif_domain.h (props changed) stable/8/sys/dev/isci/scil/scif_io_request.h (props changed) stable/8/sys/dev/isci/scil/scif_library.h (props changed) stable/8/sys/dev/isci/scil/scif_logger.h (props changed) stable/8/sys/dev/isci/scil/scif_overview.h (props changed) stable/8/sys/dev/isci/scil/scif_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_constants.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_controller.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_controller_states.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_design.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_domain.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_domain_state_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_domain_states.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_high_priority_request_queue.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_high_priority_request_queue.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_internal_io_request.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_internal_io_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_io_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_io_request_state_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_io_request_states.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_library.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_library.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_logger.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_starting_substates.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_remote_device_states.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_request.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_sati_binding.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_io_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_phy.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_phy.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_smp_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_io_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_remote_device.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_remote_device.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_stp_task_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_task_request.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_task_request.h (props changed) stable/8/sys/dev/isci/scil/scif_sas_task_request_state_handlers.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_task_request_states.c (props changed) stable/8/sys/dev/isci/scil/scif_sas_timer.c (props changed) stable/8/sys/dev/isci/scil/scif_task_request.h (props changed) stable/8/sys/dev/isci/scil/scif_user_callback.h (props changed) stable/8/sys/dev/isci/scil/scu_bios_definitions.h (props changed) stable/8/sys/dev/isci/scil/scu_completion_codes.h (props changed) stable/8/sys/dev/isci/scil/scu_constants.h (props changed) stable/8/sys/dev/isci/scil/scu_event_codes.h (props changed) stable/8/sys/dev/isci/scil/scu_registers.h (props changed) stable/8/sys/dev/isci/scil/scu_remote_node_context.h (props changed) stable/8/sys/dev/isci/scil/scu_task_context.h (props changed) stable/8/sys/dev/isci/scil/scu_unsolicited_frame.h (props changed) stable/8/sys/dev/isci/scil/scu_viit_data.h (props changed) stable/8/sys/dev/isci/types.h (props changed) Modified: stable/8/MAINTAINERS ============================================================================== --- stable/8/MAINTAINERS Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/MAINTAINERS Tue Feb 14 15:56:01 2012 (r231688) @@ -124,6 +124,7 @@ usr.bin/bluetooth emax Pre-commit review usr.sbin/bluetooth emax Pre-commit review preferred. gnu/usr.bin/send-pr bugmaster Pre-commit review requested. ncurses rafan Heads-up appreciated, try not to break it. +isci(4) jimharris Pre-commit review requested. Following are the entries from the Makefiles, and a few other sources. Please remove stale entries from both their origin, and this file. Modified: stable/8/share/man/man4/Makefile ============================================================================== --- stable/8/share/man/man4/Makefile Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/share/man/man4/Makefile Tue Feb 14 15:56:01 2012 (r231688) @@ -171,6 +171,7 @@ MAN= aac.4 \ ipsec.4 \ ipw.4 \ ipwfw.4 \ + isci.4 \ iscsi_initiator.4 \ isp.4 \ ispfw.4 \ Copied: stable/8/share/man/man4/isci.4 (from r230843, head/share/man/man4/isci.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/share/man/man4/isci.4 Tue Feb 14 15:56:01 2012 (r231688, copy of r230843, head/share/man/man4/isci.4) @@ -0,0 +1,110 @@ +.\" +.\" Copyright (c) 2012 Intel Corporation +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions, and the following disclaimer, +.\" without modification. +.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer +.\" substantially similar to the "NO WARRANTY" disclaimer below +.\" ("Disclaimer") and any redistribution must be conditioned upon +.\" including a substantially similar Disclaimer requirement for further +.\" binary redistribution. +.\" +.\" NO WARRANTY +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR +.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGES. +.\" +.\" isci driver man page. +.\" +.\" Author: Jim Harris <jimharris@FreeBSD.org> +.\" +.\" $FreeBSD$ +.\" +.Dd January 23, 2012 +.Dt ISCI 4 +.Os +.Sh NAME +.Nm isci +.Nd Intel C600 Serial Attached SCSI driver +.Sh SYNOPSIS +To compile this driver into your kernel, +place the following lines in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device scbus" +.Cd "device isci" +.Ed +.Pp +Or, to load the driver as a module at boot, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +isci_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for Intel C600 +.Tn SAS +controller. +.Sh CONFIGURATION +To force legacy interrupts for all +.Nm +driver instances, set the following tunable value in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.isci.force_legacy_interrupts=1 +.Ed +.Sh DEBUGGING +To enable debugging prints from the +.Nm +driver, set the +.Bd -literal -offset indent +hw.isci.debug_level +.Ed +.Pp +variable to a value between 1 and 4 in +.Xr loader.conf 5 . +.Pp +The hardware layer in the isci driver has extensive logging capabilities +which are disabled by default for performance reasons. These can be enabled +by adding +.Bd -literal -offset indent +options ISCI_LOGGING +.Ed +.Pp +to the kernel configuration file. +.Sh SEE ALSO +.Xr cd 4 , +.Xr ch 4 , +.Xr da 4 , +.Xr pci 4 , +.Xr sa 4 , +.Xr scsi 4 . +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was developed by Intel and originally written by +.An Jim Harris Aq jimharris@FreeBSD.org +with contributions from Sohaib Ahsan and input from +.An Scott Long Aq scottl@FreeBSD.org . +.Pp +This man page was written by +.An Jim Harris Aq jimharris@FreeBSD.org . Modified: stable/8/sys/amd64/conf/GENERIC ============================================================================== --- stable/8/sys/amd64/conf/GENERIC Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/amd64/conf/GENERIC Tue Feb 14 15:56:01 2012 (r231688) @@ -122,6 +122,7 @@ device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters +device isci # Intel C600 SAS controller # SCSI peripherals device scbus # SCSI bus (required for SCSI) Modified: stable/8/sys/amd64/conf/NOTES ============================================================================== --- stable/8/sys/amd64/conf/NOTES Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/amd64/conf/NOTES Tue Feb 14 15:56:01 2012 (r231688) @@ -410,6 +410,11 @@ device hptiop device ips # +# Intel C600 (Patsburg) integrated SAS controller +device isci +options ISCI_LOGGING # enable debugging in isci HAL + +# # SafeNet crypto driver: can be moved to the MI NOTES as soon as # it's tested on a big-endian machine # Modified: stable/8/sys/conf/files.amd64 ============================================================================== --- stable/8/sys/conf/files.amd64 Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/conf/files.amd64 Tue Feb 14 15:56:01 2012 (r231688) @@ -240,6 +240,115 @@ dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_amd64.c optional uart dev/viawd/viawd.c optional viawd dev/wpi/if_wpi.c optional wpi +dev/isci/isci.c optional isci +dev/isci/isci_controller.c optional isci +dev/isci/isci_domain.c optional isci +dev/isci/isci_interrupt.c optional isci +dev/isci/isci_io_request.c optional isci +dev/isci/isci_logger.c optional isci +dev/isci/isci_oem_parameters.c optional isci +dev/isci/isci_remote_device.c optional isci +dev/isci/isci_sysctl.c optional isci +dev/isci/isci_task_request.c optional isci +dev/isci/isci_timer.c optional isci +dev/isci/scil/sati.c optional isci +dev/isci/scil/sati_abort_task_set.c optional isci +dev/isci/scil/sati_atapi.c optional isci +dev/isci/scil/sati_device.c optional isci +dev/isci/scil/sati_inquiry.c optional isci +dev/isci/scil/sati_log_sense.c optional isci +dev/isci/scil/sati_lun_reset.c optional isci +dev/isci/scil/sati_mode_pages.c optional isci +dev/isci/scil/sati_mode_select.c optional isci +dev/isci/scil/sati_mode_sense.c optional isci +dev/isci/scil/sati_mode_sense_10.c optional isci +dev/isci/scil/sati_mode_sense_6.c optional isci +dev/isci/scil/sati_move.c optional isci +dev/isci/scil/sati_passthrough.c optional isci +dev/isci/scil/sati_read.c optional isci +dev/isci/scil/sati_read_buffer.c optional isci +dev/isci/scil/sati_read_capacity.c optional isci +dev/isci/scil/sati_reassign_blocks.c optional isci +dev/isci/scil/sati_report_luns.c optional isci +dev/isci/scil/sati_request_sense.c optional isci +dev/isci/scil/sati_start_stop_unit.c optional isci +dev/isci/scil/sati_synchronize_cache.c optional isci +dev/isci/scil/sati_test_unit_ready.c optional isci +dev/isci/scil/sati_unmap.c optional isci +dev/isci/scil/sati_util.c optional isci +dev/isci/scil/sati_verify.c optional isci +dev/isci/scil/sati_write.c optional isci +dev/isci/scil/sati_write_and_verify.c optional isci +dev/isci/scil/sati_write_buffer.c optional isci +dev/isci/scil/sati_write_long.c optional isci +dev/isci/scil/sci_abstract_list.c optional isci +dev/isci/scil/sci_base_controller.c optional isci +dev/isci/scil/sci_base_domain.c optional isci +dev/isci/scil/sci_base_iterator.c optional isci +dev/isci/scil/sci_base_library.c optional isci +dev/isci/scil/sci_base_logger.c optional isci +dev/isci/scil/sci_base_memory_descriptor_list.c optional isci +dev/isci/scil/sci_base_memory_descriptor_list_decorator.c optional isci +dev/isci/scil/sci_base_object.c optional isci +dev/isci/scil/sci_base_observer.c optional isci +dev/isci/scil/sci_base_phy.c optional isci +dev/isci/scil/sci_base_port.c optional isci +dev/isci/scil/sci_base_remote_device.c optional isci +dev/isci/scil/sci_base_request.c optional isci +dev/isci/scil/sci_base_state_machine.c optional isci +dev/isci/scil/sci_base_state_machine_logger.c optional isci +dev/isci/scil/sci_base_state_machine_observer.c optional isci +dev/isci/scil/sci_base_subject.c optional isci +dev/isci/scil/sci_util.c optional isci +dev/isci/scil/scic_sds_controller.c optional isci +dev/isci/scil/scic_sds_library.c optional isci +dev/isci/scil/scic_sds_pci.c optional isci +dev/isci/scil/scic_sds_phy.c optional isci +dev/isci/scil/scic_sds_port.c optional isci +dev/isci/scil/scic_sds_port_configuration_agent.c optional isci +dev/isci/scil/scic_sds_remote_device.c optional isci +dev/isci/scil/scic_sds_remote_node_context.c optional isci +dev/isci/scil/scic_sds_remote_node_table.c optional isci +dev/isci/scil/scic_sds_request.c optional isci +dev/isci/scil/scic_sds_sgpio.c optional isci +dev/isci/scil/scic_sds_smp_remote_device.c optional isci +dev/isci/scil/scic_sds_smp_request.c optional isci +dev/isci/scil/scic_sds_ssp_request.c optional isci +dev/isci/scil/scic_sds_stp_packet_request.c optional isci +dev/isci/scil/scic_sds_stp_remote_device.c optional isci +dev/isci/scil/scic_sds_stp_request.c optional isci +dev/isci/scil/scic_sds_unsolicited_frame_control.c optional isci +dev/isci/scil/scif_sas_controller.c optional isci +dev/isci/scil/scif_sas_controller_state_handlers.c optional isci +dev/isci/scil/scif_sas_controller_states.c optional isci +dev/isci/scil/scif_sas_domain.c optional isci +dev/isci/scil/scif_sas_domain_state_handlers.c optional isci +dev/isci/scil/scif_sas_domain_states.c optional isci +dev/isci/scil/scif_sas_high_priority_request_queue.c optional isci +dev/isci/scil/scif_sas_internal_io_request.c optional isci +dev/isci/scil/scif_sas_io_request.c optional isci +dev/isci/scil/scif_sas_io_request_state_handlers.c optional isci +dev/isci/scil/scif_sas_io_request_states.c optional isci +dev/isci/scil/scif_sas_library.c optional isci +dev/isci/scil/scif_sas_remote_device.c optional isci +dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_ready_substates.c optional isci +dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_starting_substates.c optional isci +dev/isci/scil/scif_sas_remote_device_state_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_states.c optional isci +dev/isci/scil/scif_sas_request.c optional isci +dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c optional isci +dev/isci/scil/scif_sas_smp_io_request.c optional isci +dev/isci/scil/scif_sas_smp_phy.c optional isci +dev/isci/scil/scif_sas_smp_remote_device.c optional isci +dev/isci/scil/scif_sas_stp_io_request.c optional isci +dev/isci/scil/scif_sas_stp_remote_device.c optional isci +dev/isci/scil/scif_sas_stp_task_request.c optional isci +dev/isci/scil/scif_sas_task_request.c optional isci +dev/isci/scil/scif_sas_task_request_state_handlers.c optional isci +dev/isci/scil/scif_sas_task_request_states.c optional isci +dev/isci/scil/scif_sas_timer.c optional isci isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/link_elf_obj.c standard Modified: stable/8/sys/conf/files.i386 ============================================================================== --- stable/8/sys/conf/files.i386 Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/conf/files.i386 Tue Feb 14 15:56:01 2012 (r231688) @@ -247,6 +247,115 @@ dev/viawd/viawd.c optional viawd dev/acpica/acpi_if.m standard dev/acpi_support/acpi_wmi_if.m standard dev/wpi/if_wpi.c optional wpi +dev/isci/isci.c optional isci +dev/isci/isci_controller.c optional isci +dev/isci/isci_domain.c optional isci +dev/isci/isci_interrupt.c optional isci +dev/isci/isci_io_request.c optional isci +dev/isci/isci_logger.c optional isci +dev/isci/isci_oem_parameters.c optional isci +dev/isci/isci_remote_device.c optional isci +dev/isci/isci_sysctl.c optional isci +dev/isci/isci_task_request.c optional isci +dev/isci/isci_timer.c optional isci +dev/isci/scil/sati.c optional isci +dev/isci/scil/sati_abort_task_set.c optional isci +dev/isci/scil/sati_atapi.c optional isci +dev/isci/scil/sati_device.c optional isci +dev/isci/scil/sati_inquiry.c optional isci +dev/isci/scil/sati_log_sense.c optional isci +dev/isci/scil/sati_lun_reset.c optional isci +dev/isci/scil/sati_mode_pages.c optional isci +dev/isci/scil/sati_mode_select.c optional isci +dev/isci/scil/sati_mode_sense.c optional isci +dev/isci/scil/sati_mode_sense_10.c optional isci +dev/isci/scil/sati_mode_sense_6.c optional isci +dev/isci/scil/sati_move.c optional isci +dev/isci/scil/sati_passthrough.c optional isci +dev/isci/scil/sati_read.c optional isci +dev/isci/scil/sati_read_buffer.c optional isci +dev/isci/scil/sati_read_capacity.c optional isci +dev/isci/scil/sati_reassign_blocks.c optional isci +dev/isci/scil/sati_report_luns.c optional isci +dev/isci/scil/sati_request_sense.c optional isci +dev/isci/scil/sati_start_stop_unit.c optional isci +dev/isci/scil/sati_synchronize_cache.c optional isci +dev/isci/scil/sati_test_unit_ready.c optional isci +dev/isci/scil/sati_unmap.c optional isci +dev/isci/scil/sati_util.c optional isci +dev/isci/scil/sati_verify.c optional isci +dev/isci/scil/sati_write.c optional isci +dev/isci/scil/sati_write_and_verify.c optional isci +dev/isci/scil/sati_write_buffer.c optional isci +dev/isci/scil/sati_write_long.c optional isci +dev/isci/scil/sci_abstract_list.c optional isci +dev/isci/scil/sci_base_controller.c optional isci +dev/isci/scil/sci_base_domain.c optional isci +dev/isci/scil/sci_base_iterator.c optional isci +dev/isci/scil/sci_base_library.c optional isci +dev/isci/scil/sci_base_logger.c optional isci +dev/isci/scil/sci_base_memory_descriptor_list.c optional isci +dev/isci/scil/sci_base_memory_descriptor_list_decorator.c optional isci +dev/isci/scil/sci_base_object.c optional isci +dev/isci/scil/sci_base_observer.c optional isci +dev/isci/scil/sci_base_phy.c optional isci +dev/isci/scil/sci_base_port.c optional isci +dev/isci/scil/sci_base_remote_device.c optional isci +dev/isci/scil/sci_base_request.c optional isci +dev/isci/scil/sci_base_state_machine.c optional isci +dev/isci/scil/sci_base_state_machine_logger.c optional isci +dev/isci/scil/sci_base_state_machine_observer.c optional isci +dev/isci/scil/sci_base_subject.c optional isci +dev/isci/scil/sci_util.c optional isci +dev/isci/scil/scic_sds_controller.c optional isci +dev/isci/scil/scic_sds_library.c optional isci +dev/isci/scil/scic_sds_pci.c optional isci +dev/isci/scil/scic_sds_phy.c optional isci +dev/isci/scil/scic_sds_port.c optional isci +dev/isci/scil/scic_sds_port_configuration_agent.c optional isci +dev/isci/scil/scic_sds_remote_device.c optional isci +dev/isci/scil/scic_sds_remote_node_context.c optional isci +dev/isci/scil/scic_sds_remote_node_table.c optional isci +dev/isci/scil/scic_sds_request.c optional isci +dev/isci/scil/scic_sds_sgpio.c optional isci +dev/isci/scil/scic_sds_smp_remote_device.c optional isci +dev/isci/scil/scic_sds_smp_request.c optional isci +dev/isci/scil/scic_sds_ssp_request.c optional isci +dev/isci/scil/scic_sds_stp_packet_request.c optional isci +dev/isci/scil/scic_sds_stp_remote_device.c optional isci +dev/isci/scil/scic_sds_stp_request.c optional isci +dev/isci/scil/scic_sds_unsolicited_frame_control.c optional isci +dev/isci/scil/scif_sas_controller.c optional isci +dev/isci/scil/scif_sas_controller_state_handlers.c optional isci +dev/isci/scil/scif_sas_controller_states.c optional isci +dev/isci/scil/scif_sas_domain.c optional isci +dev/isci/scil/scif_sas_domain_state_handlers.c optional isci +dev/isci/scil/scif_sas_domain_states.c optional isci +dev/isci/scil/scif_sas_high_priority_request_queue.c optional isci +dev/isci/scil/scif_sas_internal_io_request.c optional isci +dev/isci/scil/scif_sas_io_request.c optional isci +dev/isci/scil/scif_sas_io_request_state_handlers.c optional isci +dev/isci/scil/scif_sas_io_request_states.c optional isci +dev/isci/scil/scif_sas_library.c optional isci +dev/isci/scil/scif_sas_remote_device.c optional isci +dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_ready_substates.c optional isci +dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_starting_substates.c optional isci +dev/isci/scil/scif_sas_remote_device_state_handlers.c optional isci +dev/isci/scil/scif_sas_remote_device_states.c optional isci +dev/isci/scil/scif_sas_request.c optional isci +dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c optional isci +dev/isci/scil/scif_sas_smp_io_request.c optional isci +dev/isci/scil/scif_sas_smp_phy.c optional isci +dev/isci/scil/scif_sas_smp_remote_device.c optional isci +dev/isci/scil/scif_sas_stp_io_request.c optional isci +dev/isci/scil/scif_sas_stp_remote_device.c optional isci +dev/isci/scil/scif_sas_stp_task_request.c optional isci +dev/isci/scil/scif_sas_task_request.c optional isci +dev/isci/scil/scif_sas_task_request_state_handlers.c optional isci +dev/isci/scil/scif_sas_task_request_states.c optional isci +dev/isci/scil/scif_sas_timer.c optional isci i386/acpica/OsdEnvironment.c optional acpi i386/acpica/acpi_machdep.c optional acpi i386/acpica/acpi_wakeup.c optional acpi Modified: stable/8/sys/conf/options.amd64 ============================================================================== --- stable/8/sys/conf/options.amd64 Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/conf/options.amd64 Tue Feb 14 15:56:01 2012 (r231688) @@ -64,3 +64,6 @@ KDTRACE_FRAME opt_kdtrace.h BPF_JITTER opt_bpf.h XENHVM opt_global.h + +# options for the Intel C600 SAS driver (isci) +ISCI_LOGGING opt_isci.h Modified: stable/8/sys/conf/options.i386 ============================================================================== --- stable/8/sys/conf/options.i386 Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/conf/options.i386 Tue Feb 14 15:56:01 2012 (r231688) @@ -119,3 +119,7 @@ BPF_JITTER opt_bpf.h NATIVE opt_global.h XEN opt_global.h +XENHVM opt_global.h + +# options for the Intel C600 SAS driver (isci) +ISCI_LOGGING opt_isci.h Modified: stable/8/sys/dev/isci/isci.h ============================================================================== --- head/sys/dev/isci/isci.h Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/isci.h Tue Feb 14 15:56:01 2012 (r231688) @@ -160,7 +160,6 @@ struct ISCI_REQUEST struct ISCI_IO_REQUEST { struct ISCI_REQUEST parent; - SCI_STATUS status; SCI_IO_REQUEST_HANDLE_T sci_object; union ccb *ccb; uint32_t num_segments; Modified: stable/8/sys/dev/isci/isci_io_request.c ============================================================================== --- head/sys/dev/isci/isci_io_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/isci_io_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -626,16 +626,16 @@ isci_io_request_construct(void *arg, bus return; } - io_request->status = scif_io_request_construct( + status = scif_io_request_construct( io_request->parent.controller_handle, io_request->parent.remote_device_handle, SCI_CONTROLLER_INVALID_IO_TAG, (void *)io_request, (void *)((char*)io_request + sizeof(struct ISCI_IO_REQUEST)), &io_request->sci_object); - if (io_request->status != SCI_SUCCESS) { + if (status != SCI_SUCCESS) { isci_io_request_complete(io_request->parent.controller_handle, - device, io_request, io_request->status); + device, io_request, (SCI_IO_STATUS)status); return; } @@ -650,7 +650,7 @@ isci_io_request_construct(void *arg, bus if (status != SCI_SUCCESS) { isci_io_request_complete(io_request->parent.controller_handle, - device, io_request, status); + device, io_request, (SCI_IO_STATUS)status); return; } @@ -900,7 +900,7 @@ isci_io_request_execute_smp_io(union ccb if (status != SCI_SUCCESS) { isci_io_request_complete(controller->scif_controller_handle, - smp_device_handle, io_request, status); + smp_device_handle, io_request, (SCI_IO_STATUS)status); return; } @@ -912,7 +912,7 @@ isci_io_request_execute_smp_io(union ccb if (status != SCI_SUCCESS) { isci_io_request_complete(controller->scif_controller_handle, - smp_device_handle, io_request, status); + smp_device_handle, io_request, (SCI_IO_STATUS)status); return; } Modified: stable/8/sys/dev/isci/isci_remote_device.c ============================================================================== --- head/sys/dev/isci/isci_remote_device.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/isci_remote_device.c Tue Feb 14 15:56:01 2012 (r231688) @@ -195,7 +195,7 @@ isci_remote_device_reset(struct ISCI_REM if (status != SCI_SUCCESS) { isci_task_request_complete(controller->scif_controller_handle, remote_device->sci_object, task_request->sci_object, - status); + (SCI_TASK_STATUS)status); return; } @@ -207,7 +207,7 @@ isci_remote_device_reset(struct ISCI_REM isci_task_request_complete( controller->scif_controller_handle, remote_device->sci_object, task_request->sci_object, - status); + (SCI_TASK_STATUS)status); return; } } Modified: stable/8/sys/dev/isci/scil/sati_abort_task_set.c ============================================================================== --- head/sys/dev/isci/scil/sati_abort_task_set.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/sati_abort_task_set.c Tue Feb 14 15:56:01 2012 (r231688) @@ -124,8 +124,8 @@ SATI_STATUS sati_abort_task_set_translat for (tag_index = 0; tag_index < 32; tag_index++) { - void * matching_command; - SCI_STATUS completion_status; + void * matching_command; + SCI_IO_STATUS completion_status; sati_cb_device_get_request_by_ncq_tag( scsi_task, tag_index, @@ -141,7 +141,7 @@ SATI_STATUS sati_abort_task_set_translat ) { sati_translate_error(sequence, matching_command, log->error); - completion_status = SCI_FAILURE_IO_RESPONSE_VALID; + completion_status = SCI_IO_FAILURE_RESPONSE_VALID; if(sequence->state == SATI_SEQUENCE_STATE_READ_ERROR) { @@ -159,7 +159,7 @@ SATI_STATUS sati_abort_task_set_translat } else { - completion_status = SCI_FAILURE_IO_TERMINATED; + completion_status = SCI_IO_FAILURE_TERMINATED; } sati_cb_io_request_complete(matching_command, completion_status); Modified: stable/8/sys/dev/isci/scil/scic_sds_controller.c ============================================================================== --- head/sys/dev/isci/scil/scic_sds_controller.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scic_sds_controller.c Tue Feb 14 15:56:01 2012 (r231688) @@ -4165,7 +4165,7 @@ SCI_IO_STATUS scic_controller_start_io( U16 io_tag ) { - SCI_IO_STATUS status; + SCI_STATUS status; SCIC_SDS_CONTROLLER_T *this_controller; this_controller = (SCIC_SDS_CONTROLLER_T *)controller; @@ -4183,7 +4183,7 @@ SCI_IO_STATUS scic_controller_start_io( io_tag ); - return status; + return (SCI_IO_STATUS)status; } // --------------------------------------------------------------------------- @@ -4253,7 +4253,7 @@ SCI_TASK_STATUS scic_controller_start_ta U16 task_tag ) { - SCI_TASK_STATUS status = SCI_FAILURE_INVALID_STATE; + SCI_STATUS status = SCI_FAILURE_INVALID_STATE; SCIC_SDS_CONTROLLER_T *this_controller; this_controller = (SCIC_SDS_CONTROLLER_T *)controller; @@ -4282,7 +4282,7 @@ SCI_TASK_STATUS scic_controller_start_ta )); } - return status; + return (SCI_TASK_STATUS)status; } // --------------------------------------------------------------------------- Modified: stable/8/sys/dev/isci/scil/scic_sds_stp_request.c ============================================================================== --- head/sys/dev/isci/scil/scic_sds_stp_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scic_sds_stp_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -1124,9 +1124,6 @@ SCI_STATUS scic_sds_stp_request_pio_data if (status == SCI_SUCCESS) { this_sds_stp_request->type.pio.pio_transfer_bytes -= remaining_bytes_in_current_sgl; - - //update the current sgl, sgl_offset and save for future - current_sgl = scic_sds_stp_request_pio_get_next_sgl(this_sds_stp_request); sgl_offset = 0; } } Modified: stable/8/sys/dev/isci/scil/scif_sas_controller.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_controller.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_controller.c Tue Feb 14 15:56:01 2012 (r231688) @@ -87,6 +87,10 @@ SCI_STATUS scif_controller_construct( SCIF_SAS_LIBRARY_T * fw_library = (SCIF_SAS_LIBRARY_T*) library; SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + // Validate the user supplied parameters. + if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE)) + return SCI_FAILURE_INVALID_PARAMETER_VALUE; + SCIF_LOG_TRACE(( sci_base_object_get_logger(library), SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION, @@ -94,10 +98,6 @@ SCI_STATUS scif_controller_construct( library, controller )); - // Validate the user supplied parameters. - if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE)) - return SCI_FAILURE_INVALID_PARAMETER_VALUE; - // Construct the base controller. As part of constructing the base // controller we ask it to also manage the MDL iteration for the Core. sci_base_controller_construct( @@ -144,6 +144,10 @@ SCI_STATUS scif_controller_initialize( { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + // Validate the user supplied parameters. + if (controller == SCI_INVALID_HANDLE) + return SCI_FAILURE_INVALID_PARAMETER_VALUE; + SCIF_LOG_TRACE(( sci_base_object_get_logger(controller), SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION, @@ -151,10 +155,6 @@ SCI_STATUS scif_controller_initialize( controller )); - // Validate the user supplied parameters. - if (controller == SCI_INVALID_HANDLE) - return SCI_FAILURE_INVALID_PARAMETER_VALUE; - return fw_controller->state_handlers->initialize_handler( &fw_controller->parent ); @@ -187,6 +187,10 @@ SCI_STATUS scif_controller_start( { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + // Validate the user supplied parameters. + if (controller == SCI_INVALID_HANDLE) + return SCI_FAILURE_INVALID_PARAMETER_VALUE; + SCIF_LOG_TRACE(( sci_base_object_get_logger(controller), SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION, @@ -194,10 +198,6 @@ SCI_STATUS scif_controller_start( controller, timeout )); - // Validate the user supplied parameters. - if (controller == SCI_INVALID_HANDLE) - return SCI_FAILURE_INVALID_PARAMETER_VALUE; - return fw_controller->state_handlers-> start_handler(&fw_controller->parent, timeout); } @@ -211,6 +211,10 @@ SCI_STATUS scif_controller_stop( { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + // Validate the user supplied parameters. + if (controller == SCI_INVALID_HANDLE) + return SCI_FAILURE_INVALID_PARAMETER_VALUE; + SCIF_LOG_TRACE(( sci_base_object_get_logger(controller), SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_SHUTDOWN, @@ -218,10 +222,6 @@ SCI_STATUS scif_controller_stop( controller, timeout )); - // Validate the user supplied parameters. - if (controller == SCI_INVALID_HANDLE) - return SCI_FAILURE_INVALID_PARAMETER_VALUE; - return fw_controller->state_handlers-> stop_handler(&fw_controller->parent, timeout); @@ -235,6 +235,10 @@ SCI_STATUS scif_controller_reset( { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + // Validate the user supplied parameters. + if (controller == SCI_INVALID_HANDLE) + return SCI_FAILURE_INVALID_PARAMETER_VALUE; + SCIF_LOG_TRACE(( sci_base_object_get_logger(controller), SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_CONTROLLER_RESET, @@ -242,10 +246,6 @@ SCI_STATUS scif_controller_reset( controller )); - // Validate the user supplied parameters. - if (controller == SCI_INVALID_HANDLE) - return SCI_FAILURE_INVALID_PARAMETER_VALUE; - return fw_controller->state_handlers-> reset_handler(&fw_controller->parent); } @@ -271,6 +271,7 @@ SCI_IO_STATUS scif_controller_start_io( ) { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; + SCI_STATUS status; SCIF_LOG_TRACE(( sci_base_object_get_logger(controller), @@ -284,7 +285,7 @@ SCI_IO_STATUS scif_controller_start_io( || scif_sas_controller_sufficient_resource(controller) ) { - return fw_controller->state_handlers->start_io_handler( + status = fw_controller->state_handlers->start_io_handler( (SCI_BASE_CONTROLLER_T*) controller, (SCI_BASE_REMOTE_DEVICE_T*) remote_device, (SCI_BASE_REQUEST_T*) io_request, @@ -292,7 +293,9 @@ SCI_IO_STATUS scif_controller_start_io( ); } else - return SCI_FAILURE_INSUFFICIENT_RESOURCES; + status = SCI_FAILURE_INSUFFICIENT_RESOURCES; + + return (SCI_IO_STATUS)status; } // --------------------------------------------------------------------------- @@ -305,25 +308,26 @@ SCI_TASK_STATUS scif_controller_start_ta ) { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; - - SCIF_LOG_TRACE(( - sci_base_object_get_logger(controller), - SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT, - "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n", - controller, remote_device, task_request, io_tag - )); + SCI_STATUS status; // Validate the user supplied parameters. if ( (controller == SCI_INVALID_HANDLE) || (remote_device == SCI_INVALID_HANDLE) || (task_request == SCI_INVALID_HANDLE) ) { - return SCI_FAILURE_INVALID_PARAMETER_VALUE; + return SCI_TASK_FAILURE_INVALID_PARAMETER_VALUE; } + SCIF_LOG_TRACE(( + sci_base_object_get_logger(controller), + SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT, + "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n", + controller, remote_device, task_request, io_tag + )); + if (scif_sas_controller_sufficient_resource(controller)) { - return fw_controller->state_handlers->start_task_handler( + status = fw_controller->state_handlers->start_task_handler( (SCI_BASE_CONTROLLER_T*) controller, (SCI_BASE_REMOTE_DEVICE_T*) remote_device, (SCI_BASE_REQUEST_T*) task_request, @@ -331,7 +335,9 @@ SCI_TASK_STATUS scif_controller_start_ta ); } else - return SCI_FAILURE_INSUFFICIENT_RESOURCES; + status = SCI_FAILURE_INSUFFICIENT_RESOURCES; + + return (SCI_TASK_STATUS)status; } // --------------------------------------------------------------------------- @@ -368,13 +374,6 @@ SCI_STATUS scif_controller_complete_task { SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller; - SCIF_LOG_TRACE(( - sci_base_object_get_logger(controller), - SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT, - "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n", - controller, remote_device, task_request - )); - // Validate the user supplied parameters. if ( (controller == SCI_INVALID_HANDLE) || (remote_device == SCI_INVALID_HANDLE) @@ -383,6 +382,13 @@ SCI_STATUS scif_controller_complete_task return SCI_FAILURE_INVALID_PARAMETER_VALUE; } + SCIF_LOG_TRACE(( + sci_base_object_get_logger(controller), + SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT, + "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n", + controller, remote_device, task_request + )); + return fw_controller->state_handlers->complete_task_handler( (SCI_BASE_CONTROLLER_T*) controller, (SCI_BASE_REMOTE_DEVICE_T*) remote_device, Modified: stable/8/sys/dev/isci/scil/scif_sas_controller_state_handlers.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_controller_state_handlers.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_controller_state_handlers.c Tue Feb 14 15:56:01 2012 (r231688) @@ -586,7 +586,7 @@ SCI_STATUS scif_sas_controller_ready_sta if (status == SCI_SUCCESS) { // Ask the core to start processing for this IO request. - status = scic_controller_start_io( + status = (SCI_STATUS)scic_controller_start_io( fw_controller->core_object, fw_device->core_object, fw_io->parent.core_object, @@ -903,7 +903,7 @@ SCI_STATUS scif_sas_controller_ready_sta } // Ask the core to start processing for this task request. - status = scic_controller_start_task( + status = (SCI_STATUS)scic_controller_start_task( fw_controller->core_object, fw_device->core_object, fw_task->parent.core_object, @@ -1072,7 +1072,7 @@ SCI_STATUS scif_sas_controller_common_st if (status == SCI_SUCCESS) { // Ask the core to start processing for this IO request. - status = scic_controller_start_io( + status = (SCI_STATUS)scic_controller_start_io( fw_controller->core_object, fw_device->core_object, fw_io->parent.core_object, @@ -1683,7 +1683,7 @@ SCI_STATUS scif_sas_controller_failed_st &((SCIF_SAS_CONTROLLER_T *)controller)->parent.state_machine) )); - return SCI_IO_FAILURE; + return SCI_FAILURE; } #define scif_sas_controller_stopping_complete_io_handler \ Modified: stable/8/sys/dev/isci/scil/scif_sas_domain.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_domain.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_domain.c Tue Feb 14 15:56:01 2012 (r231688) @@ -142,8 +142,8 @@ SCI_PORT_HANDLE_T scif_domain_get_scic_p { SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*) domain; - if ( (fw_domain != NULL) && (fw_domain->core_object != SCI_INVALID_HANDLE) ) - return fw_domain->core_object; + if ( (fw_domain == NULL) || (fw_domain->core_object == SCI_INVALID_HANDLE) ) + return SCI_INVALID_HANDLE; SCIF_LOG_WARNING(( sci_base_object_get_logger(fw_domain), @@ -152,7 +152,7 @@ SCI_PORT_HANDLE_T scif_domain_get_scic_p fw_domain )); - return SCI_INVALID_HANDLE; + return fw_domain->core_object; } // --------------------------------------------------------------------------- Modified: stable/8/sys/dev/isci/scil/scif_sas_io_request.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_io_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_io_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -811,7 +811,7 @@ SCI_STATUS scif_sas_io_request_continue( ); //start the new constructed IO. - return scif_controller_start_io( + return (SCI_STATUS)scif_controller_start_io( (SCI_CONTROLLER_HANDLE_T) fw_controller, (SCI_REMOTE_DEVICE_HANDLE_T) fw_device, (SCI_IO_REQUEST_HANDLE_T) fw_request, Modified: stable/8/sys/dev/isci/scil/scif_sas_remote_device.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_remote_device.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_remote_device.c Tue Feb 14 15:56:01 2012 (r231688) @@ -362,8 +362,8 @@ SCI_REMOTE_DEVICE_HANDLE_T scif_remote_d SCIF_SAS_REMOTE_DEVICE_T * fw_device = (SCIF_SAS_REMOTE_DEVICE_T*) scif_remote_device; - if ( (fw_device != NULL) && (fw_device->core_object != SCI_INVALID_HANDLE) ) - return fw_device->core_object; + if ( (fw_device == NULL) || (fw_device->core_object == SCI_INVALID_HANDLE) ) + return SCI_INVALID_HANDLE; SCIF_LOG_WARNING(( sci_base_object_get_logger(fw_device), @@ -372,7 +372,7 @@ SCI_REMOTE_DEVICE_HANDLE_T scif_remote_d fw_device )); - return SCI_INVALID_HANDLE; + return fw_device->core_object; } // --------------------------------------------------------------------------- Modified: stable/8/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c Tue Feb 14 15:56:01 2012 (r231688) @@ -255,7 +255,7 @@ void scif_sas_remote_device_ready_ncq_er } } - status = scif_controller_start_task( + scif_controller_start_task( fw_controller, fw_device, fw_request, Modified: stable/8/sys/dev/isci/scil/scif_sas_smp_io_request.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_smp_io_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_smp_io_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -580,7 +580,7 @@ SCI_STATUS scif_sas_smp_external_request default: //unsupported case, TBD - break; + return SCI_FAILURE; } //end of switch //set the retry count to new built smp request. Modified: stable/8/sys/dev/isci/scil/scif_sas_smp_remote_device.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_smp_remote_device.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_smp_remote_device.c Tue Feb 14 15:56:01 2012 (r231688) @@ -748,7 +748,6 @@ SCI_STATUS scif_sas_smp_remote_device_de { SCIF_SAS_DOMAIN_T * fw_domain; SCI_SAS_ADDRESS_T attached_device_address; - SCIF_SAS_REMOTE_DEVICE_T * attached_remote_device; SMP_RESPONSE_DISCOVER_T * discover_response = &smp_response->response.discover; @@ -782,13 +781,11 @@ SCI_STATUS scif_sas_smp_remote_device_de fw_domain = fw_device->domain; attached_device_address = discover_response->attached_sas_address; - attached_remote_device = (SCIF_SAS_REMOTE_DEVICE_T *) - scif_domain_get_device_by_sas_address( - fw_domain, &attached_device_address - ); - // the device should have already existed in the domian. - ASSERT (attached_remote_device != SCI_INVALID_HANDLE); + ASSERT(scif_domain_get_device_by_sas_address( + fw_domain, + &attached_device_address + ) != SCI_INVALID_HANDLE); return SCI_SUCCESS; } else @@ -1774,6 +1771,8 @@ SCIF_SAS_SMP_PHY_T * scif_sas_smp_remote SCI_FAST_LIST_ELEMENT_T * element = smp_remote_device->smp_phy_list.list_head; SCIF_SAS_SMP_PHY_T * curr_smp_phy = NULL; + ASSERT(phy_identifier < smp_remote_device->smp_phy_list.number_of_phys); + while (element != NULL) { curr_smp_phy = (SCIF_SAS_SMP_PHY_T*) sci_fast_list_get_object(element); @@ -1854,7 +1853,7 @@ void scif_sas_smp_remote_device_terminat )); scif_sas_smp_remote_device_decode_smp_response( - fw_device, fw_request, NULL, SCI_FAILURE_RETRY_REQUIRED + fw_device, fw_request, NULL, SCI_IO_FAILURE_RETRY_REQUIRED ); } @@ -1934,11 +1933,8 @@ SCI_STATUS scif_sas_smp_remote_device_sa scif_domain_get_device_by_sas_address( fw_device->domain, &discover_response->attached_sas_address); - if (smp_phy != NULL) - { - scif_sas_smp_phy_save_information( - smp_phy, attached_device, discover_response); - } + scif_sas_smp_phy_save_information( + smp_phy, attached_device, discover_response); //handle the special case of smp phys between expanders. if ( discover_response->protocols.u.bits.attached_smp_target ) @@ -2372,11 +2368,7 @@ void scif_sas_smp_remote_device_clean_ro SCIF_SAS_REMOTE_DEVICE_T * fw_device ) { - SCIF_SAS_SMP_PHY_T * smp_phy_being_config = - scif_sas_smp_remote_device_find_smp_phy_by_id( - fw_device->protocol_device.smp_device.current_activity_phy_index, - &(fw_device->protocol_device.smp_device) - ); + SCIF_SAS_SMP_PHY_T * smp_phy_being_config; SCIF_LOG_TRACE(( sci_base_object_get_logger(fw_device), Modified: stable/8/sys/dev/isci/scil/scif_sas_stp_io_request.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_stp_io_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_stp_io_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -396,7 +396,7 @@ SCI_STATUS scif_sas_stp_io_request_const fw_io->parent.protocol_complete_handler = scif_sas_stp_core_cb_io_request_complete_handler; // Done with translation - sci_status = SATI_SUCCESS; + sci_status = SCI_SUCCESS; } else if (sati_status == SATI_COMPLETE) sci_status = SCI_SUCCESS_IO_COMPLETE_BEFORE_START; Modified: stable/8/sys/dev/isci/scil/scif_sas_stp_task_request.c ============================================================================== --- head/sys/dev/isci/scil/scif_sas_stp_task_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/8/sys/dev/isci/scil/scif_sas_stp_task_request.c Tue Feb 14 15:56:01 2012 (r231688) @@ -254,7 +254,7 @@ void scif_sas_stp_task_request_abort_tas fw_domain->controller, fw_device, pending_request, - SCI_FAILURE_IO_TERMINATED + SCI_IO_FAILURE_TERMINATED ); } //otherwise, the abort succeeded. Since the waiting flag is cleared, Modified: stable/8/sys/i386/conf/GENERIC ============================================================================== --- stable/8/sys/i386/conf/GENERIC Tue Feb 14 15:28:19 2012 (r231687) +++ stable/8/sys/i386/conf/GENERIC Tue Feb 14 15:56:01 2012 (r231688) @@ -129,6 +129,7 @@ device bt # Buslogic/Mylex MultiMaster *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202141556.q1EFu2Q9006483>