There is also an opensolaris page that discusses the usage model for mptt.
There is one note that isn't mentioned in the mptt discussion link above. First off, if your SAS initiator is not another LSI 1068/1068e based HBA (Sun-branded or not), there is no need to read further. Second, if you already have a COMSTAR SAS configuration set up and are not having any issues discovering your COMSTAR LUs, then again, no need to continue unless it's simply for morbid curiousity.
OK. So, you are running SAS on COMSTAR, you're using a 1068 or 1068e based HBA as the initiator, and you're having trouble seeing the COMSTAR targets you've taken the time to create, register, and map. Fear not.
Now, I can't exactly explain why this seems to be a problem in some configurations and not in others. However, this change has fixed my configuration when I've run into this problem.
First question: Is your SAS initiator running on SPARC or x86 (x64)? Read the appropriate section below.
"Fixing" your 1068[e] initiator HBA running on x64 for COMSTAR Fortunately, the HBA option ROM (BIOS) will allow you to make the necessary change.
Step 1: Reboot the system.
Step 2: Hit Ctrl-C when prompted to enter the LSI Logic Configuration Utility.
Step 3: From the main screen, choose your initiator HBA by highlighting the appropriate entry and hitting ENTER.
Step 4: Choose the "Advanced Adapter Properties" option and hit ENTER.
Step 5: Choose the "Advanced Timing Properties" option and hit ENTER.
Step 6: Look for the "Direct Attached Max Targets To Spinup" option. Chances are, the value there is going to be "0". Highlight that value and hit the space bar to increment the value. Choosing 8 should be reasonable.
Step 7: Hit ESC three times to get to the exit menu.
Step 8: Choose "Save changes then exit this menu" and hit ENTER.
Step 9: From the Adapter List (main) page, hit ESC, then choose "Save changes and reboot."
When your system comes back up, you should be seeing all of your COMSTAR LUs.
"Fixing" your 1068[e] initiator HBA running on SPARC for COMSTAR For the SPARC initiator, you're going to need an LSI provided program called "lsiutil". If you've ever installed the LSI initiator driver (itmpt), you may have this on your system already. Look for /usr/bin/lsiutil. If you don't have it, you can get it here. Choose the "Solaris SPARC" download. You should end up downloading a file called SAS_Solaris_8-9_SPARC.zip or something similar. If you already have lsiutil, skip down to step 6 below.
Step 1: Download the file as referenced above.
Step 2: unzip the zip file into some subdirectory, then cd into that directory.
Step 3: You'll likely have a file called "itmpt_5.07.04_sparc.tar.Z", although the version number may be different.
Step 4: Extract lsiutil by doing the following: zcat itmpt_5.07.04_sparc.tar.Z|tar xf - install/ITImpt/reloc/usr/bin/lsiutil"
Step 5: As root, "cp install/ITImpt/reloc/usr/bin/lsiutil /usr/bin/"
Step 6: Run lsiutil
Step 7: Select the appropriate device from the available list and hit ENTER. If you are using the Solaris mpt initiator driver and you don't see any mpt ports listed, your version of lsiutil may be too old. If this is the case, you'll need to download a newer version from the link above. The current version at the link above is 1.52.17 (November 14, 2007) and it does work.
Step 8: Choose option 9. It may not show up in the list of options unless you hit "e" and ENTER, but you don't have to do that.
Step 9: At the "Enter page type:" prompt, type in 2 and hit ENTER.
Step 10: At the "Enter page number:" prompt, type in 1 and hit ENTER.
Step 11: At the "Read NVRAM or current values?" prompt, just hit ENTER for the default (NVRAM). You should see output similar to the following:
Enter page type: [0-255 or RETURN to quit] 2 Enter page number: [0-255 or RETURN to quit] 1 Read NVRAM or current values? [0=NVRAM, 1=Current, default is 0] 0000 : 22010803 0004 : 00000700 0008 : 00500230 000c : 00000000 0010 : 00000000 0014 : 00000018 0018 : 000a000a 001c : 000a000a Do you want to make changes? [Yes or No, default is No]Step 12: Type in Yes and hit ENTER to make changes.
Step 13: At the "Enter offset of value to change:" prompt, type in 8 and hit ENTER.
Step 14: Look at the value at offset 8 above. In this example, it's 00500230. If you see something like 00508230, you shouldn't need to change anything, and shouldn't be having a problem. Otherwise, you want to change bits 12 through 15. For this example, you would enter 00508230 and hit ENTER. That is, keep all the values the same except for nibble 3.
Step 15: At the next "Enter offset of value to change" prompt, hit ENTER to quit.
Step 16: At the "Do you want to write your changes?" prompt, type in Yes and hit ENTER.
Step 17: Hit ENTER to quit option 9, then hit 0 followed by ENTER and 0 followed by ENTER again to quit lsiutil.
Step 18: Reboot your initiator system.
When the system comes back up, you should see your COMSTAR SAS LUs.
If you have any issues relating mptt, device discovery, or even COMSTAR in general, feel free to send a message to storage-discuss.
Good luck, and happy SASing.
