Hello Vladimir, only shortly:
> > Oh, I find probably the mistake right now - there is missing my older > > small patch in usbms.c - there is fast "hand made" "patch", I have no > > more time, sorry: > > usbms.c, line 240: > > - cbw.lun = scsi->lun << GRUB_SCSI_LUN_SHIFT; > > + cbw.lun = scsi->lun; /* In USB MS CBW are LUN bits on another place > > than in SCSI CDB, both should be set correctly. */ > > > > > Perhaps (scsi->lun << GRUB_SCSI_LUN_SHIFT) | scsi->lun ? I think no, simply in this way: cbw.lun = scsi->lun; Look in http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf ("Universal Serial Bus Mass Storage Class Bulk-Only Transport, Revision 1.0, September 31, 1999"), chapter 5.1 Command Block Wrapper (CBW). Field bCBWLUN is in 13-th byte in low four bytes, i.e. it should be directly GRUB cbw.lun. This small patch was included in my some previous patch (I think usb_patch_100523_0) and it worked. But if somebody have multi-LUN device, please test it (usually some "X in one" card readers are multi-LUN, I tested it on "Trust CR-1200 16-in-1" with SD and CF cards inserted in). Best regards Ales _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel