CMS_OP_BLOCK_READ_MODULE_I2C (0x0B) - 4.0 English

Alveo Card Management Solution Subsystem Product Guide (PG348)

Document ID
PG348
Release Date
2023-11-10
Version
4.0 English
Table 1. CMS_OP_BLOCK_READ_MODULE_I2C (0x0B) Message Format
MAILBOX Offset 32-bit Word Field Type Field Description
0x00 [0] Host Request Message Message Header

31:24 Opcode (0xB)

23:0 Reserved

0x04 [1] Host Request Message Cage Select (0–1)
0x08 [2] Host Request Message Page Select (0–255)
0x0C [3] Host Request Message

Extended I2C Addressing

31:23 Reserved

22:18 CMIS Bank (0-31)

17 CMIS Bank Field Valid (0: False, 1:True)

16 I2C Address Field (0: 0xA0, 1: 0xA2) 1

15:1 Reserved

0 Lower/Upper Page Select (0: Lower, 1: Upper)
0x10 [4] CMS Response Message Response Size (in bytes)
0x14-end [5:end] CMS Response Message Response Payload (little endian)

31:24 Module I2C read data byte n+3

23:16 Module I2C read data byte n+2

15:8 Module I2C read data byte n+1

7:0 Module I2C read data byte n

  1. I2C address field 0xA2 only supported in SFP+ modules.
Table 2. CMS_OP_BLOCK_READ_MODULE_I2C (0x0B) Worked Example - QSFP Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0B000000 Write the request message header to MAILBOX Word 0 (Opcode).

Assumes HOST_MSG_OFFSET_REG = 0x1000.

Poke 0x29004 0x00000000 Select cage 0 via MAILBOX Word 1.
Poke 0x29008 0x00000003 Select page 3 via MAILBOX Word 2.
Poke 0x2900C 0x00000001 Select the upper page via MAILBOX Word 3. 1
Poke 0x28018 0x20 Set CONTROL_REG[5] to 1 to indicate a new request message is available
Peek 0x28018 Poll CONTROL_REG bit 5 until ‘0’ is received indicating the CMS response is available.
Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG.
Peek 0x29010 Read the number of bytes in the CMS Response payload.
Peek 0x29014-end Read module I2C read data from MAILBOX Word 5 until the end.
  1. CMIS Bank, CMIS Bank Valid and I2C Address fields should all be set to 0x0 as they are unused in QSFP mode.
Table 3. CMS_OP_BLOCK_READ_MODULE_I2C (0x0B) Worked Example - DSFP Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0B000000 Write the request message header to MAILBOX Word 0 (Opcode).

Assumes HOST_MSG_OFFSET_REG = 0x1000.

Poke 0x29004 0x00000000 Select cage 0 via MAILBOX Word 1.
Poke 0x29008 0x00000000 Select page 0 via MAILBOX Word 2.
Poke 0x2900C 0x00020000 Select the lower page of CMIS bank 0 via MAILBOX Word 3.
Note: I2C Address field should be set to 0x0 as it is unused in DSFP mode.
Poke 0x28018 0x20 Set CONTROL_REG[5] to 1 to indicate a new request message is available
Peek 0x28018 Poll CONTROL_REG bit 5 until ‘0’ is received indicating the CMS response is available.
Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG.
Peek 0x29010 Read the number of bytes in the CMS Response payload.
Peek 0x29014-end Read module I2C read data from MAILBOX Word 5 until the end.
Table 4. CMS_OP_BLOCK_READ_MODULE_I2C (0x0B) Worked Example - SFP+ Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0B000000 Write the request message header to MAILBOX Word 0 (Opcode).

Assumes HOST_MSG_OFFSET_REG = 0x1000.

Poke 0x29004 0x00000001 Select cage 1 via MAILBOX Word 1.
Poke 0x29008 0x00000000 Select page 0 via MAILBOX Word 2.
Poke 0x2900C 0x00010000 Select the lower page of I2C Address field 0xA2 via MAILBOX Word 3.
Note: CMIS Bank and CMIS Bank Valid fields should be set to 0x0 as they are unused in SFP+ mode.
Poke 0x28018 0x20 Set CONTROL_REG[5] to 1 to indicate a new request message is available
Peek 0x28018 Poll CONTROL_REG bit 5 until ‘0’ is received indicating the CMS response is available.
Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG.
Peek 0x29010 Read the number of bytes in the CMS Response payload.
Peek 0x29014-end Read module I2C read data from MAILBOX Word 5 until the end.