> Given ... your opinion that it's a firmware problem We didn't just lose our test hardware, did we? Tell me no? Please?
(-: As a firmware engineer, I'm prepared to claim, "it's nearly always a host problem, not a firmware problem". :-) Even objectively speaking, we know here talking enough like Windows works. > > > Would just sending one read command via SG_IO, > > > rather than going for the whole mount of a > > > volume, teach us anything? > > > > 'dd if=/dev/scsi/.../disc ...' succeeds on a > > freshly-inserted card. Further reads tend to fail. > > Really? I'd like to see a log of that.... Me too! A log including at least the first failure, and the last success before that, please? > > "usb-storage: > usb_stor_transfer_partial(): xfer 4096 bytes" > > > > AIUI this message is logged before any data moves > > and just indicates how much information is > > expected. > > ... means a request for copying 4096 bytes. After > the transfer completes a status line is printed > showing what actually happened. Ah, thanks, in the fuller log sent since now I see such context as: usb-storage: Command INQUIRY (6 bytes) usb-storage: 12 00 00 00 ff 00 00 00 6b 01 00 00 usb-storage: Bulk command S 0x43425355 T 0x1 Trg 0 LUN 0 L 255 F 128 CL 6 usb-storage: Bulk command transfer result=0 usb-storage: usb_stor_transfer_partial(): xfer 255 bytes usb-storage: usb_stor_bulk_msg() returned -32 xferred 64/255 I'm a little surprised. I guess here we're back at a level of Linux not yet tweaked to talk op x12 like Windows does? Specifically, here we see "-x 12 00 00 00 FF 00" -i xFF and not "-x 12 00 00 00 24 00" -i x24? > > How about sending a read command to an Lba beyond > > the capacity? > > In other words, a command that should fail > immediately rather than try to access the media? > Interesting thought.... Not just any command that should fail, but a command that should fail that the kernel will expect to stream blocks quickly, presuming the kernel makes such distinctions among commands without regard to the parameters of the command. > > Linux `dd` can... be persuaded to try reading > > from a volume that hasn't yet been mounted? > > Yes, it can. But since dd will go through sd.c, > I don't see much point. If a given SCSI command works anywhere in Linux, then divining why it doesn't work during mount grows easier? > bInterfaceProtocol does, in fact, = x06 SCSI. Ah, later I received the log line: bInterface Class:SubClass:Protocol = 08:06:50 bInterfaceProtocol x06 may mean Windows sends bCBWCBLength in x 06 0A 0C 10 rather than always x0C. I have no idea what the effect on zero padding is. > anyone know what Mac OS X does Not me. Mac Open Firmware boot Forth works ok, but OS X currently has no SCSI pass thru i.e. no analogue of Linux SG_IO, for the bootable PDT's x 00 05 07 0E. > my recent suggestion that he try 8020 instead of > SCSI, where such padding is done. I replied before I received that, sorry. > > "L 4096" here might mean > > dCBWDataTransferLength = x1000 (4096) > > = x00:08 * x200. > > Yes. Thanks for saying. Still I wonder if "CL = 10" means bCWBCBLength in a bus trace. > ... Cheers, Pat LaVarre NHY隊X'u*m(ZW謞(z+i"v^y+)n )~ڝayZǨ)jp)W>alqz܂&v*reMzybn^elqz{.n+azV+֭ilqzlX)ߣbn^