Date: Fri, 17 Feb 2012 06:58:40 +0000 (UTC) From: Sean Bruno <sbruno@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r231861 - in stable/7: . 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: <201202170658.q1H6wegj054680@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sbruno Date: Fri Feb 17 06:58:40 2012 New Revision: 231861 URL: http://svn.freebsd.org/changeset/base/231861 Log: MFC isci(4) SAS driver r230843, 231134, 231136, 231296, 231615, 231693, 231860 Obtained from: Intel (Jim Harris jimharris@) Added: stable/7/share/man/man4/isci.4 (contents, props changed) - copied, changed from r230843, head/share/man/man4/isci.4 stable/7/sys/dev/isci/ - copied from r230843, head/sys/dev/isci/ stable/7/sys/modules/isci/ - copied from r230843, head/sys/modules/isci/ Modified: stable/7/MAINTAINERS (contents, props changed) stable/7/share/man/man4/Makefile stable/7/sys/amd64/conf/GENERIC stable/7/sys/amd64/conf/NOTES stable/7/sys/conf/files.amd64 stable/7/sys/conf/files.i386 stable/7/sys/conf/options.amd64 stable/7/sys/conf/options.i386 stable/7/sys/dev/isci/isci.h (contents, props changed) stable/7/sys/dev/isci/isci_controller.c (contents, props changed) stable/7/sys/dev/isci/isci_io_request.c (contents, props changed) stable/7/sys/dev/isci/isci_remote_device.c (contents, props changed) stable/7/sys/dev/isci/scil/sati_abort_task_set.c (contents, props changed) stable/7/sys/dev/isci/scil/scic_sds_controller.c (contents, props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_request.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_controller.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_controller_state_handlers.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_domain.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_io_request.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_io_request.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_remote_device.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_io_request.c (contents, props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_task_request.c (contents, props changed) stable/7/sys/i386/conf/GENERIC stable/7/sys/i386/conf/NOTES stable/7/sys/modules/Makefile stable/7/sys/modules/isci/Makefile (contents, props changed) Directory Properties: stable/7/ (props changed) stable/7/share/man/man4/ (props changed) stable/7/sys/ (props changed) stable/7/sys/dev/isci/README (props changed) stable/7/sys/dev/isci/environment.h (props changed) stable/7/sys/dev/isci/isci.c (props changed) stable/7/sys/dev/isci/isci_domain.c (props changed) stable/7/sys/dev/isci/isci_interrupt.c (props changed) stable/7/sys/dev/isci/isci_logger.c (props changed) stable/7/sys/dev/isci/isci_oem_parameters.c (props changed) stable/7/sys/dev/isci/isci_sysctl.c (props changed) stable/7/sys/dev/isci/isci_task_request.c (props changed) stable/7/sys/dev/isci/isci_timer.c (props changed) stable/7/sys/dev/isci/sci_environment.h (props changed) stable/7/sys/dev/isci/scil/intel_ata.h (props changed) stable/7/sys/dev/isci/scil/intel_pci.h (props changed) stable/7/sys/dev/isci/scil/intel_sas.h (props changed) stable/7/sys/dev/isci/scil/intel_sat.h (props changed) stable/7/sys/dev/isci/scil/intel_sata.h (props changed) stable/7/sys/dev/isci/scil/intel_scsi.h (props changed) stable/7/sys/dev/isci/scil/sati.c (props changed) stable/7/sys/dev/isci/scil/sati.h (props changed) stable/7/sys/dev/isci/scil/sati_abort_task_set.h (props changed) stable/7/sys/dev/isci/scil/sati_atapi.c (props changed) stable/7/sys/dev/isci/scil/sati_atapi.h (props changed) stable/7/sys/dev/isci/scil/sati_callbacks.h (props changed) stable/7/sys/dev/isci/scil/sati_design.h (props changed) stable/7/sys/dev/isci/scil/sati_device.c (props changed) stable/7/sys/dev/isci/scil/sati_device.h (props changed) stable/7/sys/dev/isci/scil/sati_inquiry.c (props changed) stable/7/sys/dev/isci/scil/sati_inquiry.h (props changed) stable/7/sys/dev/isci/scil/sati_log_sense.c (props changed) stable/7/sys/dev/isci/scil/sati_log_sense.h (props changed) stable/7/sys/dev/isci/scil/sati_lun_reset.c (props changed) stable/7/sys/dev/isci/scil/sati_lun_reset.h (props changed) stable/7/sys/dev/isci/scil/sati_mode_pages.c (props changed) stable/7/sys/dev/isci/scil/sati_mode_pages.h (props changed) stable/7/sys/dev/isci/scil/sati_mode_select.c (props changed) stable/7/sys/dev/isci/scil/sati_mode_select.h (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense.c (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense.h (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense_10.c (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense_10.h (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense_6.c (props changed) stable/7/sys/dev/isci/scil/sati_mode_sense_6.h (props changed) stable/7/sys/dev/isci/scil/sati_move.c (props changed) stable/7/sys/dev/isci/scil/sati_move.h (props changed) stable/7/sys/dev/isci/scil/sati_passthrough.c (props changed) stable/7/sys/dev/isci/scil/sati_passthrough.h (props changed) stable/7/sys/dev/isci/scil/sati_read.c (props changed) stable/7/sys/dev/isci/scil/sati_read.h (props changed) stable/7/sys/dev/isci/scil/sati_read_buffer.c (props changed) stable/7/sys/dev/isci/scil/sati_read_buffer.h (props changed) stable/7/sys/dev/isci/scil/sati_read_capacity.c (props changed) stable/7/sys/dev/isci/scil/sati_read_capacity.h (props changed) stable/7/sys/dev/isci/scil/sati_reassign_blocks.c (props changed) stable/7/sys/dev/isci/scil/sati_reassign_blocks.h (props changed) stable/7/sys/dev/isci/scil/sati_report_luns.c (props changed) stable/7/sys/dev/isci/scil/sati_report_luns.h (props changed) stable/7/sys/dev/isci/scil/sati_request_sense.c (props changed) stable/7/sys/dev/isci/scil/sati_request_sense.h (props changed) stable/7/sys/dev/isci/scil/sati_start_stop_unit.c (props changed) stable/7/sys/dev/isci/scil/sati_start_stop_unit.h (props changed) stable/7/sys/dev/isci/scil/sati_synchronize_cache.c (props changed) stable/7/sys/dev/isci/scil/sati_synchronize_cache.h (props changed) stable/7/sys/dev/isci/scil/sati_test_unit_ready.c (props changed) stable/7/sys/dev/isci/scil/sati_test_unit_ready.h (props changed) stable/7/sys/dev/isci/scil/sati_translator_sequence.h (props changed) stable/7/sys/dev/isci/scil/sati_types.h (props changed) stable/7/sys/dev/isci/scil/sati_unmap.c (props changed) stable/7/sys/dev/isci/scil/sati_unmap.h (props changed) stable/7/sys/dev/isci/scil/sati_util.c (props changed) stable/7/sys/dev/isci/scil/sati_util.h (props changed) stable/7/sys/dev/isci/scil/sati_verify.c (props changed) stable/7/sys/dev/isci/scil/sati_verify.h (props changed) stable/7/sys/dev/isci/scil/sati_write.c (props changed) stable/7/sys/dev/isci/scil/sati_write.h (props changed) stable/7/sys/dev/isci/scil/sati_write_and_verify.c (props changed) stable/7/sys/dev/isci/scil/sati_write_and_verify.h (props changed) stable/7/sys/dev/isci/scil/sati_write_buffer.c (props changed) stable/7/sys/dev/isci/scil/sati_write_buffer.h (props changed) stable/7/sys/dev/isci/scil/sati_write_long.c (props changed) stable/7/sys/dev/isci/scil/sati_write_long.h (props changed) stable/7/sys/dev/isci/scil/sci_abstract_list.c (props changed) stable/7/sys/dev/isci/scil/sci_abstract_list.h (props changed) stable/7/sys/dev/isci/scil/sci_base_controller.c (props changed) stable/7/sys/dev/isci/scil/sci_base_controller.h (props changed) stable/7/sys/dev/isci/scil/sci_base_domain.c (props changed) stable/7/sys/dev/isci/scil/sci_base_domain.h (props changed) stable/7/sys/dev/isci/scil/sci_base_iterator.c (props changed) stable/7/sys/dev/isci/scil/sci_base_iterator.h (props changed) stable/7/sys/dev/isci/scil/sci_base_library.c (props changed) stable/7/sys/dev/isci/scil/sci_base_library.h (props changed) stable/7/sys/dev/isci/scil/sci_base_logger.c (props changed) stable/7/sys/dev/isci/scil/sci_base_logger.h (props changed) stable/7/sys/dev/isci/scil/sci_base_memory_descriptor_list.c (props changed) stable/7/sys/dev/isci/scil/sci_base_memory_descriptor_list.h (props changed) stable/7/sys/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c (props changed) stable/7/sys/dev/isci/scil/sci_base_object.c (props changed) stable/7/sys/dev/isci/scil/sci_base_object.h (props changed) stable/7/sys/dev/isci/scil/sci_base_observer.c (props changed) stable/7/sys/dev/isci/scil/sci_base_observer.h (props changed) stable/7/sys/dev/isci/scil/sci_base_phy.c (props changed) stable/7/sys/dev/isci/scil/sci_base_phy.h (props changed) stable/7/sys/dev/isci/scil/sci_base_port.c (props changed) stable/7/sys/dev/isci/scil/sci_base_port.h (props changed) stable/7/sys/dev/isci/scil/sci_base_remote_device.c (props changed) stable/7/sys/dev/isci/scil/sci_base_remote_device.h (props changed) stable/7/sys/dev/isci/scil/sci_base_request.c (props changed) stable/7/sys/dev/isci/scil/sci_base_request.h (props changed) stable/7/sys/dev/isci/scil/sci_base_state.h (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine.c (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine.h (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine_logger.c (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine_logger.h (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine_observer.c (props changed) stable/7/sys/dev/isci/scil/sci_base_state_machine_observer.h (props changed) stable/7/sys/dev/isci/scil/sci_base_subject.c (props changed) stable/7/sys/dev/isci/scil/sci_base_subject.h (props changed) stable/7/sys/dev/isci/scil/sci_controller.h (props changed) stable/7/sys/dev/isci/scil/sci_controller_constants.h (props changed) stable/7/sys/dev/isci/scil/sci_fast_list.h (props changed) stable/7/sys/dev/isci/scil/sci_iterator.h (props changed) stable/7/sys/dev/isci/scil/sci_library.h (props changed) stable/7/sys/dev/isci/scil/sci_logger.h (props changed) stable/7/sys/dev/isci/scil/sci_memory_descriptor_list.h (props changed) stable/7/sys/dev/isci/scil/sci_memory_descriptor_list_decorator.h (props changed) stable/7/sys/dev/isci/scil/sci_object.h (props changed) stable/7/sys/dev/isci/scil/sci_overview.h (props changed) stable/7/sys/dev/isci/scil/sci_pool.h (props changed) stable/7/sys/dev/isci/scil/sci_simple_list.h (props changed) stable/7/sys/dev/isci/scil/sci_status.h (props changed) stable/7/sys/dev/isci/scil/sci_types.h (props changed) stable/7/sys/dev/isci/scil/sci_util.c (props changed) stable/7/sys/dev/isci/scil/sci_util.h (props changed) stable/7/sys/dev/isci/scil/scic_config_parameters.h (props changed) stable/7/sys/dev/isci/scil/scic_controller.h (props changed) stable/7/sys/dev/isci/scil/scic_io_request.h (props changed) stable/7/sys/dev/isci/scil/scic_library.h (props changed) stable/7/sys/dev/isci/scil/scic_logger.h (props changed) stable/7/sys/dev/isci/scil/scic_overview.h (props changed) stable/7/sys/dev/isci/scil/scic_phy.h (props changed) stable/7/sys/dev/isci/scil/scic_port.h (props changed) stable/7/sys/dev/isci/scil/scic_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_controller.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_controller_registers.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_library.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_library.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_logger.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_pci.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_pci.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_phy.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_phy.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_phy_registers.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_port.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_port.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_port_configuration_agent.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_port_configuration_agent.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_port_registers.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_device.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_node_context.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_node_context.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_node_table.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_remote_node_table.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_request.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_request.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_sgpio.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_smp_remote_device.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_smp_request.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_smp_request.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_ssp_request.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_packet_request.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_packet_request.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_pio_request.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_remote_device.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_stp_request.h (props changed) stable/7/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.c (props changed) stable/7/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.h (props changed) stable/7/sys/dev/isci/scil/scic_sgpio.h (props changed) stable/7/sys/dev/isci/scil/scic_task_request.h (props changed) stable/7/sys/dev/isci/scil/scic_user_callback.h (props changed) stable/7/sys/dev/isci/scil/scif_config_parameters.h (props changed) stable/7/sys/dev/isci/scil/scif_controller.h (props changed) stable/7/sys/dev/isci/scil/scif_domain.h (props changed) stable/7/sys/dev/isci/scil/scif_io_request.h (props changed) stable/7/sys/dev/isci/scil/scif_library.h (props changed) stable/7/sys/dev/isci/scil/scif_logger.h (props changed) stable/7/sys/dev/isci/scil/scif_overview.h (props changed) stable/7/sys/dev/isci/scil/scif_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_constants.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_controller.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_controller_states.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_design.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_domain.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_domain_state_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_domain_states.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_high_priority_request_queue.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_high_priority_request_queue.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_internal_io_request.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_internal_io_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_io_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_io_request_state_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_io_request_states.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_library.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_library.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_logger.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_starting_substates.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_remote_device_states.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_request.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_sati_binding.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_io_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_phy.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_phy.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_smp_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_io_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_remote_device.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_remote_device.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_stp_task_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_task_request.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_task_request.h (props changed) stable/7/sys/dev/isci/scil/scif_sas_task_request_state_handlers.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_task_request_states.c (props changed) stable/7/sys/dev/isci/scil/scif_sas_timer.c (props changed) stable/7/sys/dev/isci/scil/scif_task_request.h (props changed) stable/7/sys/dev/isci/scil/scif_user_callback.h (props changed) stable/7/sys/dev/isci/scil/scu_bios_definitions.h (props changed) stable/7/sys/dev/isci/scil/scu_completion_codes.h (props changed) stable/7/sys/dev/isci/scil/scu_constants.h (props changed) stable/7/sys/dev/isci/scil/scu_event_codes.h (props changed) stable/7/sys/dev/isci/scil/scu_registers.h (props changed) stable/7/sys/dev/isci/scil/scu_remote_node_context.h (props changed) stable/7/sys/dev/isci/scil/scu_task_context.h (props changed) stable/7/sys/dev/isci/scil/scu_unsolicited_frame.h (props changed) stable/7/sys/dev/isci/scil/scu_viit_data.h (props changed) stable/7/sys/dev/isci/types.h (props changed) Modified: stable/7/MAINTAINERS ============================================================================== --- stable/7/MAINTAINERS Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/MAINTAINERS Fri Feb 17 06:58:40 2012 (r231861) @@ -129,6 +129,7 @@ gnu/usr.bin/send-pr bugmaster Pre-commit BSD.{local,x11*}.dist portmgr Pre-commit review requested, since these files interface with ports. usb core Please contact core@ before any major changes 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/7/share/man/man4/Makefile ============================================================================== --- stable/7/share/man/man4/Makefile Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/share/man/man4/Makefile Fri Feb 17 06:58:40 2012 (r231861) @@ -142,6 +142,7 @@ MAN= aac.4 \ ips.4 \ ipsec.4 \ ipw.4 \ + isci.4 \ iscsi_initiator.4 \ isp.4 \ ispfw.4 \ Copied and modified: stable/7/share/man/man4/isci.4 (from r230843, head/share/man/man4/isci.4) ============================================================================== --- head/share/man/man4/isci.4 Tue Jan 31 19:38:18 2012 (r230843, copy source) +++ stable/7/share/man/man4/isci.4 Fri Feb 17 06:58:40 2012 (r231861) @@ -57,7 +57,7 @@ The .Nm driver provides support for Intel C600 .Tn SAS -controller. +controllers. .Sh CONFIGURATION To force legacy interrupts for all .Nm @@ -77,9 +77,11 @@ hw.isci.debug_level 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 +The hardware layer in the +.Nm +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 @@ -91,12 +93,12 @@ to the kernel configuration file. .Xr da 4 , .Xr pci 4 , .Xr sa 4 , -.Xr scsi 4 . +.Xr scsi 4 .Sh HISTORY The .Nm driver first appeared in -.Fx 10.0 . +.Fx 8.3 and 9.1 . .Sh AUTHORS .An -nosplit The Modified: stable/7/sys/amd64/conf/GENERIC ============================================================================== --- stable/7/sys/amd64/conf/GENERIC Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/amd64/conf/GENERIC Fri Feb 17 06:58:40 2012 (r231861) @@ -110,6 +110,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 Modified: stable/7/sys/amd64/conf/NOTES ============================================================================== --- stable/7/sys/amd64/conf/NOTES Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/amd64/conf/NOTES Fri Feb 17 06:58:40 2012 (r231861) @@ -391,6 +391,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/7/sys/conf/files.amd64 ============================================================================== --- stable/7/sys/conf/files.amd64 Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/conf/files.amd64 Fri Feb 17 06:58:40 2012 (r231861) @@ -207,6 +207,115 @@ dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_amd64.c optional uart 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/7/sys/conf/files.i386 ============================================================================== --- stable/7/sys/conf/files.i386 Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/conf/files.i386 Fri Feb 17 06:58:40 2012 (r231861) @@ -235,6 +235,115 @@ dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_i386.c optional uart dev/acpica/acpi_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/7/sys/conf/options.amd64 ============================================================================== --- stable/7/sys/conf/options.amd64 Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/conf/options.amd64 Fri Feb 17 06:58:40 2012 (r231861) @@ -68,3 +68,6 @@ KDTRACE_FRAME opt_kdtrace.h # BPF just-in-time compiler BPF_JITTER opt_bpf.h + +# options for the Intel C600 SAS driver (isci) +ISCI_LOGGING opt_isci.h Modified: stable/7/sys/conf/options.i386 ============================================================================== --- stable/7/sys/conf/options.i386 Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/conf/options.i386 Fri Feb 17 06:58:40 2012 (r231861) @@ -149,3 +149,6 @@ STOP_NMI opt_cpu.h # BPF just-in-time compiler BPF_JITTER opt_bpf.h + +# options for the Intel C600 SAS driver (isci) +ISCI_LOGGING opt_isci.h Modified: stable/7/sys/dev/isci/isci.h ============================================================================== --- head/sys/dev/isci/isci.h Tue Jan 31 19:38:18 2012 (r230843) +++ stable/7/sys/dev/isci/isci.h Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/sys/dev/isci/isci_controller.c ============================================================================== --- head/sys/dev/isci/isci_controller.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/7/sys/dev/isci/isci_controller.c Fri Feb 17 06:58:40 2012 (r231861) @@ -549,7 +549,7 @@ void isci_action(struct cam_sim *sim, un cpi->hba_eng_cnt = 0; cpi->max_target = SCI_MAX_REMOTE_DEVICES - 1; cpi->max_lun = ISCI_MAX_LUN; -#if __FreeBSD_version >= 704100 +#if __FreeBSD_version >= 800102 cpi->maxio = isci_io_request_get_max_io_size(); #endif cpi->unit_number = cam_sim_unit(sim); Modified: stable/7/sys/dev/isci/isci_io_request.c ============================================================================== --- head/sys/dev/isci/isci_io_request.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/7/sys/dev/isci/isci_io_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/sys/dev/isci/isci_remote_device.c ============================================================================== --- head/sys/dev/isci/isci_remote_device.c Tue Jan 31 19:38:18 2012 (r230843) +++ stable/7/sys/dev/isci/isci_remote_device.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/sati_abort_task_set.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scic_sds_controller.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scic_sds_stp_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_controller.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_controller_state_handlers.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_domain.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_io_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_remote_device.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_smp_io_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_smp_remote_device.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_stp_io_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/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/7/sys/dev/isci/scil/scif_sas_stp_task_request.c Fri Feb 17 06:58:40 2012 (r231861) @@ -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/7/sys/i386/conf/GENERIC ============================================================================== --- stable/7/sys/i386/conf/GENERIC Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/i386/conf/GENERIC Fri Feb 17 06:58:40 2012 (r231861) @@ -117,6 +117,7 @@ device bt # Buslogic/Mylex MultiMaster device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 +device isci # Intel C600 SAS controller # SCSI peripherals device scbus # SCSI bus (required for SCSI) Modified: stable/7/sys/i386/conf/NOTES ============================================================================== --- stable/7/sys/i386/conf/NOTES Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/i386/conf/NOTES Fri Feb 17 06:58:40 2012 (r231861) @@ -746,6 +746,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/7/sys/modules/Makefile ============================================================================== --- stable/7/sys/modules/Makefile Fri Feb 17 06:47:16 2012 (r231860) +++ stable/7/sys/modules/Makefile Fri Feb 17 06:58:40 2012 (r231861) @@ -142,6 +142,7 @@ SUBDIR= ${_3dfx} \ ${_ips} \ ${_ipw} \ ${_ipwfw} \ + ${_isci} \ iscsi \ isp \ ispfw \ @@ -497,6 +498,7 @@ _ipmi= ipmi _ips= ips _ipw= ipw _ipwfw= ipwfw +_isci= isci _iwi= iwi _iwifw= iwifw _ixgb= ixgb @@ -565,6 +567,7 @@ _ipmi= ipmi _ips= ips _ipw= ipw _ipwfw= ipwfw +_isci= isci _iwi= iwi _iwifw= iwifw _ixgb= ixgb Modified: stable/7/sys/modules/isci/Makefile ============================================================================== --- head/sys/modules/isci/Makefile Tue Jan 31 19:38:18 2012 (r230843) +++ stable/7/sys/modules/isci/Makefile Fri Feb 17 06:58:40 2012 (r231861) @@ -87,6 +87,4 @@ SRCS += \ SRCS += opt_scsi.h opt_cam.h opt_isci.h SRCS += device_if.h bus_if.h pci_if.h -CC = gcc - .include <bsd.kmod.mk>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202170658.q1H6wegj054680>