Thread View: vmsnet.misc
2 messages
2 total messages
Started by Dick Munroe
Mon, 02 Nov 1992 20:47
Format of SCSI commands to GKDRIVER.
Author: Dick Munroe
Date: Mon, 02 Nov 1992 20:47
Date: Mon, 02 Nov 1992 20:47
16 lines
936 bytes
936 bytes
GKDRIVER question: SCSI is bigendian, VAXen are little endian, I assume that the GKDRIVER simply takes the commands and arguments given it and transmits them blindly (after all, it IS a pass through driver). Which should mean that when I write SCSI commands, I have to worry about swapping bytes in portions of the commands that take words, etc. Is this assumption correct? -- Dick Munroe Internet: munroe@dmc.com Doyle Munroe Consultants, Inc. UUCP: ...uunet!thehulk!munroe 267 Cox St. Office: (508) 568-1618 Hudson, Ma. FAX: (508) 562-1133 GET CONNECTED!!! Send mail to info@dmc.com to find out about DMConnection.
Re: Format of SCSI commands to GKDRIVER.
Author: mark
Date: Tue, 03 Nov 1992 00:03
Date: Tue, 03 Nov 1992 00:03
40 lines
2247 bytes
2247 bytes
In article <1992Nov2.154711.4667@dmc.com>, munroe@dmc.com (Dick Munroe) writes: > GKDRIVER question: > > SCSI is bigendian, VAXen are little endian, I assume that the GKDRIVER simply > takes the commands and arguments given it and transmits them blindly (after > all, it IS a pass through driver). Which should mean that when I write SCSI > commands, I have to worry about swapping bytes in portions of the commands that > take words, etc. > > Is this assumption correct? It may or may not. I never looked at it from that perspective. As far as I can remember, every SCSI device manual I've ever examined including the ANSI specs, always clearly spelled out the contents of each BYTE of the command. In general non byte quantities are relatively rare or and are used consistently in each "group" of related commands that have a similar/identical parameter (i.e. read/write/seek all specify a LBN and do it exactly the same way for the Group 0 commands, and do it exactly the same way for the Group 1 commands). Take for example, a Group 0 WRITE command setup given LBA is the block number to write and LEN is the number of blocks to write: cdb[0] = 0x0A; cdb[1] = (LBA>>16)&0x1f; cdb[2] = (LBA>>8)&0xff; cdb[3] = LBA&0xff; cdb[4] = LEN; Although technically this implies big-endian interpretation, it certainly isn't quite a byte swap operation since it involves parts of various bytes, AND not an even number of bytes. Note the above command sets 21 bits of LBA. Given 512 byte blocks, this is maximally 30 bits of addressability which is exactly the 1 GB limit the VMS DKDRIVER had pre VMS V5.4. -- Mark Pizzolato - INFO COMM Computer Consulting, Redwood City, Ca PHONE: (415)369-9366 UUCP: decwrl!infopiz!mark or uunet!lupine!infopiz!mark DOMAIN: mark@infocomm.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads