SteelVine SiI57XX Series I2C Programmer’s Guide Version 1.0 Document Number: DOC-0057XX-450 Document Number: DOC-0057XX-450 Version 1.0 Copyright © 2007, Silicon Image, Inc. All rights reserved. No part of this publication may be reproduced, transmitted, transcribed, or translated into any language or computer format, in any form or by any means without prior written permission of: Silicon Image, Inc. 1060 East Arques Ave. Sunnyvale CA 94085 Silicon Image and the Silicon Image logo are the trademarks or registered trademarks of Silicon Image, Inc. ("Silicon Image") in the United States and other countries. The information contained in this document is provided by Silicon Image merely as a courtesy and is, to the knowledge of Silicon Image, accurate. However, Silicon Image is under no obligation to update and/or keep current the information contained in the document. Silicon Image disclaims any and all liability resulting from the use of the information contained in this document and any reliance on such information shall be at the sole risk of the relying party. Silicon Image expressly reserves the right to change the information contained herein without notice. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page ii Document Number: DOC-0057XX-450 Version 1.0 Contents 1 Introduction ....................................................................................................................................1 Overview.......................................................................................................................................................1 Request Command Syntax .....................................................................................................................................1 Response Message Syntax .....................................................................................................................................1 Multiple Response Messages .................................................................................................................................2 Summary of GET Commands ................................................................................................................................2 Summary of GET Responses .................................................................................................................................3 Summary of SET Commands.................................................................................................................................4 Summary of SET Responses ..................................................................................................................................4 Cascaded Configurations .......................................................................................................................................4 Sample Command and Response Packets ..............................................................................................................4 2 GET Commands .............................................................................................................................6 Get I2C Interface Protocol Version.............................................................................................................6 Get Enclosure Status ..................................................................................................................................7 Get Enclosure Serial Number.....................................................................................................................8 Get Enclosure Firmware Version...............................................................................................................9 Get Chip Type ............................................................................................................................................10 Get Enclosure Temperature .....................................................................................................................11 Get System Fan Status .............................................................................................................................12 Get Power Supply Fan Status ..................................................................................................................13 Get Drive 0 Status .....................................................................................................................................14 Get Drive 0 Rebuild/Verify Progress .......................................................................................................15 Get Drive 0 Manufacturer..........................................................................................................................16 Get Drive 0 Serial Number ........................................................................................................................17 Get Drive 0 Model Number .......................................................................................................................18 Get Drive 0 Capacity .................................................................................................................................19 Get Drive 1 Status .....................................................................................................................................20 Get Drive 1 Rebuild/Verify Progress .......................................................................................................21 Get Drive 1 Manufacturer..........................................................................................................................22 Get Drive 1 Serial Number ........................................................................................................................23 Get Drive 1 Model Number .......................................................................................................................24 Get Drive 1 Capacity .................................................................................................................................25 Get Partition 0 Capacity............................................................................................................................26 Get Partition 1 Capacity............................................................................................................................27 2 SteelVine SiI57XX Series I C Programmer’s Guide Page iii Document Number: DOC-0057XX-450 Version 1.0 Get Partition 2 Capacity............................................................................................................................28 Get Partition 3 Capacity............................................................................................................................29 Get RAID Mode ..........................................................................................................................................30 Get Partition 0 RAID Mode........................................................................................................................31 Get Partition 1 RAID Mode........................................................................................................................32 Get Partition 2 RAID Mode........................................................................................................................33 Get Partition 3 RAID Mode........................................................................................................................34 Get Policies ................................................................................................................................................35 Get GPI-7 Status ........................................................................................................................................36 Get GPI-9 Status ........................................................................................................................................37 Get Drive Locking Index Value ................................................................................................................38 3 SET Commands............................................................................................................................39 Set Alarm Off/On .......................................................................................................................................39 Clear/Set GPO-0 Status.............................................................................................................................40 Clear/Set GPO-1 Status.............................................................................................................................41 Clear/Set GPO-2 Status.............................................................................................................................42 Clear/Set GPO-3 Status.............................................................................................................................43 Clear/Set GPO-4 Status.............................................................................................................................44 Set RAID Mode...........................................................................................................................................45 2 SteelVine SiI57XX Series I C Programmer’s Guide Page iv Document Number: DOC-0057XX-440 Version 1.0 1 Introduction Overview This document describes the commands and responses that are available for managing the 57XX-Series of the SteelVine Storage Processors using version 2.1 of the I2C bus specification protocol for out-of-band communication from an external controller that behaves as a master device on the I2C bus, such as a PIC processor. Each SteelVine Storage Processor on the I2C bus behaves as a slave device, so all commands must be initiated by the master device. Each SteelVine Storage Processor on the I2C bus must also have its own unique I2C slave address. The SteelVine Storage Processor will reply with a response, so the external controller must issue a READ operation after sending any command. A variety of GET and SET commands are available for reading and writing various attributes of the SteelVine Storage Processor. Chapter 2 describes all of the GET commands and responses, and Chapter 3 describes all of the SET commands and responses. In all cases, all commands and responses use the syntax described below. Request Command Syntax The syntax for all request commands is shown below: Byte 0 7 1 Slave Address Byte 1 0 R/W 7 M 6 0 Byte 2 5 0 Opcode 7 Byte 3 0 7 Data-0 Byte 4 0 Data-1 7 0 Data-2 Byte 0: Bits 7:1 Bit 0 Slave Address R/W bit: Read = 1 and Write = 0 Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 0 for Set (Write); 1 for Get (Read) – same as R/W bit in Byte 0 Must be set to 0 Command Opcode Bytes 2-4: Command parameter bytes as needed for each command (refer to Chapters 2 & 3 for details) Response Message Syntax The syntax for all response messages is shown below: 7 M 6 E Byte 0: Byte 0 5 0 Opcode Bit 7 Bit 6 Bits 5:0 Byte 1 7 Byte 2 0 Data-1 7 Byte 3 0 Data-2 7 0 Data-3 Command Mode: 0 for Set (Write) 1 for Get (Read) Error status: 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (same value that was included in the request command) Bytes 1-3: Response data bytes as needed (if the Error status in Byte 0, Bit 6 is 0) Byte 1 or 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode SteelVine SiI57XX Series I2C Programmer’s Guide Page 1 Document Number: DOC-0057XX-450 Version 1.0 Multiple Response Messages For some GET commands, the length of the response message may contain more bytes than what can be included in a single response message. In those cases, the request command must be issued multiple times with a sequential index number that is incremented for each partial response, and the response must be read before sending the next request command. It is not necessary to send the GET commands in sequence-number order, although it is a good practice to do so. Refer to the specific parameters for each command for more information. Summary of GET Commands The following GET commands are available for reading various attributes of the SteelVine Storage Processor. Sending a GET command does not modify the current state of the device. Refer to Chapter 2 for the detailed description of each GET command. Command Description Reserved (do not use) Get I2C Interface Protocol Version Get Enclosure Status Get Enclosure Serial Number Get Enclosure Firmware Version Get Chip Type Get Enclosure Temperature Get System Fan Status Get Power Supply Fan Status Get Drive 0 Status Get Drive 0 Rebuild/Verify Progress Get Drive 0 Manufacturer Get Drive 0 Serial Number Get Drive 0 Model Number Get Drive 0 Capacity Get Drive 1 Status Get Drive 1 Rebuild/Verify Progress Get Drive 1 Manufacturer Get Drive 1 Serial Number Get Drive 1 Model Number Get Drive 1 Capacity Get Partition 0 Capacity Get Partition 1 Capacity Get Partition 2 Capacity Get Partition 3 Capacity Get RAID Mode Get Partition 0 RAID Mode Get Partition 1 RAID Mode Get Partition 2 RAID Mode Get Partition 3 RAID Mode Get Policies Get GPI-7 Status Get GPI-9 Status Get Drive Locking Index Value 7 R/W 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Byte 1 6 5 0 Opcode 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 27 0 28 0 29 0 30 0 31 0 32 0 33 Byte 2 Byte 3 Byte 4 Data-0 0 N/A N/A Sequence: 0-3 N/A N/A N/A N/A N/A N/A Sequence: 0-7 N/A Sequence: 0-9 Sequence: 0-19 Sequence: 0-3 N/A Sequence: 0-7 N/A Sequence: 0-9 Sequence: 0-19 Sequence: 0-3 Sequence: 0-3 Sequence: 0-3 Sequence: 0-3 Sequence: 0-3 N/A N/A N/A N/A N/A N/A N/A N/A Sequence: 0-1 Data-1 0 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A Data-2 0 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A Note: For clarity, Byte 0 is not shown in the table above. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 2 Document Number: DOC-0057XX-450 Version 1.0 Summary of GET Responses The following table shows the responses are generated for each GET Command. Refer to Chapter 2 for the detailed description of each response and any error codes. Command Description Get I2C Interface Protocol Version Get Enclosure Status Get Enclosure Serial Number 7 R/W 1 1 1 Byte 0 6 5 0 E Opcode E 1 E 2 E 3 Get Enclosure Firmware Version Get Chip Type Get Enclosure Temperature Get System Fan Status Get Power Supply Fan Status Get Drive 0 Status Get Drive 0 Rebuild/Verify Progress 1 1 1 1 1 1 1 E E E E E E E 4 5 6 7 8 9 10 Get Drive 0 Manufacturer Get Drive 0 Serial Number 1 1 E E 11 12 Get Drive 0 Model Number 1 E 13 Get Drive 0 Capacity 1 E 14 Get Drive 1 Status Get Drive 1 Rebuild/Verify Progress 1 1 E E 15 16 Get Drive 1 Manufacturer Get Drive 1 Serial Number 1 1 E E 17 18 Get Drive 1 Model Number 1 E 19 Get Drive 1 Capacity 1 E 20 Get Partition 0 Capacity 1 E 21 Get Partition 1 Capacity 1 E 22 Get Partition 2 Capacity 1 E 23 Get Partition 3 Capacity 1 E 24 Get RAID Mode 1 E 25 Get Partition 0 RAID Mode Get Partition 1 RAID Mode Get Partition 2 RAID Mode Get Partition 3 RAID Mode Get Policies Get GPI-7 Status Get GPI-9 Status Get Drive Locking Index Value 1 1 1 1 1 1 1 1 E E E E E E E E 26 27 28 29 30 31 32 33 Byte 1 Byte 2 Byte 3 Data-0 Version 0 or 1 Sequence 0-3 Version Version Temperature Fan Speed Fan Speed Drive Status Sequence 0-7 Manufacturer Sequence 0-9 Sequence 0-19 Sequence 0-3 Drive Status Sequence 0-7 Manufacturer Sequence 0-9 Sequence 0-19 Sequence 0-3 Sequence 0-3 Sequence 0-3 Sequence 0-3 Sequence 0-3 RAID Mode Data-1 Version N/A Serial Number Version Version Temperature Fan Speed Fan Speed N/A Number of Sectors Manufacturer Serial Number Model Number Capacity Data-2 Version N/A Serial Number N/A N/A N/A N/A N/A N/A Number of Sectors N/A Serial Number Model Number Capacity N/A Number of Sectors Manufacturer Serial Number Model Number Capacity N/A Number of Sectors N/A Serial Number Model Number Capacity Capacity Capacity Capacity Capacity Capacity Capacity Capacity Capacity Config Pin Settings N/A N/A N/A N/A N/A N/A N/A Index N/A RAID Mode RAID Mode RAID Mode RAID Mode N/A N/A N/A Sequence 0-1 Note: The READ command for the response should allow a timeout duration of up to one second. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 3 N/A N/A N/A N/A N/A N/A N/A Index Document Number: DOC-0057XX-450 Version 1.0 Summary of SET Commands The following SET commands are available. Sending a SET command will affect the current state of the device. Refer to Chapter 3 for the detailed description of each SET command. Command Description 7 R/W 0 0 0 0 0 0 0 Set Alarm Off/On Clear/Set GPO-0 Status Clear/Set GPO-1 Status Clear/Set GPO-2 Status Clear/Set GPO-3 Status Clear/Set GPO-4 Status Set Raid Mode Byte 1 6 5 0 Opcode 0 34 0 35 0 36 0 37 0 38 0 39 0 40 Byte 2 Data-0 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 Mode Note: For clarity, Byte 0 is not shown in the table above. Summary of SET Responses All SET responses return an error code to indicate the completion status of the command. No other values are returned in a SET response. Refer to Chapter 3 for a description of the error codes. Cascaded Configurations Each node in a cascaded configuration should have its own unique slave address, so the GET and SET commands described in this document will apply to each node independently of any other node. Sample Command and Response Packets The following sample commands and responses illustrate the communication session between the external I2C bus master device (such as a PIC processor) and the response(s) from the SteelVine Storage Processor. In all cases, assume that a “Get I2C Protocol Version” command has already been issued to open a communication session. Example 1 – Get Drive 0 Status (Opcode=9) Assume that hard disk drive 0 is currently rebuilding a RAID-1 mirror set, and that there are no errors. Request Command (Slave Address in Byte 0 is omitted): 7 1 6 0 Byte 1 5 0 9 0x89 Response Message: 7 1 6 0 Byte 0 5 Byte 1 0 9 0x89 7 0 Drive 0 Status (bit 1 set for rebuild) 0x02 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 4 Document Number: DOC-0057XX-450 Version 1.0 Example 2 – Get Drive 1 Capacity (Opcode=20) Assume that hard disk drive 1 has a capacity of 100,000,000 sectors (0x5F5E100 in hex), and that there are no errors. First Request Command (Slave Address in Byte 0 is omitted): 7 1 6 0 Byte 1 5 0 20 0x94 Byte 2 7 0 Sequence: 0 - 3 0x00 First Response Message: 7 1 6 0 Byte 0 5 0 20 0x94 Byte 1 7 0 Sequence Number 0x00 Byte 2 7 0 Capacity (1st byte) 0x00 Byte 3 7 0 Capacity (2nd byte) 0x00 Second Request Command (Slave address in Byte 0 is omitted): 7 1 6 0 Byte 1 5 0 20 0x94 Byte 2 7 0 Sequence: 0 - 3 0x01 Second Response Message: 7 1 6 0 Byte 0 5 0 20 0x94 Byte 1 7 0 Sequence Number 0x01 Byte 2 7 0 Capacity (3rd byte) 0x00 Byte 3 7 0 Capacity (4th byte) 0x00 Third Request Command (Slave address in Byte 0 is omitted): 7 1 6 0 Byte 1 5 0 20 0x94 Byte 2 7 0 Sequence: 0 - 3 0x02 Third Response Message (Slave address in Byte 0 is omitted): 7 1 6 0 Byte 0 5 0 20 0x94 Byte 1 7 0 Sequence Number 0x02 Byte 2 7 0 Capacity (5th byte) 0x05 Byte 3 7 0 Capacity (6th byte) 0xF5 Fourth Request Command (Slave address in Byte 0 is omitted): 7 1 6 0 Byte 1 5 0 20 0x94 Byte 2 7 0 Sequence: 0 - 3 0x03 Fourth Response Message: 7 1 6 0 Byte 0 5 0 20 0x94 Byte 1 7 0 Sequence Number 0x03 Byte 2 7 0 Capacity (7th byte) 0xE1 2 Byte 3 7 0 Capacity (8th byte) 0x00 SteelVine SiI57XX Series I C Programmer’s Guide Page 5 Document Number: DOC-0057XX-450 Version 1.0 2 GET Commands Get I2C Interface Protocol Version The Get I2C Interface Protocol Version command returns the version number of the I2C protocol that is supported by the SteelVine Storage Processor. This command also serves as an “Open” command for any I2C communication session, and it must be the first command issued after the SteelVine Storage Processor starts . This command can also be issued any time after startup. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (1) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 1 Bit 7 Bit 6 Bits 5:0 Byte 1 7 0 Version or Error Code Byte 2 7 Byte 3 0 Version 7 0 Version Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (1) Bytes 1-3: Version number, one character per byte (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode Notes This command should be re-tried up to 10 times with one-second timeout duration for each retry attempt, to allow sufficient time for the SteelVine Storage Processor to startup and become ready. Error code 1 can never be returned for this command. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 6 Document Number: DOC-0057XX-450 Version 1.0 Get Enclosure Status The Get Enclosure Status command returns the SATA or USB host link status as absent or present. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 2 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (2) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 2 Bit 7 Bit 6 Bits 5:0 7 0 Host Link Status or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (2) Byte 1: Host Link Status: 0 = present; 1 = absent (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 7 Document Number: DOC-0057XX-450 Version 1.0 Get Enclosure Serial Number The Get Enclosure Status command returns the eight-character Serial Number from the SteelVine Storage Processor Enclosure. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the serial number will be returned two bytes at a time in the corresponding ten responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 Byte 2 5 0 3 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (3) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 3 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Serial Number (byte n) or Error Code 7 0 Serial Number (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (3) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Serial Number as ASCII characters (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 10 = Error retrieving the serial number from the Serial EEPROM 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 8 Document Number: DOC-0057XX-450 Version 1.0 Get Enclosure Firmware Version The Get Enclosure Firmware Version command returns the firmware revision number from the SteelVine Storage Processor. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 4 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (4) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 4 Bit 7 Bit 6 Bits 5:0 7 Byte 2 0 Firmware Version or Error Code 7 0 Version Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (4) Bytes 1-2: The firmware version number as an integer value (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 9 Document Number: DOC-0057XX-450 Version 1.0 Get Chip Type The Get Chip Type command returns the chip-type identifier from the SteelVine Storage Processor. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 5 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (5) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 5 Bit 7 Bit 6 Bits 5:0 7 Byte 2 0 Chip Identifier or Error Code 7 0 Chip Identifier Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (5) Bytes 1-2: The chip identifier (if the Error status in Byte 0, Bit 6 is 0) 0xff = SiI5744 0xfe = SiI5734 0x7f = SiI5723 0x7e = SiI5733 Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 10 Document Number: DOC-0057XX-450 Version 1.0 Get Enclosure Temperature The Get Enclosure Temperature command returns the temperature of the SteelVine Storage Processor enclosure as a 16-bit integer measured in degrees Celsius. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 6 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (6) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 6 Bit 7 Bit 6 Bits 5:0 Byte 1 7 0 Temperature (MSB) or Error Code Byte 2 7 0 Temperature (LSB) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (6) Bytes 1-2: The enclosure temperature in degrees Celsius as an integer value (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 9 = No LM87 sensor is present in the enclosure 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 11 Document Number: DOC-0057XX-450 Version 1.0 Get System Fan Status The Get System Fan Status command returns the speed of the system cooling fan in the SteelVine Storage Processor enclosure as a 16-bit integer that indicates the number of clock ticks per revolution. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 7 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (7) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 7 Bit 7 Bit 6 Bits 5:0 Byte 1 7 0 System Fan Speed (MSB) or Error Code Byte 2 7 0 System Fan Speed (LSB) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (7) Bytes 1-2: The system fan speed measured in ticks per revolution (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 9 = No LM87 sensor is present in the enclosure 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 12 Document Number: DOC-0057XX-450 Version 1.0 Get Power Supply Fan Status The Get Power Supply Fan Status command returns the speed of the power supply cooling fan in the SteelVine Storage Processor enclosure as a 16-bit integer that indicates the number of clock ticks per revolution. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 8 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (8) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 8 Bit 7 Bit 6 Bits 5:0 Byte 1 7 0 Power Supply Fan Speed (MSB) or Error Code Byte 2 7 0 Power Supply Fan Speed (LSB) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (8) Bytes 1-2: The power supply fan speed measured in ticks per revolution (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 9 = No LM87 sensor is present in the enclosure 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 13 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Status The Get Drive 0 Status command returns the status of the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor. Command Syntax Byte 0 Byte 1 7 1 Slave Address 0 R/W 7 1 6 0 5 0 9 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (9) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 9 Bit 7 Bit 6 Bits 5:0 7 0 Drive 0 Status or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (9) Byte 1: The drive status indicated by the following bits being set (if the Error status in Byte 0, Bit 6 is 0): Bit 0 = Online Bit 1 = Rebuilding a RAID1 mirror Bit 2 = Verifying a RAID1 mirror Bit 3 = Unplugged Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 14 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Rebuild/Verify Progress The Get Drive 0 Rebuild/Verify Progress command returns the progress of a rebuild or verify operation on the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor, and includes the following information: • • Number of hard disk drive sectors that have been rebuilt or verified so far (Sequences 0 through 3) Number of hard disk drive sectors that are remaining to be rebuild or verified (Sequences 4 through 7) For each numeric value, eight bytes are used to return the value, conveyed as four sequences of two bytes. Byte 2 of Sequences 0 and 4 is considered the most significant byte. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 10 7 0 Sequence: 0 - 7 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 7 Command Mode: 1 for GET Must be set to 0 Command Opcode (10) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 10 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 0 Number of Sectors (byte n) or Error Code Byte 3 7 0 Number of Sectors (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (10) Sequence number Bytes 2-3: The next two bytes of the number of sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 11 = Drive status is other than Rebuild or Verify Example Assuming that a hard disk drive contains 1000 sectors and is 25% complete, the number of sectors that have been rebuilt or verified will be 250, and the number of sectors remaining to be rebuilt or verified will be 750. These values are only shown to illustrate the concept; the actual number of sectors will depend on the physical capacity of the hard disk drive. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 15 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Manufacturer The Get Drive 0 Manufacturer command returns a two-character identifier of the manufacturer of the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 11 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (11) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 11 Bit 7 Bit 6 Bits 5:0 Byte 1 7 0 Manufacturer Code (first byte) or Error Code Byte 2 7 0 Manufacturer Code (second byte) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (11) Bytes 1-2: The two ASCII characters that represent the manufacturer (if the Error status in Byte 0, Bit 6 is 0): WD = Western Digital ST = Seagate Ma = Maxtor (second byte is lower case “a”) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 16 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Serial Number The Get Drive 0 Serial Number command returns the 20-character serial number from the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor Enclosure. This command must be sent ten times (with an increasing sequence number ranging from 0 to 9) and the serial number will be returned two bytes at a time in the corresponding ten responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 12 7 0 Sequence: 0 - 9 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 9 Command Mode: 1 for GET Must be set to 0 Command Opcode (12) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 12 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Serial Number (byte n) or Error Code 7 0 Serial Number (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (12) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Serial Number as ASCII characters (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 17 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Model Number The Get Drive 0 Model Number command returns the 40-character model number from the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor Enclosure. This command must be sent twenty times (with an increasing sequence number ranging from 0 to 19) and the model number will be returned two bytes at a time in the corresponding 20 responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 13 7 0 Sequence: 0 - 19 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 19 Command Mode: 1 for GET Must be set to 0 Command Opcode (13) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 13 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Model Number (byte n) or Error Code 7 0 Model Number (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (13) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Model Number as ASCII characters (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 18 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 0 Capacity The Get Drive 0 Capacity command returns the storage capacity (measured in sectors) of the hard disk drive that is connected to device port 0 of the SteelVine Storage Processor Enclosure. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 14 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (14) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 14 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (14) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 19 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Status The Get Drive 1 Status command returns the status of the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 15 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (15) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 15 Bit 7 Bit 6 Bits 5:0 7 0 Drive 0 Status or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (15) Byte 1: The drive status indicated by the following bits being set (if the Error status in Byte 0, Bit 6 is 0): Bit 0 = Online Bit 1 = Rebuilding a RAID1 mirror Bit 2 = Verifying a RAID1 mirror Bit 3 = Unplugged Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 20 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Rebuild/Verify Progress The Get Drive 1 Rebuild/Verify Progress command returns the progress of a rebuild or verify operation on the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor, and includes the following information: • • Number of hard disk drive sectors that have been rebuilt or verified so far (Sequences 0 through 3) Number of hard disk drive sectors that are remaining to be rebuild or verified (Sequences 4 through 7) For each numeric value, eight bytes are used to return the value, conveyed as four sequences of two bytes. Byte 2 of Sequences 0 and 4 is considered the most significant byte. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 M 6 0 Byte 2 5 0 16 7 0 Sequence: 0 - 7 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 7 Command Mode: 1 for GET Must be set to 0 Command Opcode (16) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 16 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 0 Number of Sectors (byte n) or Error Code Byte 3 7 0 Number of Sectors (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (16) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the number of sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 11 = Drive status is other than Rebuild or Verify Example Assuming that a hard disk drive contains 1000 sectors and is 25% complete, the number of sectors that have been rebuilt or verified will be 250, and the number of sectors remaining to be rebuilt or verified will be 750. These values are only shown to illustrate the concept; the actual number of sectors will depend on the physical capacity of the hard disk drive. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 21 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Manufacturer The Get Drive 1 Manufacturer command returns a two-character identifier of the manufacturer of the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 17 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (17) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 17 Bit 7 Bit 6 Bits 5:0 7 Byte 2 0 Manufacturer (first byte) or Error Code 7 0 Manufacturer (second byte) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (17) Bytes 1-2: The two ASCII characters that represent the manufacturer (if the Error status in Byte 0, Bit 6 is 0): WD = Western Digital ST = Seagate MA = Maxtor Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 22 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Serial Number The Get Drive 1 Serial Number command returns the 20-character serial number from the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor Enclosure. This command must be sent ten times (with an increasing sequence number ranging from 0 to 9) and the serial number will be returned two bytes at a time in the corresponding ten responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 18 7 0 Sequence: 0 - 9 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 9 Command Mode: 1 for GET Must be set to 0 Command Opcode (18) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 18 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Serial Number (byte n) or Error Code 7 0 Serial Number (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (18) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Serial Number as ASCII characters (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 23 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Model Number The Get Drive 1 Model Number command returns the 40-character model number from the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor Enclosure. This command must be sent twenty times (with an increasing sequence number ranging from 0 to 19) and the model number will be returned two bytes at a time in the corresponding 20 responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 19 7 0 Sequence: 0 - 19 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 19 Command Mode: 1 for GET Must be set to 0 Command Opcode (19) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 19 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Model Number (byte n) or Error Code 7 0 Model Number (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (19) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Model Number as ASCII characters (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 24 Document Number: DOC-0057XX-450 Version 1.0 Get Drive 1 Capacity The Get Drive 1 Capacity command returns the storage capacity (measured in sectors) of the hard disk drive that is connected to device port 1 of the SteelVine Storage Processor Enclosure. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 20 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (20) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 20 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (20) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Drive is not present 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 25 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 0 Capacity The Get Partition 0 Capacity command returns the storage capacity (measured in sectors) of the first virtual volume that is presented by the SteelVine Storage Processor. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 21 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (21) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 21 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (21) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 26 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 1 Capacity The Get Partition 1 Capacity command returns the storage capacity (measured in sectors) of the second virtual volume that is presented by the SteelVine Storage Processor. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 22 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (22) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 22 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (22) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 27 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 2 Capacity The Get Partition 2 Capacity command returns the storage capacity (measured in sectors) of the third virtual volume that is presented by the SteelVine Storage Processor. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 23 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (23) Bytes 3-4: Not applicable (can be set to 0) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 23 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (23) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 28 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 3 Capacity The Get Partition 3 Capacity command returns the storage capacity (measured in sectors) of the fourth virtual volume that is presented by the SteelVine Storage Processor. This command must be sent four times (with an increasing sequence number ranging from 0 to 3) and the capacity will be returned two bytes at a time in the corresponding four responses. For example, the first two bytes will be return by the first command, the second two bytes will be returned by the second command, and so on. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 24 7 0 Sequence: 0 - 3 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 3 Command Mode: 1 for GET Must be set to 0 Command Opcode (24) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 24 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 Byte 3 0 Capacity (byte n) or Error Code 7 0 Capacity (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (24) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the capacity in sectors (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 29 Document Number: DOC-0057XX-450 Version 1.0 Get RAID Mode The Get RAID Mode command returns the current RAID mode and the settings of the Config [2:0] pins of the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 25 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (25) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 25 Bit 7 Bit 6 Bits 5:0 7 0 RAID Mode or Error Code Byte 2 7 0 Config Pin Settings Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (25) Byte 1: The current RAID mode (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE 0x4 = SAFE33 0x5 = SAFE50 Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode Byte 2: The Configuration Pin settings (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE 0x4 = SAFE33 0x5 = SAFE50 0x7 = GUI 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 30 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 0 RAID Mode The Get Partition 0 RAID Mode command returns the RAID mode for the first virtual volume that is created by the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 26 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (26) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 26 Bit 7 Bit 6 Bits 5:0 7 0 RAID Mode or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (26) Byte 1: The RAID mode for Partition 0 (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 31 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 1 RAID Mode The Get Partition 1 RAID Mode command returns the RAID mode for the second virtual volume that is created by the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 27 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (27) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 27 Bit 7 Bit 6 Bits 5:0 7 0 RAID Mode or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (27) Byte 1: The RAID mode for Partition 0 (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 32 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 2 RAID Mode The Get Partition 2 Mode command returns the RAID mode for the third virtual volume that is created by the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 28 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (28) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 28 Bit 7 Bit 6 Bits 5:0 7 0 RAID Mode or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (28) Byte 1: The RAID mode for Partition 0 (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 33 Document Number: DOC-0057XX-450 Version 1.0 Get Partition 3 RAID Mode The Get Partition 3 Mode command returns the RAID mode for the fourth virtual volume that is created by the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 29 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (29) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 29 Bit 7 Bit 6 Bits 5:0 7 0 RAID Mode or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (29) Byte 1: The RAID mode for Partition 0 (if the Error status in Byte 0, Bit 6 is 0): 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 13 = Partition does not exist 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 34 Document Number: DOC-0057XX-450 Version 1.0 Get Policies The Get Policies command returns the Rebuild and Volume Expansion Policy mode settings for the SteelVine Storage Processor, as defined by GPI pins 5/6/8 and the SteelVine Manager GUI. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 30 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (30) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 30 Bit 7 Bit 6 Bits 5:0 7 0 Policy Bits or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (30) Byte 1: The Policy bits for the following attributes (if the Error status in Byte 0, Bit 6 is 0): Bit 0 = Auto Rebuild (0 = disabled; 1 = enabled) Bit 1 = Verify after Rebuild (0 = disabled; 1 = enabled) Bit 2 = Init Rebuild (0 = disabled; 1 = enabled) Bit 3 = Auto Expansion (0 = disabled; 1 = enabled) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 35 Document Number: DOC-0057XX-450 Version 1.0 Get GPI-7 Status The Get GPI-7 Status command returns the status of GPI pin 7 (low or high). Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 31 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (31) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 31 Bit 7 Bit 6 Bits 5:0 7 0 GPI-7 Status or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (31) Byte 1: GPI-7 Status: 0 = low; 1 = high (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 36 Document Number: DOC-0057XX-450 Version 1.0 Get GPI-9 Status The Get GPI-9 Status command returns the status of GPI pin 9 (low or high). Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 5 0 32 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Command Mode: 1 for GET Must be set to 0 Command Opcode (32) Response Syntax 7 1 6 E Byte 0: Byte 0 5 Byte 1 0 32 Bit 7 Bit 6 Bits 5:0 7 0 GPI-9 Status or Error Code Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (32) Byte 1: GPI-7 Status: 0 = low; 1 = high (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 37 Document Number: DOC-0057XX-450 Version 1.0 Get Drive Locking Index Value The Get Drive Locking Index Value command returns the numeric index value of the Automatic Drive Locking password that is encoded into the SiI5733 Storage Processor chip. Since the Drive Locking Index is a 32-bit numeric value, this command must be sent twice (with an increasing sequence number ranging from 0 to 1) and the index value will be returned two bytes at a time in the corresponding responses. For example, the first two bytes will be return by the first command, and the second two bytes will be returned by the second command. Both commands must be sent in the proper order. The most significant byte is Byte 2 of the Sequence 0 response message. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 33 7 0 Sequence: 0 - 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: Sequence Number of 0 through 1 Command Mode: 1 for GET Must be set to 0 Command Opcode (33) Response Syntax 7 1 6 E Byte 0: Byte 0 5 0 33 Bit 7 Bit 6 Bits 5:0 Byte 1: Byte 1 7 0 Sequence Number Byte 2 7 0 Drive Locking Index Value (byte n) or Error Code Byte 3 7 0 Drive Locking Index Value (byte n+1) Command Mode: Error status: 1 for GET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (33) Sequence number (if the Error status in Byte 0, Bit 6 is 0) Bytes 2-3: The next two bytes of the Drive Locking Index Value (if the Error status in Byte 0, Bit 6 is 0) Byte 2: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 7 = Invalid Sequence Number 12 = Chip type is not SiI5733 16 = Cannot read OTP ROM 17 = Invalid OTP ROM checksum 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 38 Document Number: DOC-0057XX-450 Version 1.0 3 SET Commands Set Alarm Off/On The Set Alarm Off/On command sets or clears the Alarm (GPO-5) pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 34 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (34) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 34 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (34) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 39 Document Number: DOC-0057XX-450 Version 1.0 Clear/Set GPO-0 Status The Clear/Set GPO-0 Status command sets or clears the GPO-0 pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 35 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (35) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 35 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (35) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 40 Document Number: DOC-0057XX-450 Version 1.0 Clear/Set GPO-1 Status The Clear/Set GPO-1 Status command sets or clears the GPO-1 pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 36 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (36) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 36 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (36) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 41 Document Number: DOC-0057XX-450 Version 1.0 Clear/Set GPO-2 Status The Clear/Set GPO-2 Status command sets or clears the GPO-2 pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 37 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (37) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 37 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (37) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 42 Document Number: DOC-0057XX-450 Version 1.0 Clear/Set GPO-3 Status The Clear/Set GPO-3 Status command sets or clears the GPO-3 pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 38 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (38) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 38 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (38) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 43 Document Number: DOC-0057XX-450 Version 1.0 Clear/Set GPO-4 Status The Clear/Set GPO-4 Status command sets or clears the GPO-4 pin on the SteelVine Storage Processor. Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 39 0 0 or 1 Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: 0 for OFF (low); 1 for ON (high) Command Mode: 0 for SET Must be set to 0 Command Opcode (39) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 39 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (39) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 44 Document Number: DOC-0057XX-450 Version 1.0 Set RAID Mode The Set RAID Mode command sets a Basic RAID mode for the SteelVine Storage Processor (equivalent to setting the CONFIG[2:0] pins to an explicit setting). Command Syntax Byte 0 7 1 Slave Address Byte 1 0 R/W 7 1 6 0 Byte 2 5 0 7 40 0 RAID Mode Byte 0: The slave address plus the R/W bit according to the I2C standard. Byte 1: Bit 7 Bit 6 Bits 5:0 Byte 2: RAID Mode setting: 0x0 = BIG 0x1 = JBOD 0x2 = FAST 0x3 = SAFE 0x4 = SAFE33 0x5 = SAFE50 Command Mode: 0 for SET Must be set to 0 Command Opcode (40) Response Syntax 7 0 6 E Byte 0: Byte 0 5 Byte 1 0 40 Bit 7 Bit 6 Bits 5:0 7 0 Error Code Command Mode: Error status: 0 for SET 0 for no error 1 if an error was detected; the error code is included in Byte 1 Command Opcode (40) Byte 1: Not applicable (if the Error status in Byte 0, Bit 6 is 0) Byte 1: Error code (if the Error status in Byte 0, Bit 6 is 1) 1 = Open Command (Get I2C Interface Protocol Version) has not been received 2 = Invalid Command Opcode 3 = Invalid Command mode for command Opcode (e.g., mode = 1 for a SET command) 4 = Invalid number of bytes sent for Command Opcode 5 = Requested RAID mode is not supported by the specific chip-ID Notes This command is only effective when the CONFIG[2:0] pins are set to the GUI mode (111) and the SteelVine Storage Processor is reset. This command will be ignored for any other setting of the CONFIG[2:0] pins. 2 SteelVine SiI57XX Series I C Programmer’s Guide Page 45