freebsd with flexible iflib nic queues
Go to file
Kenneth D. Merry a0acb3512c Fix probing FC targets with hard addressing turned on.
This largely reverts FreeBSD SVN change 289937 from October 25th, 2015.

The intent of that change was to keep loop IDs persistent across
chip reinits.

The problem is that the change turned on the PREVLOOP /
PREV_ADDRESS bit (bit 7 in Firmware Options 2), which tells the
Qlogic chip to not participate in the loop if it can't get the
requested loop address.  It also turned off soft addressing on 2400
(4Gb) and newer controllers.

The isp(4) driver defaults to loop address 0, and the tape drives
I have tested default to loop address 0 if hard addressing is turned
on.  So when hard loop addressing is turned on on the drive, the isp(4)
driver just refuses to participate in the loop.

The solution is to largely revert that change.  I left some elements
in place that are related to virtual ports, since they were new.

This does work with IBM tape drives with hard and soft addressing
turned on.  I have tested it with 4Gb, 8Gb, and 16Gb controllers.

sys/dev/isp.c:
	Largely revert FreeBSD SVN change 289937.  I left the
	ispmbox.h changes in place.

	Don't use the PREV_ADDRESS bit on initialization.  It tells
	the chip to not participate if it can't get the requested
	loop ID.

	Do use soft addressing on 2400 and newer chips.

	Use hard addressing when the user has requested a specific
	initiator ID.  (hint.isp.X.iid=N in /boot/loader.conf)

	Leave some of the virtual port options from that change in
	place, but don't turn on the PREV_ADDRESS bit.

Reviewed by:	mav
MFC after:	3 days
Sponsored by:	Spectra Logic
2017-07-27 15:33:57 +00:00
bin Use the "tree" word in ps(1) -d option description, to make it easier 2017-07-22 10:38:44 +00:00
cddl Add an auxiliary subroutine to generate some events for testing 2017-07-26 12:07:46 +00:00
contrib As in r315225, discard 3072 bytes of RC4 bytestream instead of 1024. 2017-07-27 06:26:15 +00:00
crypto MFV r320905: Import upstream fix for CVE-2017-11103. 2017-07-12 07:19:06 +00:00
etc Unconditionally install etc/mtree/BSD.debug.dist again 2017-07-25 00:28:23 +00:00
gnu Add deprecation notices for gdb and kgdb. 2017-07-05 15:23:30 +00:00
include An MMC/SD/SDIO stack using CAM 2017-07-09 16:57:24 +00:00
kerberos5 Remove trailing slash (/) for consistency. 2017-07-26 02:05:09 +00:00
lib Use MFENCE to serialize RDTSC on non-Intel CPUs. 2017-07-27 08:37:07 +00:00
libexec Allow to specify targets by absolute paths in libmap.conf. 2017-07-27 08:33:31 +00:00
release Bump the image size for BANANAPI and CUBIEBOARD2 to 1.5G, as 2017-07-27 13:37:21 +00:00
rescue DIRDEPS_BUILD: Update dependencies. 2017-05-09 01:48:23 +00:00
sbin Fix style and wrap lines to 80 columns in savecore.c. 2017-07-24 21:51:41 +00:00
secure Merge OpenSSL 1.0.2l. 2017-05-25 20:52:16 +00:00
share Allow -DNO_SKIP_DEPEND to override the _SKIP_DEPEND logic. 2017-07-25 16:46:12 +00:00
sys Fix probing FC targets with hard addressing turned on. 2017-07-27 15:33:57 +00:00
targets Update targets/pseudo/tests/Makefile.depend after recent additions/subtractions 2017-07-19 16:45:57 +00:00
tests Implement SIGEV_THREAD notifications for lio_listio(2) 2017-07-21 15:09:24 +00:00
tools Merge ^/head r320573 through r320970. 2017-07-13 22:01:38 +00:00
usr.bin Fix singular/plural "users" output. 2017-07-27 14:34:57 +00:00
usr.sbin Fix some broken logic used in obtaining the certain config pages. I'm 2017-07-27 05:31:48 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS
MAINTAINERS Add asomers as a pjdfstest co-maintainer per the project status change 2017-06-28 09:25:15 +00:00
Makefile genericize target exclusion for missing external toolchain 2017-07-27 12:29:31 +00:00
Makefile.inc1 NO_CLEAN: Hide delete-old output. 2017-07-25 20:51:06 +00:00
Makefile.libcompat buildworld: Define SYSROOT to WORLDTMP. 2017-06-19 18:08:20 +00:00
ObsoleteFiles.inc Set tentative merge dates, bump __FreeBSD_version. 2017-07-21 18:53:43 +00:00
README Pull down pjdfstest 0.1 2017-06-28 08:48:09 +00:00
README.md Remove hard line breaks from README.md 2017-03-01 15:39:58 +00:00
UPDATING Set tentative merge dates, bump __FreeBSD_version. 2017-07-21 18:53:43 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

For copyright information, please see the file COPYRIGHT in this directory (additional copyright information also exists for some sources in this tree - please see the specific source directories for more information).

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

Source Roadmap:

bin				System/user commands.

cddl			Various commands and libraries under the Common Development  
				and Distribution License.

contrib			Packages contributed by 3rd parties.

crypto			Cryptography stuff (see crypto/README).

etc				Template files for /etc.

gnu				Various commands and libraries under the GNU Public License.  
				Please see gnu/COPYING* for more information.

include			System include files.

kerberos5		Kerberos5 (Heimdal) package.

lib				System libraries.

libexec			System daemons.

release			Release building Makefile & associated tools.

rescue			Build system for statically linked /rescue utilities.

sbin			System commands.

secure			Cryptographic libraries and commands.

share			Shared resources.

sys				Kernel sources.

tests			Regression tests which can be run by Kyua.  See tests/README
				for additional information.

tools			Utilities for regression testing and miscellaneous tasks.

usr.bin			User commands.

usr.sbin		System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html