3.5.1. CDB

To understand the CDB commands, you should refer to the OIF-CMIS-05.3 specification Section 7.2, Section 7.3, and Section 7.4, and Section 9.

Important

Some CDB commands support both set and get operations.

  • The set operation is used to sends CMD Header and CMD Data.

  • The get operation is used to read REPLY Status, REPLY Header, and REPLY Data.

If you send a get command before the CDB Command Completion Flag (00h:8.6 or 00h:8.7) is set, you will receive a <PENDING> status message. This means that the command is still being processed and the result is not yet available.

For example:

>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] {"firmware_block": "0x00010203040506070809"}
>> <OK>
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] ?
>> <PENDING>                                    # This indicates that the CDB status is not available.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] ?
>> <PENDING>                                    # This indicates that the CDB status is not available.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] ?
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] {"cdb_status": "0x83"} # This indicates that the CDB status is In Progress.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] ?
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] {"cdb_status": "0x01"} # This indicates that the CDB status is On Success.

Important

If you send a get operation without sending the set operation of the same command, you will receive a <NOTVALID> status message.

For example:

>> 0/0 PX_CDB_WRITE_FW_BLOCK_LPL[0,12] {"firmware_block": "0x00010203040506070809"}
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0,12] ?
>> <NOTVALID>