freebsd-skq/sys/dev/isp
Alexander Motin d1f4058735 Make first step toward supporting target and initiator roles same time.
To avoid conflicts between target and initiator devices in CAM, make
CTL use target ID reported by HBA as its initiator_id in XPT_PATH_INQ.
That target ID is known to never be used for initiator role, so it won't
conflict.  For Fibre Channel and FireWire HBAs this specific ID choice
is irrelevant since all target IDs there are virtual. Same time for SPI
HBAs it seems could be even requirement to use same target ID for both
initiator and target roles.

While there are some more things to polish in isp(4) driver, first tests
of using both roles same time on the same port appeared successfull:

# camcontrol devlist -v
scbus0 on isp0 bus 0:
<FREEBSD CTLDISK 0001>             at scbus0 target 1 lun 0 (da20,pass21)
<>                                 at scbus0 target 256 lun 0 (ctl0)
<>                                 at scbus0 target -1 lun ffffffff (ctl1)
2015-07-05 03:38:58 +00:00
..
DriverManual.txt
Hardware.txt
isp_freebsd.c Make first step toward supporting target and initiator roles same time. 2015-07-05 03:38:58 +00:00
isp_freebsd.h
isp_ioctl.h
isp_library.c Drop discovered targets when initiator role is disabled. 2015-07-04 18:38:46 +00:00
isp_library.h
isp_pci.c Add dev.isp.X.role sysctl in addition to tunable. 2015-06-23 16:13:20 +00:00
isp_sbus.c
isp_stds.h
isp_target.c
isp_target.h
isp.c Remove extra level of target ID indirection (isp_dev_map). 2015-07-05 02:09:46 +00:00
ispmbox.h
ispreg.h
ispvar.h Remove extra level of target ID indirection (isp_dev_map). 2015-07-05 02:09:46 +00:00