History log of /freebsd-current/sys/cam/scsi/scsi_ses.h
Revision Date Author Comments
# 71625ec9 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c comment pattern

Remove /^/[*/]\s*\$FreeBSD\$.*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 456b2bb9 09-Apr-2022 Gordon Bergling <gbe@FreeBSD.org>

cam(4): Remove a double word in a source code comment

- s/this this/this/

MFC after: 3 days


# 2e19fae4 13-Jan-2022 Alexander Motin <mav@FreeBSD.org>

sesutil: Avoid setting reserved bits.

Weird side of SES specification is that some bits have different
meaning or semantics in status and control pages. This patch fixes
non-zero writes into reserved fields, that caused errors on some
enclosures when trying to control locate/fault LEDs, keeping other
bits unchanged.

MFC after: 2 weeks
Sposonred by: iXsystems, Inc.


# 27dcd3d9 01-Sep-2020 Mateusz Guzik <mjg@FreeBSD.org>

cam: clean up empty lines in .c and .h files


# c119ccdb 17-Aug-2020 Alexander Motin <mav@FreeBSD.org>

Extend EIIOE field handling according to ses4r5 draft.

It should not affect any existing systems.

MFC after: 2 weeks


# 53f5ac13 23-Jun-2019 Alexander Motin <mav@FreeBSD.org>

Improve AHCI Enclosure Management and SES interoperation.

Since SES specs do not define mechanism to map enclosure slots to SATA
disks, AHCI EM code I written many years ago appeared quite useless,
that always bugged me. I was thinking whether it was a good idea, but
if LSI HBAs do that, why I shouldn't?

