Other supermicro enclosure only showing disks, no SES — `sas3ircu` works

Hi all,

We've got a supermicro H12SSL-i in a chassis with with two LSI 9300 cards; one is an 8e and connects to a SAS tape, and the other is an 8i, connected to a BPN-SAS3-743A containing 8 SAS drives. They're both flashed to IT mode, and all the drives work. However, we don't seem to get a ses0 device, even though mprutil -u 1 show enclosures detects it:

Code:
# mprutil -u 1 show enclosures
Slots      Logical ID     SEPHandle  EncHandle    Type
  08    500304801b01dd01               0001     Direct Attached SGPIO

Doing set hw.mpr.0.use_phy_num=-1 at the loader prompt doesn't help, and the mapping debug flag doesn't mention the WWN of the enclosure at all.

To add to the mystery, if we use a stray copy of sas3ircu 1 locate 1:0 on that works fine.

Here's our mpr0 detection output for convenience. Attached is a boot with dev.mpr.debug_level=0x223, but, as mentioned, it's got nothing to say about the enclosure.
Code:
mpr0: <Avago Technologies (LSI) SAS3008> port 0xc000-0xc0ff mem 0xb6140000-0xb614ffff,0xb6100000-0xb613ffff irq 54 at device 0.0 on pci1
mpr0: Firmware: 16.00.12.00, Driver: 23.00.00.00-fbsd
mpr0: IOCCapabilities: 7a85c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,MSIXIndex,HostDisc,FastPath,RDPQArray>

Is this just an incompatibility with the backplane? Is there anything we can to do help debug this?
 

Attachments

Let me try to summarize what I know from your post: The interface between SES device and LSI card works, as proven by the mprutil command, which asks the LSI card what it sees. In IT mode, the LSI card should not do any RAID function, and should expose all the disks it sees to the OS, and that seems to be working; I assume you get lots of /dev/sdXXX entries. Yet FreeBSD doesn't create a /dev/sesXXX device. Are you using a stock kernel? Could it be a custom-compiled kernel with SES disabled?

The other puzzling thing is that sas3ircu seems to work. Suggestion: Run "sas3ircu 1 list" under dtrace, and look what device it opens.
 
Correct: we get eight /dev/da (enumerated in somewhat random order, which is also not affected by the use_phy_num setting, but that's not important right now) and one /dev/sa0 (which works great), but no /dev/ses. This happens on both a 13.2-RELEASE DVD (iirc, the install media uses a superset of GENERIC), and the currently-booted 14.2-RELEASE USB stick, which reports that SES is indeed compiled into the kernel:
Code:
# sysctl kern.conftxt | grep -i ses
device ses

Running sas3ircu under ktrace (which we're more familiar with) shows that it brute-force opens, for i in 0 through 255, all of /dev/mps3_$i, /dev/mps$i, /dev/mpr$i, which only succeeds for mpr0 and mpr1, and seems to interact with it mainly through ioctl.
 
Back
Top