summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2012-01-06 20:44:57 +0000
committerjimharris <jimharris@FreeBSD.org>2012-01-06 20:44:57 +0000
commit6c9766a5d435593398ebbc3799f6e2e2e7981808 (patch)
tree335ef7d7c5667fabcda2ab78ebf4b1076a90ea04
parent985bbcc63e6322ee9056c3d1aa21c11325236600 (diff)
downloadFreeBSD-src-6c9766a5d435593398ebbc3799f6e2e2e7981808.zip
FreeBSD-src-6c9766a5d435593398ebbc3799f6e2e2e7981808.tar.gz
Modify GENERIC, files and options for isci (Intel C600 SAS controller) driver.
Also add brief README and cleanup Makefile. Reviewed by: scottl sbruno
-rw-r--r--sys/amd64/conf/GENERIC1
-rw-r--r--sys/conf/NOTES9
-rw-r--r--sys/conf/files.amd64109
-rw-r--r--sys/conf/files.i386109
-rw-r--r--sys/conf/options.amd643
-rw-r--r--sys/conf/options.i3863
-rw-r--r--sys/dev/isci/README14
-rw-r--r--sys/i386/conf/GENERIC1
-rw-r--r--sys/modules/Makefile3
-rwxr-xr-xsys/modules/isci/Makefile5
10 files changed, 254 insertions, 3 deletions
diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index fabdd73..103f88b 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -121,6 +121,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
# ATA/SCSI peripherals
device scbus # SCSI bus (required for ATA/SCSI)
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index 1a4c78d..d4eb175 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -1686,6 +1686,15 @@ options MFI_DEBUG
device twe # 3ware ATA RAID
#
+# Intel C600 (Patsburg) integrated SAS controller
+#
+device isci
+
+# Enables logging in isci driver. Log level (default: 0, max: 3) controlled
+# by hw.isci.debug_level device hint.
+options ISCI_LOGGING
+
+#
# Serial ATA host controllers:
#
# ahci: Advanced Host Controller Interface (AHCI) compatible
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index 82a5c14..37c913c 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -261,6 +261,115 @@ dev/tpm/tpm_acpi.c optional tpm acpi
dev/tpm/tpm_isa.c optional tpm isa
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/kern_clocksource.c standard
diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
index a19b93c..4fa6a40 100644
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -239,6 +239,115 @@ dev/uart/uart_cpu_i386.c optional uart
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/acpi_machdep.c optional acpi
acpi_wakecode.o optional acpi \
dependency "$S/i386/acpica/acpi_wakecode.S assym.s" \
diff --git a/sys/conf/options.amd64 b/sys/conf/options.amd64
index 87960d0..6a842d0 100644
--- a/sys/conf/options.amd64
+++ b/sys/conf/options.amd64
@@ -65,3 +65,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
diff --git a/sys/conf/options.i386 b/sys/conf/options.i386
index dd888b1..36f2b52 100644
--- a/sys/conf/options.i386
+++ b/sys/conf/options.i386
@@ -119,3 +119,6 @@ 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
diff --git a/sys/dev/isci/README b/sys/dev/isci/README
new file mode 100644
index 0000000..1261d83
--- /dev/null
+++ b/sys/dev/isci/README
@@ -0,0 +1,14 @@
+FreeBSD Driver for Intel(R) C600 SAS Controller
+===============================================
+
+This driver has been developed for use with FreeBSD, version 9.0 and later.
+
+This driver uses an OS-agnostic abstraction layer library named SCIL that is
+published by Intel specifically for the C600 SAS controller. The SAS
+controller has no firmware, so the driver is extensive and using SCIL
+minimizes the development and maintenance cost of the driver.
+
+The FreeBSD implementation files are in the isci directory, and SCIL files
+are in the isci/scil subdirectory. As Intel publishes new versions of SCIL
+(to add features or fix bugs), the isci/scil subdirectory will be updated
+appropriately.
diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC
index c9b6a18..3c851fa 100644
--- a/sys/i386/conf/GENERIC
+++ b/sys/i386/conf/GENERIC
@@ -128,6 +128,7 @@ device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
+device isci # Intel C600 SAS controller
# ATA/SCSI peripherals
device scbus # SCSI bus (required for ATA/SCSI)
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index f41ba06..b65c5eb 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -143,6 +143,7 @@ SUBDIR= ${_3dfx} \
${_ips} \
${_ipw} \
${_ipwfw} \
+ ${_isci} \
iscsi \
isp \
ispfw \
@@ -516,6 +517,7 @@ _ipmi= ipmi
_ips= ips
_ipw= ipw
_ipwfw= ipwfw
+_isci= isci
_iwi= iwi
_iwifw= iwifw
_iwn= iwn
@@ -594,6 +596,7 @@ _ipmi= ipmi
_ips= ips
_ipw= ipw
_ipwfw= ipwfw
+_isci= isci
_iwi= iwi
_iwifw= iwifw
_iwn= iwn
diff --git a/sys/modules/isci/Makefile b/sys/modules/isci/Makefile
index 53491cd..9bcd846 100755
--- a/sys/modules/isci/Makefile
+++ b/sys/modules/isci/Makefile
@@ -4,7 +4,7 @@
ISCI_SRC_PATH = ${.CURDIR}/../..
-.PATH: ${ISCI_SRC_PATH}/dev/isci
+.PATH: ${ISCI_SRC_PATH}/dev/isci ${ISCI_SRC_PATH}/dev/isci/scil
KMOD = isci
SRCS = isci.c isci_oem_parameters.c \
@@ -84,10 +84,9 @@ SRCS += \
sati_verify.c sati_write.c \
sati_write_buffer.c sati_write_long.c sati_write_and_verify.c
-SRCS += opt_scsi.h opt_cam.h
+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>
-
OpenPOWER on IntegriCloud