On Tue, 2 Apr 2013, victor yeo wrote: > Hi, > > >> Here is the fresh usbmon trace. Four SCSI commands are shown. The > >> first SCSI_READ_10 command has LBA of 0. The second SCSI_READ_10 > >> command has LBA of 0x00ed2900, which is wrong. Somehow, the first > >> SCSI_READ_10 command got the wrong data, i think. Isn't it? > > > > It looks like the data is wrong, but I have no way of knowing what the > > data actually should be. Only you know that. > > > >> f31a9740 4037054141 S Bo:2:071:1 -115 31 = 55534243 0c000000 00100000 > >> 80000a28 00000000 00000008 00000000 000000 > >> f31a9740 4037054176 C Bo:2:071:1 0 31 > > >> f4a555c0 4037054184 S Bi:2:071:1 -115 4096 < > >> f4a555c0 4037108430 C Bi:2:071:1 0 4096 = eb58904d 53444f53 352e3000 > >> 02402e11 02000000 00f80000 3f00ff00 00200000 > > > > Is this different from what you have in the first 32 bytes of your > > backing file? If it is then your UDC driver is not sending the correct > > buffer data to the host. > > The first 32 bytes data is correct. It is the first 32 bytes content > of the FAT boot record. I observed further, when first SCSI_READ_10 > command is sent with LBA of zero, and the file_offset_tmp of > vfs_read() in do_read() is passed in as 0. It reaches SD driver with > argument of 0x2002, . Somehow, the address got passed wrongly in the > processing of it. In this case, 0x2000 is the FAT boot sector. > Shouldn't gadget driver read from MBR (master boot record) as LBA of > zero corresponds to MBR? The gadget driver reads from whatever you tell it to read. When you load g-file-storage, what parameters do you put in the modprobe command? Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html