This change introduces simple non-standard mechanism for the mapping
into both AHCI EM and SES code, that makes AHCI EM on capable controllers
(most of Intel's) a first-class SES citizen, allowing it to report disk
physical path to GEOM, show devices inserted into each enclosure slot in
`sesutil map` and `getencstat`, control locate and fault LEDs for specific
devices with `sesutil locate adaX on` and `sesutil fault adaX on`, etc.

I've successfully tested this on Supermicro X10DRH-i motherboard connected
with sideband cable of its S-SATA Mini-SAS connector to SAS815TQ backplane.
It can indicate with LEDs Locate, Fault and Rebuild/Remap SES statuses for
each disk identical to real SES of Supermicro SAS2 backplanes.

MFC after: 2 weeks


# f24882ec 16-Jan-2018 Pedro F. Giffuni <pfg@FreeBSD.org>

SPDX: finish tagging sys/cam.


# bceff6e3 07-Nov-2016 Alexander Motin <mav@FreeBSD.org>

Add support for EIIOE flag in Additional Element Status.

It was added in SES-3 spec, and its support required to properly link
the Additional Element Status page data to the original elements.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.


# 6d4c4b3f 24-Jul-2012 Alexander Motin <mav@FreeBSD.org>

Fix off by one error in ses_enc_desc_last_byte().


# f6ad3f23 24-May-2012 Alexander Motin <mav@FreeBSD.org>

MFprojects/zfsd:
Revamp the CAM enclosure services driver.
This updated driver uses an in-kernel daemon to track state changes and
publishes physical path location information\for disk elements into the
CAM device database.

Sponsored by: Spectra Logic Corporation
Sponsored by: iXsystems, Inc.
Submitted by: gibbs, will, mav


# 07e02081 15-May-2012 Alexander Motin <mav@FreeBSD.org>

Restore old API/ABI compatibility to make this code mergeable.


# 0f59fddd 15-May-2012 Alexander Motin <mav@FreeBSD.org>

mmm, fix for a fix. :(


# 29be35d7 15-May-2012 Alexander Motin <mav@FreeBSD.org>

Fix misreplacement: enclosure/seslosure.


# 01acaa30 18-Jul-2011 Justin T. Gibbs <gibbs@FreeBSD.org>

Revamp the CAM enclosure services driver, renaming it to "enc" from "ses" in
the process. This updated driver uses an in-kernel daemon to track state
changes and publishes physical path location information for disk elements
into the CAM device database.

share/examples/ses/Makefile.inc:
share/examples/ses/srcs/eltsub.c:
share/examples/ses/srcs/sesd.c:
share/examples/ses/srcs/getencstat.c:
share/examples/ses/srcs/setobjstat.c:
share/examples/ses/srcs/inienc.c:
share/examples/ses/srcs/getobjstat.c:
share/examples/ses/srcs/getnobj.c:
share/examples/ses/srcs/getobjmap.c:
share/examples/ses/srcs/setencstat.c:
Update for changes in driver name and API. The ioctl interface
is largely unchanged and could use additional refinement. It
would be nice to be able to fetch the status of all elements in
a single ioctl call and to have the ioctls that return variable
length data allow you to query the necessary allocation size
by passing in a zero length buffer.

sys/sparc64/conf/GENERIC:
sys/ia64/conf/GENERIC:
sys/mips/conf/OCTEON1:
sys/pc98/conf/GENERIC:
sys/i386/conf/GENERIC:
sys/amd64/conf/GENERIC:
ses -> enc

sys/conf/files:
sys/modules/cam/Makefile:
sys/cam/scsi/scsi_enc_internal.h
sys/cam/scsi/scsi_enc_ses.c
sys/cam/scsi/scsi_enc_safte.c
sys/cam/scsi/scsi_ses.c
sys/cam/scsi/scsi_enc.c
Split the enc driver into a generic driver file and one file
each for the SES and SAF-TE personalities.

sys/cam/scsi/scsi_ses.h:
o Retain this header, but use it to only hold structures derived
from the T10 SES spec. The driver interface can be found in
scsi_enc.h.
o Add definitions for most SES pages.

sys/cam/scsi/scsi_enc.c
sys/cam/scsi/scsi_enc.h
o Use a function vector table to allow interaction between the
generic and protocol specific portions of this driver.
o Provide a generic mechanism allowing personalities to define a
finite state machine that is executed from a daemon thread context.
o Track CAM device arrival events and pass these on to personalities
that have registered an interest in them. These notifications are
used to trigger physical path updates in the CAM EDT.

sys/cam/scsi/scsi_enc_safte.c:
The SAF-TE personality. This module is largely untouched by this
update. To achieve the same level of support as we have for SES,
it will need to define an FSM and code to determine the physical
paths of elements within the enclosure.

sys/cam/scsi/scsi_enc_ses.c:
o Implement a state machine to fetch configuration, status, element
descriptors, and additional element status.
o Build a "element map" that indexes into the config and status
data retrieved from a SES device. Use this to simplify our
responses to ioctls.
o Add support for using SAS domain/phy WWN data to determine the
physical path (ence@<enc WWN>/type@<elm type>/slot@<slot #>)
of an element. Stubs are in place for FC, but both FC and SPI
will need additional work in order to be supported.

Sponsored by: Spectra Logic Corporation
Submitted by: gibbs, will


# 34fca5da 26-May-2011 Alexander Motin <mav@FreeBSD.org>

Change new constant names to ones used by OpenSolaris.


# e13ca5c0 26-May-2011 Alexander Motin <mav@FreeBSD.org>

Add names for few more SES element types according SES-2 specification.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# fba92123 18-Jan-2006 Matt Jacob <mjacob@FreeBSD.org>

Fix ioctl to not get swallowed by ioctl code (i.e., make sure the darned
code sticks within 8 bits)

MFC after: 1 week


# 898b0535 05-Jan-2005 Warner Losh <imp@FreeBSD.org>

Start each of the license/copyright comments with /*-


# 92ebdff0 15-Jan-2000 Matt Jacob <mjacob@FreeBSD.org>

Move the kernel specific stuff into scsi_ses.c. Redo the ioctls
to be more platform independent. Add a ses_hlptxt structure definition
and retrieval ioctl for when we are able to retrieve object help text

SES Objects can have up to 64 KBytes of associated 'help' text- the
Sun A5000 uses this, for example, to give physical location information
(e.g., 'left power supply').


# 69ad2fbe 15-Jan-2000 Matt Jacob <mjacob@FreeBSD.org>

add functional but stub SES/SAF-TE driver