SES/SAF-TE + SATA == SEMB!

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Fri, 27 May 2011 10:00:51 +0300
Hi.

As probably not many know, SATA specification defines the way to talk to
SES/SAF-TE enclosures -- Serial ATA Enclosure Management Bridge (SEMB).
It can be either separate device or built-in to SATA Port Multiplier. I
know at leat two models of Port Multipliers including SEMB and having
I2C interfaces to talk to SEP (backplane): SiI3726 and SiI4726.
Unluckily such combination of hardware is not widely spread (backplanes
are rarely used in desktops, while PMPs are rarely used in servers), but
finally I've built such setup! I've connected SuperMicro SAS815TQ
backplane to the SiI3726 multiplier with I2C cable and it works like a
charm!

I've made a patch for HEAD to support it. It adds SEMB devices support
to the ATA/SATA XPT probe code, some glue to handle one more ATA-based
command protocol and some changes to ses(4) driver to teach it talk to
such devices:
http://people.freebsd.org/~mav/semb.patch

As result I've got:

%dmesg |grep ses0
ses0 at ahcich8 bus 0 scbus8 target 5 lun 0
ses0: <AMI MG9071 1.00 0011> SEMB S-E-S 2.00 device
ses0: Serial Number 50030481
ses0: 150.000MB/s transfers (SATA 1.x, NONE, PIO 8192bytes)
ses0: SEMB SES Device
ses0: GenCode 0 0 Subenclosures
ses0:  SubEnclosure ID 0, 4 Types With this ID, Enclosure Length 36
ses0:  WWN: 3530303330343831
ses0:  Type Desc[0]: Type 0x17, MaxElt 4, In Subenc 0, Text Length 0
ses0:  Type Desc[1]: Type 0x4, MaxElt 1, In Subenc 0, Text Length 0
ses0:  Type Desc[2]: Type 0xe, MaxElt 1, In Subenc 0, Text Length 0
ses0:  Type Desc[3]: Type 0x6, MaxElt 1, In Subenc 0, Text Length 0

%camcontrol devlist
<ST3500418AS CC46>                 at scbus8 target 0 lun 0 (ada0,pass1)
<ST3500418AS CC46>                 at scbus8 target 1 lun 0 (ada1,pass2)
<ST3500418AS CC46>                 at scbus8 target 2 lun 0 (pass5,ada2)
<ST3500418AS CC46>                 at scbus8 target 3 lun 0 (pass6,ada3)
<AMI MG9071 1.00 0011>             at scbus8 target 5 lun 0 (ses0,pass3)
<Port Multiplier 37261095 1706>    at scbus8 target 15 lun 0 (pass4,pmp0)

%getencstat -v /dev/ses0
/dev/ses0: Enclosure Status <OK>
Element 0x0: Array device OK (Status=ok (bytes=0x11 0x00 0x00 0x00))
Element 0x1: Array device OK (Status=ok (bytes=0x11 0x00 0x00 0x00))
Element 0x2: Array device OK (Status=ok (bytes=0x01 0x00 0x00 0x00))
Element 0x3: Array device OK (Status=ok (bytes=0x01 0x00 0x00 0x00))
Element 0x4: Temperature sensors OK (Status=ok (bytes=0x01 0x00 0x32 0x00))
Element 0x5: Enclosure OK (Status=ok (bytes=0x01 0x00 0x00 0x00))
Element 0x6: Audible alarm OK (Status=ok (bytes=0x01 0x00 0x00 0x00))

YAY!

So now three questions:
1. Does anybody else have alike hardware and wish to test it?
2. Patch reviews are welcome.
3. Is there any software except share/examples/ses working with ses(4)
and/or some good use practices?

-- 
Alexander Motin
Received on Fri May 27 2011 - 05:01:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:14 UTC