Using DMM to call an External program (SATA Command Compliance) Training Video
Your input is making a difference! Since our February 2009 “What’s Helping Survey” we’ve added a new training video to walk you through calling an external program in DMM (Disk Manufacturing and Screening Module) in the STB Suite. You can watch the video (with narration) from our online training video repository here: http://www.stbsuite.com/schedule-live-training/ or download the video directly here: http://www.scsitoolbox.com/Training/Videos/DMM-ExternalProgram.wmv
If there are any training videos you feel we are missing, please let us know and we’ll try to add them ASAP.
Bus Analyzer Module functions in Developer Toolbox API
There are six new BAM-related functions in DTB version 8.1!
int VCSCSIBAMconfigure(long BufSize, long PhaseSize, int Flags, int Phases);
int VCSCSIBAMdrive(int ha, int target, int lun, int capture);
int VCSCSIBAMsaveCapture(CString *fname);
General Use of the BAM function
The order of operation to control the capture of a BAM trace in a DTB-enabled application is as follows:
- Configure BAM
- Define what drive I/O to capture
- Start the capture
- Stop the capture
- Save the trace
This step will define which phases will be captured, what size the capture buffer should be, how much data in a data phase will be recorded, and any operational option flags such as “Stop on Buffer Full”
Use the function int VCSCSIBAMconfigure(long BufSize, long PhaseSize, int Flags, int Phases);
with the following parameters:
BufSize is the capture buffer size in MB.
PhaseSize is the amount of data to record, in bytes
Flags can be any combination of or’d values of:
1 = Stop Capture on Buffer Full
2 = Stop Capture on Bus Reset
4 = Immediately clear the capture buffer
Phases can be any combination of or’d values of:
#define CDB_PHASE 0x00000001 // cdb bytes
#define SENSE_PHASE 0x00000002 // sense data
#define OK_PHASE 0x00000004 // command complete
#define DATA_IN_PHASE 0x00000008 // data in bytes
#define DATA_OUT_PHASE 0x00000010 // data out bytes
#define ATA_PHASE 0x00000020 // ATA task file command
#define ATA_STATUS_PHASE 0x00000040 // ATA task file response
#define ATP_PHASE 0x00000080 // ATA pass through structure
#define SPT_PHASE 0x00000200 // SCSI Pass through struct
#define SRB_PHASE 0x00000400 // SRB structure
#define SRB_STATUS_PHASE 0x00000800 // srb status byte
#define NT_STATUS_PHASE 0x00004000 // nt status
Passing a value of 0 for the phases parameter will select the default phases to capture, which are:
Default Phases = SENSE_PHASE | OK_PHASE | CDB_PHASE | DATA_IN_PHASE | DATA_OUT_PHASE | ATA_PHASE |ATA_STATUS_PHASE | SRB_PHASE | SRB_STATUS_PHASE | RESET_PHASE;
Use the function int VCSCSIBAMdrive(int ha, int target, int lun, int capture);
To define what drive to capture I/O from, and the capture parameter defines whether to set the trace to capture or not capture I/O once the trace capture is started.
Set capture = 1 to turn on capture for this device.
Note: You may want to clear the capture buffer before starting a new capture, using the function VCSCSIBAMclearBuffer();
Use the function int VCSCSIBAMstartCapture();
To begin capturing
Use the function int VCSCSIBAMstopCapture();
To stop capturing.
Use the function int VCSCSIBAMsaveCapture(CString *fname);
To save the captured trace to your specified file name.
Note: Trace data will be stored in the new BAM version 8.1 data format. You will not be able to read it using BAM version 2 or below.
Some Specific Items
- The DTB BAM functions allow I/O to/from a specified drive to be captured and saved.
- At present there are no DTB BAM functions that analyze BAM data
- Captured data is viewed by using BAM version 8.1, using the File->Open menu.
- Once you have the capture file open in BAM you can analyze it, save it out as a CSV text file, etc.
To make sure you’ll receive this new functionality make sure your Performa coverage is active and the Technical contact information is correct for your serial number so you will receive this release in June.
If you have any questions about your license, contact Jeremy Wolfe 720.249.2641 or email@example.com.
Example DTB Code (VC) Project using BAM functionality
In 8.1 the Developer Toolbox API will now have access to the STB Bus Analyzer Module functionality. The project source code is available for download here.
To make sure you’ll receive this new functionality make sure your Performa coverage is active and the Technical contact information is correct for your serial number so you will receive this release in June. If you have any questions about your license, contact Jeremy Wolfe 720.249.2641 or firstname.lastname@example.org.
Ask Dr. SCSI – “…would you add some of the new STB tests into DTB?”
Q. “Hi Dr. SCSI. Would you add some of the new STB tests into DTB API?”
A. “I’m glad you asked! Yes, we can. In fact in 8.1 the following new functions will be added to the Developer Toolbox API”
User-Defined CDB Test: “Allows you to defined your custom made CDB as a test step”
Streaming Test: “Allows you to define a sequential test that has a mixture of Writes and Reads with the ratio of Writes-to-Reads user-definable Online Transaction Processing Test: “Allows you to define a random test that has a mixture of Writes and Reads with the ratio of Writes-to-Reads user-definable, transfers are between 4 and 32 blocks File Server Test: “Allows you to define a random test that has a mixture of Writes and Reads with the ratio of Writes-to-Reads user-definable, transfers are between 8 and 128 blocks Web Server Test: “Allows you to define a random read test, transfers are between 1 and 1024 blocks Work Station Test: “Allows you to define a test where 80% of the accesses are random and 20% of the accesses are sequential. Allows a mixture of Writes and Reads with the ratio of Writes-to-Reads user-definable, transfers are between 1 and 32 blocks Clear Log Pages Test: “Allows you to clear the log pages”
Save Log Pages Test: “Allows you to save ALL log pages”
Drive Self Test: “Allows you to issue a “Drive-self test diagnostic” test”
Delay Test: “Allows you to delay your testing for a number of seconds”
Adjacent Track Interference Test: “Allows you to define a test where 3 consecutive tracks are accessed. The two other tracks are written to, and an analysis of the middle is done to determine if the interference from the vibration from the two other tracks has had any effect on the middle track SMART Test: “Allows you to log all SMART data on an ATA drive”
SATA Firmware Download test: “Allows you to upgrade firmware on a SATA drive SATA Info Test: “Allows you to log SATA Information”
STB Testimonial – “You have saved me…”
Recently STB was approached by a large company and asked to optimize their Tape Duplication and checksum process. The process took nearly 23 hours to complete (per drive). After establishing the technical details of what was needed STB quickly developed a solution that saved the customer hundreds of hours off the total process!
If your testing process is anything less than completely optimized, please contact STB Today to find out if we can help you with your engineering, DVT, burn-in, ORT, RMA, or other testing needs. We have nearly two decades of Enterprise level software testing tools experience! Let us show you WHY we are the Industry Standard in Peripheral Testing! Contact Jeremy Wolfe 720.249.2641 or email@example.com.