Understanding dmesg and usb hardware mounting

The Scenario:

Solaris 8 box with USB ports on mobo. Two USB devices both fat32 filesystems and mount with the fs type pcfs, device A is a USB thumb drive (1gb), device B is a External HDD (500gb). Insert device A into a usb port; use dmesg output to find the device path (usb@a/storage@2#). Look at ls -l /dev/dsk grep storage@2# to find out what c#t#d#s# disk that device is tied to. Mount the device (/mnt/usb); ls to check; unmount device (umount /mnt/usb). Unplug device A.

This all works fine, now pull device A out and insert device B into the same USB port. Run dmesg and this is the output

dmesg output

Dec 17 15:10:54 ubox usba: [ID 349649 kern.info] usba:    offlining scsa2usb1 failed (-5)
Dec 17 15:10:54 ubox usba: [ID 464422 kern.warning]  WARNING: /pci@1e,600000/usb@a/storage@2 (scsa2usb1): Cannot access device. Please reconnect SanDisk, U3 Cruzer Micro, 3349530F3010A88F

Now if I try and repeat the mounting steps over for deviceB it will not mount I get a message along the lines of no disk, however if I pull it reinsert device A then run the same mount command it works fine.

Each time I pull out a usb device I see that offlining scsa2usb1 failed (-5) message.

To me it seems like I am not properly closing out of the device, and it is being cached. The only way to solve this problem I have found thus far is a restart. But after the first device either A or B had been mounted then unmount and replaced I hit the same issue.

Things that I have tried to fix this.
eject /dev/dsk/c#t#d#s# where the numbers map to the usb device
eject /mount point
cfgadm -C
stoping and starting volmgt
calling vold

P.S. My system will not automount to /rmdisk infact that dir does not exist on my root

Questions:
1.) What am I doing wrong here, is it in the unmounting?
2.) What is offlining and why does it fail?
3.) Does some cache of connected devices exist and can it be reset?
4.) Is there a way to cycle the power in the USB port or internal hub to reset device mappings, if so how?

Maybe automountd is remounting the ejected device, since it does not actually eject? Mount point does not seem to be a valid argument to eject, but who knows!

Maybe you need to turn it off at some lower level to keep the lower levels happy:

Man Page for cfgadm_usb (OpenSolaris Section 1m) - The UNIX and Linux Forums

I agree that it seems that the lower levels need to be apeased somehow. I am just out of ideas on how to make that happen. As for cfgadm -l
I don't see any of my USB ports all I get is the SCSI Bus.

Do you have this lib:

DESCRIPTION
       The    Universal    Serial    Bus   (USB)   hardware-specific   library
       /usr/lib/cfgadm/usb.so.1 provides the functionality  for  administering
       USB  devices  via the cfgadm(1M) command. cfgadm operates on attachment
       points. For details regarding attachment points, refer to cfgadm(1M).

Ok, I am on the same page with you, cfgadm does not list anything for usb because I am missing that libary which provides cfgadm instructions on how to interact with different hardware. So how do I go about adding an attachment point, ie usb.so.1 ?

When you find the package containing the library and its run-time prerequisites, and install them, then you can explore this command.