CMS_OP_BYTE_READ_MODULE_I2C (0x0F) - 4.0 English

Alveo Card Management Solution Subsystem Product Guide (PG348)

Document ID
PG348
Release Date
2024-05-30
Version
4.0 English
Table 1. CMS_OP_BYTE_READ_MODULE_I2C (0x0F) Message Format
MAILBOX Offset 32-bit Word Field Type Field Description
0x00 [0] Host Request Message Message Header

31:24 Opcode (0xF)

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) (2)

15:1 Reserved

0 Lower/Upper Page Select (0: Lower, 1: Upper)
0x10 [4] Host Request Message Byte Offset (0-255) 1
0x14 [5] CMS Response Message Response Payload

31:8 Reserved

7:0 Module I2C read data byte

  1. 'Byte Offset' configuration should be consistent with 'Lower/Upper Page Select' configuration. For example, when accessing byte offsets 0-127 the lower page should be selected; when accessing bytes 128-255 the upper page should be selected.
  2. I2C address field 0xA2 only supported in SFP+ modules.
Table 2. CMS_OP_BYTE_READ_MODULE_I2C (0x0F) Worked Example - QSFP Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0F000000 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 0x29010 0x000000FF Select Byte Offset 255 via MAILBOX Word 4.
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 0x29014 Read module I2C read data byte from MAILBOX Word 5.
  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_BYTE_READ_MODULE_I2C (0x0F) Worked Example - DSFP Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0F000000 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 0x00020000 Select the lower page of CMIS bank 0 via MAILBOX Word 3. 1
Poke 0x29010 0x0000007F Select Byte Offset 127 via MAILBOX Word 4.
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 0x29014 Read module I2C read data byte from MAILBOX Word 5.
  1. I2C Address field should be set to 0x0 as it is unused in DSFP mode.
Table 4. CMS_OP_BYTE_READ_MODULE_I2C (0x0F) Worked Example - SFP+ Module
Host Action Function
Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0.
Poke 0x29000 0x0F000000 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 0x00000000 Select the lower page of I2C Address field 0xA0 via MAILBOX Word 3. 1
Poke 0x29010 0x00000000 Select Byte Offset 0 via MAILBOX Word 4.
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 0x29014 Read module I2C read data byte from MAILBOX Word 5.
  1. CMIS Bank and CMIS Bank Valid fields should be set to 0x0 as they are unused in SFP+ mode.