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 MotinReceived 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