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

CDB commands support both set and get operations.

  • The set operation is to send CMD Data.

If there is no CMD Data to send, you should send an empty JSON object {}, e.g.

>> 0/0 PX_CDB_ABORT_FW_DOWNLOAD [0] {}
>> <OK>
  • The get operation is to read REPLY Status 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] {"block_address": 12, "firmware_block": "0x00010203040506070809"}
>> <OK>
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] ?
>> <PENDING>                                    # This indicates that the CDB status is not available.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] ?
>> <PENDING>                                    # This indicates that the CDB status is not available.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] ?
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] {"cdb_status": "0x83"} # This indicates that the CDB status is In Progress.
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] ?
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] {"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] {"block_address": 12, "firmware_block": "0x00010203040506070809"}
>> 0/0 PX_CDB_WRITE_FW_BLOCK_EPL[0] ?
>> <NOTVALID>