Alveo Card Management Solution Subsystem v4.0
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Alveo Card Management Solution Subsystem v4.0 Product Guide PG348 (v4.0) April 29, 2022 Xilinx is creating an environment where employees, customers, and partners feel welcome and included. To that end, we’re removing non- inclusive language from our products and related collateral. We’ve launched an internal initiative to remove language that could exclude people or reinforce historical biases, including terms embedded in our software and IPs. You may still find examples of non-inclusive language in our older products as we work to make these changes and align with evolving industry standards. Follow this link for more information.
Table of Contents Chapter 1: Introduction.............................................................................................. 4 Features........................................................................................................................................ 4 IP Facts..........................................................................................................................................5 Navigating Content by Design Process.................................................................................... 6 Applications..................................................................................................................................6 Licensing and Ordering.............................................................................................................. 7 Chapter 2: Overview......................................................................................................8 Sensor Monitoring...................................................................................................................... 8 Mailbox Interface...................................................................................................................... 12 Satellite Controller Firmware Update..................................................................................... 13 Card Information Reporting.................................................................................................... 19 Network Plug-in Module Management.................................................................................. 25 SN1000 SoC Management........................................................................................................34 Chapter 3: Product Specification......................................................................... 40 Performance.............................................................................................................................. 40 Resource Utilization.................................................................................................................. 40 Port Descriptions.......................................................................................................................41 Register Space........................................................................................................................... 42 Chapter 4: Designing with the Subsystem..................................................... 54 Clocking...................................................................................................................................... 54 Resets..........................................................................................................................................54 Addressing................................................................................................................................. 54 Interrupts................................................................................................................................... 55 Chapter 5: Design Flow Steps.................................................................................56 Customizing and Generating the Subsystem........................................................................ 56 Constraining the Subsystem....................................................................................................57 Simulation.................................................................................................................................. 59 Synthesis and Implementation................................................................................................59 PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 2
Chapter 6: Example Design..................................................................................... 60 Overview.....................................................................................................................................60 Implementing the Example Design........................................................................................ 61 Example Design Files................................................................................................................ 62 Appendix A: Upgrading............................................................................................. 63 Changes from v3.0 to v4.0........................................................................................................63 Changes from v2.0 to v3.0........................................................................................................63 Changes from v1.0 to v2.0........................................................................................................64 Appendix B: Debugging.............................................................................................65 Finding Help on Xilinx.com...................................................................................................... 65 Debug Tools............................................................................................................................... 66 Hardware Debug....................................................................................................................... 67 Appendix C: Additional Resources and Legal Notices............................. 68 Xilinx Resources.........................................................................................................................68 Documentation Navigator and Design Hubs.........................................................................68 References..................................................................................................................................68 Revision History......................................................................................................................... 69 Please Read: Important Legal Notices................................................................................... 71 PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 3
Chapter 1: Introduction Chapter 1 Introduction The Alveo™ Card Management Solution Subsystem (CMS Subsystem) is a MicroBlaze™-based design compatible with U200, U250, U280, U50, U55, SN1000, X3522, and next-generation Alveo acceleration cards. CMS firmware autonomously reads sensor information from the satellite controller device over UART and writes instantaneous, maximum, and average values to a shared memory for collection by the host software. Sensor information is monitored and gathered for: • Voltages • Currents • Temperatures • Fan speed • Power The CMS solution also provides a message based mailbox interface to enable other card management functions including: • Satellite controller firmware updates • Card information reporting • Network plug-in module management • SN1000 SoC management Features Table 1: Features Feature Description Sensor Monitoring Reports key voltage rails, current values, temperatures, power values, and fan speed from the satellite controller. Card Information Reports card information from the satellite controller, including MAC addresses. Satellite Controller Firmware Update Provides satellite controller firmware update interface. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 4
Chapter 1: Introduction Table 1: Features (cont'd) Feature Description Network Plug-in Module Management Provides read/write access to network plug-in module I2C interface. Provides status and control of network plug-in module low speed I/O. IP Facts LogiCORE™ IP Facts Table Subsystem Specifics Supported Device Family1 UltraScale+™ Note: This solution is targeted to U200, U250, U280, U50, U55, SN1000, X3522, and next-generation Alveo cards. Supported User Interfaces AXI4-Lite Resources Performance and Resource Use web page Provided with Subsystem Design Files IP integrator HIP Subsystem Example Design VHDL/Verilog Test Bench N/A Constraints File Xilinx Design Constraints (XDC) Simulation Model N/A Supported S/W Driver N/A Tested Design Flows2 Design Entry Vivado® Design Suite Simulation N/A. Synthesis N/A Support All Vivado IP Change Logs Master Vivado IP Change Logs: Xilinx Answer Record 72775 Xilinx Support web page Notes: 1. For a complete list of supported devices, see the Vivado IP catalog. 2. For the supported versions of the tools, see the Xilinx Design Tools: Release Notes Guide. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 5
Chapter 1: Introduction Navigating Content by Design Process Xilinx® documentation is organized around a set of standard design processes to help you find relevant content for your current development task. All Versal® ACAP design process Design Hubs and the Design Flow Assistant materials can be found on the Xilinx.com website. This document covers the following design processes: • Hardware, IP, and Platform Development: Creating the PL IP blocks for the hardware platform, creating PL kernels, functional simulation, and evaluating the Vivado® timing, resource use, and power closure. Also involves developing the hardware platform for system integration. Topics in this document that apply to this design process include: • Port Descriptions • Register Space • Clocking • Resets • Chapter 6: Example Design Applications The CMS Subsystem is designed for in-band card management systems for plug-in PCIe® cards for servers typically deployed in data centers. A typical configuration deployment configuration is shown in Figure 1. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 6
Chapter 1: Introduction Figure 1: CMS Subsystem Typical Configuration Shell Host MicroBlaze Communication Register PCIe PCIe Sensors CPU Subsystem Map AXI BRAM MicroBlaze Satellite Controller (REG_MAP) Communication AXI UART UART ... Satellite GPIO Controller SM LMB Bus MicroBlaze BMC LMB Memory Management AXI RESET MicroBlaze LITE Network *HBM Temp1, Plug-in MicroBlaze HBM Temp2 Modules Reset AXI INT GPIO AXI *HBM GPIO IP ... (MB_RESETN _REG) WatchDog Timer Host Interrupt Controller Host (HOST_INTC) Interrupt Interrupt *HBM CATTRIP Controller Interrupt Server Alveo Card Management Solution (CMS) Subsystem *U50/U280/U55 and next-generation Alveo cards only X22660-120921 Licensing and Ordering This Xilinx® LogiCORE™ IP module is provided at no additional cost with the Xilinx Vivado® Design Suite under the terms of the Xilinx End User License. Information about other Xilinx® LogiCORE™ IP modules is available at the Xilinx Intellectual Property page. For information about pricing and availability of other Xilinx LogiCORE IP modules and tools, contact your local Xilinx sales representative. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 7
Chapter 2: Overview Chapter 2 Overview The CMS solution is the MicroBlaze™ microprocessor and firmware solution. Software configuration of the CMS subsystem is not required (the CMS is fixed function). The recommended satellite controller firmware versions compatible with the latest CMS firmware are listed in Table 2. Table 2: CMS and Satellite Controller Firmware Compatibility CMS Firmware Version Alveo Card Satellite Controller Firmware Version 1.2.23 (0x0C010217) U200/U250 4.6.20 1.3.3 (0x0C010303) U280 4.3.22 1.0.40 (0x0C010028) U50 5.2.18 1.5.25 (0x0C010519) U55 7.1.17 1.9.12 (0x0C01090C) SN1000 3.0.18 1.10.17 (0x0C010A11) X3522 3.0.18 1.5.25 (0x0C010519) Next-generation 7.1.17 Notes: 1. In the 2022.1 release the SC FW has been updated for the U50/U200/U250/U280 cards to use the legacy MAC addressing scheme. For more information, see Alveo - Custom Flow - CMS IP - 2022.1 MAC Addressing. RECOMMENDED: The CMS IP is also backward compatible with the default satellite controller firmware shipped with Alveo cards, but may not support the latest functions and capabilities. Upgrade the Alveo card satellite controller firmware to the version listed in Table 2. For more information on upgrading to the latest firmware refer to Getting Started with Alveo Data Center Accelerator Cards (UG1301). Sensor Monitoring CMS firmware polls for sensor information from the satellite controller approximately every 120 ms, communicating via a UART interface and GPIO handshake lines. CMS firmware then processes sensor information and writes instantaneous, maximum, and average values to a shared memory (memory mapped) for collection by the host software. The host software must poll the shared memory (REG_MAP) for updated sensor information. Sensor information is gathered and monitored for: PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 8
Chapter 2: Overview • Voltage • Current • Temperature • Power • Fan Speed Note: Fan speed is reported only for active cards with local fans. Passive cards do not contain fans. Note: HBM Temperature reporting must be enabled on compatible Alveo cards via the REG_MAP control register (CONTROL_REG). Figure 2: Card Management Solution Subsystem Block Diagram Host MicroBlaze Communication Host AXI LITE Register Map Interface AXI BRAM (REG_MAP) UART AXI UART Satellite Controller LMB GPIO Interface MicroBlaze X2/4 LMB Memory AXI RESET LITE Management MicroBlaze INT *HBM MicroBlaze AXI GPIO Temp Reset AXI GPIO x2 (MB_RESETN_REG) WatchDog Timer Host Interrupt Host Interrupt Controller (HOST_INTC) HBM* CATTRIP Interrupt Interrupt Controller Card Management Solution (CMS) Subsystem *U50/U280/U55 and next-generation Alveo cards only X23179-120921 Table 3: Supported Sensors per Alveo Card Sensor Name U200/U250 U280 U50 U55 SN1000 X3522 1V2_VCCIO 2V5_VPP23 3V3_AUX ✓ ✓ ✓ PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 9
Chapter 2: Overview Table 3: Supported Sensors per Alveo Card (cont'd) Sensor Name U200/U250 U280 U50 U55 SN1000 X3522 3V3_PEX ✓ ✓ ✓ ✓ ✓ ✓ 3V3PEX_I_IN ✓ ✓ ✓ ✓ 12V_AUX ✓ ✓ ✓ ✓ 12V_AUX1 12V_AUX_I_IN ✓ ✓ ✓ ✓ 12V_PEX ✓ ✓ ✓ ✓ ✓ ✓ 12V_SW ✓ ✓ 12VPEX_I_IN ✓ ✓ ✓ ✓ ✓ ✓ AUX_3V3_I ✓ CAGE_TEMP0 ✓ ✓ ✓ ✓ ✓ ✓ CAGE_TEMP1 ✓ ✓ ✓ ✓ ✓ CAGE_TEMP2 CAGE_TEMP3 DDR4_VPP_BTM ✓ ✓ DDR4_VPP_TOP ✓ ✓ DIMM_TEMP0 ✓ ✓ DIMM_TEMP1 ✓ ✓ DIMM_TEMP2 ✓ DIMM_TEMP3 ✓ FAN_SPEED ✓ ✓ FAN_TEMP ✓ ✓ FPGA_TEMP ✓ ✓ ✓ ✓ ✓ ✓ GTAVCC GTVCC_AUX HBM_1V2 ✓ ✓ HBM_1V2_I ✓ HBM_TEMP1 ✓ ✓ ✓ HBM_TEMP2 ✓ ✓ ✓ MGT0V9AVCC ✓ ✓ ✓ ✓ MGTAVTT ✓ ✓ ✓ ✓ PEX_3V3_POWER ✓ PEX_12V_POWER ✓ POWER_GOOD ✓ ✓ ✓ ✓ ✓ ✓ SE98_TEMP0 ✓ ✓ ✓ ✓ ✓ ✓ SE98_TEMP1 ✓ ✓ ✓ ✓ ✓ ✓ SE98_TEMP2 ✓ SYS_5V5 ✓ ✓ ✓ ✓ V12_IN_AUX0_I V12_IN_AUX1_I PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 10
Chapter 2: Overview Table 3: Supported Sensors per Alveo Card (cont'd) Sensor Name U200/U250 U280 U50 U55 SN1000 X3522 V12_IN_I VCC0V85 ✓ ✓ VCC1V2_BTM ✓ ✓ VCC1V2_I VCC1V2_TOP ✓ ✓ VCC1V8 ✓ ✓ ✓ ✓ ✓ ✓ VCC3V3 ✓ ✓ ✓ ✓ VCC_5V0 VCCAUX VCCAUX_PMC VCCINT ✓ ✓ ✓ ✓ ✓ ✓ VCCINT_I ✓ ✓ ✓ ✓ ✓ ✓ VCCINT_IO ✓ ✓ VCCINT_IO_I ✓ ✓ VCCINT_POWER VCCINT_TEMP ✓ ✓ ✓ ✓ ✓ VCCINT_VCU_0V9 VCCRAM VCCSOC VPP2V5 ✓ ✓ Notes: 1. ✓ indicates the sensor is supported and no entry indicates the sensor is not supported. Card Power Calculations Power figures can be calculated by combining voltage and current sensor values for each power domain, as described in Table 4. The total card power is calculated by combining the power figures for each domain: Total Power = 12V_AUX Power + 12V_PEX Power + 3V3_PEX Power + 3V3_AUX Power The following table defines the active power domains on each Alveo card. Table 4: Alveo Card Power Calculations Power Domain U200/U250 U280 U50 U55 SN1000 X3522 12V_AUX Power = ✓ ✓ ✓ ✓ 12V_AUX x 12V_AUX_I_IN 12V_PEX Power = ✓ ✓ ✓ ✓ ✓ ✓ 12V_PEX x 12V_PEX_I_IN PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 11
Chapter 2: Overview Table 4: Alveo Card Power Calculations (cont'd) Power Domain U200/U250 U280 U50 U55 SN1000 X3522 3V3_PEX Power = ✓ ✓ ✓ ✓ 3V3_PEX x 3V3_PEX_I_IN 3V3_AUX Power = ✓ 3V3_AUX x AUX_3V3_I Mailbox Interface A section of the register map is reserved for a dedicated host to the CMS mailbox interface. The mailbox may be used to request the satellite controller firmware update, card information reporting, and network plug-in module management functions. Details of the messages used for each function are defined in the relevant subsections within this document. Message Format Each request message written to the mailbox contains a 32-bit header. Request messages may also contain payload information depending on the function requested. Mailbox response payload is written to remaining words of the mailbox buffer. The format of the Header is defined in the following table. Table 5: Message Header Format Message Header [31:24] Message Header [23:12] Message Header [11:0] Opcode Reserved Message Length (bytes)1 Notes: 1. This field is only used for certain messages and may be populated as part of the Host Request Message or CMS Response Message. Further details can be found in the mailbox feature subsections. Using the Mailbox The mailbox start location within the register map (REG_MAP) is defined by register HOST_MSG_OFFSET_REG. The following details the mailbox operation. 1. The host checks the availability of the mailbox by confirming CONTROL_REG[5] is 0. 2. The host writes a request message to the mailbox. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 12
Chapter 2: Overview 3. The host sets CONTROL_REG[5] to 1 to indicate a new request message is available to CMS firmware. 4. The host polls CONTROL_REG[5] until CMS firmware sets to 0, indicating the CMS response message is in the mailbox. 5. The host reads HOST_MSG_ERROR_REG to confirm no message errors are present. 6. If no errors are reported, the host reads the response message from the mailbox. Note: The format of request and response messages for each mailbox feature is defined in the relevant subsections within this document. Figure 3: Mailbox Layout 0x18 CONTROL_REG 0x300 HOST_MSG_OFFSET_REG 0x304 HOST_MSG_ERROR_REG MAILBOX OFFSET REG_MAP Offset 0x28000-029FFF MAILBOX X25352-061021 Satellite Controller Firmware Update Satellite controller firmware can be updated using the mailbox interface. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 13
Chapter 2: Overview Note: A tool has been provided to perform the satellite controller firmware upgrade. Refer to Xilinx Answer Record 73654 for more information. Satellite controller firmware images are formatted text files. The firmware image is split into sections, as shown in Figure 4. The sections are transferred in chunks if they are too big to transfer in a single mailbox message. Figure 4: Satellite Firmware Message Start Address @0200 0C 48 08 B5 80 F3 08 88 09 49 08 68 40 F4 70 00 08 60 00 BF 00 BF 17 F0 B2 FF 08 B1 16 F0 1A FC 00 20 0D F0 B1 FA 01 20 17 F0 AB FF 08 BD C0 46 88 ED 00 E0 00 00 01 20 1C B5 8D F8 04 00 00 20 8D F8 05 00 C1 48 9D F8 04 10 00 EB 01 10 00 90 Firmware Data ... Section 1 00 6C FF F7 5D BC 40 8B 00 F0 08 00 70 47 40 68 80 6D FF F7 55 BC 08 B5 FC F7 C8 FB 08 BD 6F F0 01 00 70 47 6F F0 01 00 70 47 6F F0 01 00 70 47 6F F0 02 00 70 47 30 BF 70 47 00 20 70 47 01 20 70 47 00 BF FE E7 Start Address @18188 00 00 00 00 96 30 07 77 2C 61 0E EE BA 51 09 99 19 C4 6D 07 8F F4 6A 70 35 A5 63 E9 A3 95 64 9E 32 88 DB 0E A4 B8 DC 79 1E E9 D5 E0 88 D9 D2 97 2B 4C B6 09 BD 7C B1 7E 07 2D B8 E7 91 1D BF 90 64 10 B7 1D F2 20 B0 6A 48 71 B9 F3 DE 41 BE 84 Firmware Data ... Section 2 29 58 01 00 35 80 01 00 81 80 01 00 00 00 00 00 02 00 00 00 00 A1 00 00 02 00 00 00 E8 00 00 00 F8 94 01 00 00 A1 00 20 78 98 01 00 00 00 00 20 80 98 01 00 00 B8 00 20 Start Address @0000 00 00 01 20 B9 7E 01 00 FF 12 01 00 F5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CD 2E 01 00 E5 7F 01 00 00 00 00 00 6D 2E 01 00 E9 76 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 Firmware Data ... Section 3 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 E5 7F 01 00 q X25353-061421 The messages required to perform this function are defined in the following table. Table 6: Message Header Opcodes Opcode Name Description 0x5 CMS_OP_SC_FW_ERASE Performs mass erase on the satellite controller flash to remove old firmware image. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 14
Chapter 2: Overview Table 6: Message Header Opcodes (cont'd) Opcode Name Description 0x1 CMS_OP_SC_FW_SEC Starts the update of a firmware section in the Satellite Controller flash. This message will provide the start location and the total length of the section to be transferred. The message also contains payload data for the firmware section. If the section is too big for a single message additional chunks are sent using CMS_OP_SC_FW_DATA messages. 0x2 CMS_OP_SC_FW_DATA Continues update of a firmware section in the satellite controller flash. This message will send additional chunks of the firmware section being updated. 0x3 CMS_OP_SC_FW_REBOOT Forces the satellite controller to reboot with new firmware image. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 15
Chapter 2: Overview Figure 5: Satellite Controller Firmware Update Flow Chart Start Firmware Update CMS_OP_SC_FW_ERASE Firmware section Mailbox buffer size Mailbox buffer size AND Repeat until entire Another section needs section is written update CMS_OP_SC_FW_SEC CMS_OP_SC_FW_DATA Current section complete Firmware section
Chapter 2: Overview CMS_OP_SC_FW_ERASE (0x05) Table 7: CMS_OP_SC_FW_ERASE (0x05) Message Format MAILBOX Offset 32-bit Word Field Type Field Description 0x00 [0] Host Request Message Message Header 31:24 Opcode (0x5) 23:0 Reserved Notes: 1. There is no payload for this command. Table 8: CMS_OP_SC_FW_ERASE (0x05) Worked Example Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x05000000 Write the request message header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. 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 CMS has completed operation. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. Notes: 1. Addresses used in the worked examples are offsets only. 2. Any reference to a MAILBOX Word is actually a 32-bit long word. CMS_OP_SC_FW_SEC (0x1) Table 9: CMS_OP_SC_FW_SEC (0x1) Message Format MAILBOX Offset 32-bit Word Field Type Field Description 0x00 [0] Host Request Message Message Header 31:24 Opcode (0x1) 23:12 Reserved 11:0 Payload length in bytes 0x04 [1] Host Request Message Start address of the firmware section being written. 0x08 [2] Host Request Message Total length of firmware section in bytes. 0x0C-end [3:end] Host Request Message Firmware data Notes: 1. The payload length includes the start address and the total length fields (i.e., assuming HOST_MSG_OFFSET_REG = 0x1000, a maximum of 4084 bytes of firmware data can be transferred in this message). 2. If the firmware section is too large to fit in this message, use the CMS_OP_SC_FW_DATA messages to send the remaining chunks. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 17
Chapter 2: Overview Table 10: CMS_OP_SC_FW_SEC (0x1) Worked Example Host Action Function Peek 0x28018 Check mailbox availability by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x01000FFC Write the request message header to MAILBOX Word 0 (Opcode and payload length). Assumes HOST_MSG_OFFSET_REG = 0x1000. Payload length: 4 bytes start address + 4 bytes total length + 4084 bytes firmware data = 4092 (0xFFC). Poke 0x29004 0x00000200 Write the start address of the firmware section to MAILBOX Word 1. Poke 0x29008 0x00017F86 Write the total length of firmware section to MAILBOX Word 2 (in bytes). Poke 0x2900C-0x29FFC 0xXXXXXXX Write the firmware data to the remaining 1021 MAILBOX words. 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 CMS has completed the operation. Peek 0x28304 Confirm there are no errors in HOST_MSG_ERR_REG. CMS_OP_SC_FW_DATA (0x02) Table 11: CMS_OP_SC_FW_DATA (0x02) Message Format MAILBOX Offset 32-bit Word Field Type Field Description1 0x00 [0] Host Request Message Message Header 31:24 Opcode (0x2) 23:12 Reserved 11:0 Payload length in bytes 0x04-end [1:end] Host Request Message Firmware data Notes: 1. The entire payload may be filled with firmware data (assuming HOST_MSG_OFFSET_REG = 0x1000, a maximum of 4092 bytes of firmware data can be transferred in this message). 2. Multiple messages may be required to send a firmware section. Table 12: CMS_OP_SC_FW_DATA (0x02) Worked Example Host Action Function Peek 0x28018 Check the mailbox availability by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x02000FFC Write the request message header into MAILBOX Word 0 (Opcode and payload length). Assumes HOST_MSG_OFFSET_REG = 0x1000. Payload length: 4092 bytes firmware data (0xFFC). Poke 0x29004-0x29FFC 0xXXXXXXX Write the firmware data to the remaining 1023 MAILBOX words. 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 CMS has completed the operation. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 18
Chapter 2: Overview CMS_OP_SC_FW_REBOOT (0x03) Table 13: CMS_OP_SC_FW_REBOOT (0x03) Message Format MAILBOX Offset 32-bit Word Field Type Field Description 0x00 [0] Host Request Message Header 31:24 Opcode (0x3) 23:0 Reserved 0x04 [1] Host Request BSL Jump Address 1 Notes: 1. The BSL jump address is a fixed value of 0x201. Table 14: CMS_OP_SC_FW_REBOOT (0x03) Worked Example Host Action Function Peek 0x28018 Check mailbox availability by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x03000000 Write the request message header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x29004 0x00000201 Write BSL Jump Address (0x201) into MAILBOX Word 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 CMS has completed the operation. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. Card Information Reporting Card information can be requested from the satellite controller using the mailbox interface. Card information includes: • Card name • Card revision • Card serial number • Satellite controller version • Configuration mode • Total power available • Fan presence • MAC addresses Note: Card information messages will support one of two MAC addressing schemes depending on the satellite controller firmware operating on the Alveo card: PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 19
Chapter 2: Overview 1. Legacy mode: Reports up to 4 MAC addresses when the factory default satellite controller firmware is in operation. 2. Dynamic mode: A scalable solution, which reports more than 4 MAC addresses when the latest satellite controller firmware version is in operation. The messages required to perform this function are defined in Table 15. Table 15: Message Header Opcodes Opcode Name Description 0x4 CMS_OP_CARD_INFO_REQ The host requests the card information from the satellite controller. CMS will respond by populating the message buffer with card information and updating the message header length field. CMS_OP_CARD_INFO_REQ (0x04) Table 16: CMS_OP_CARD_INFO_REQ (0x04) Message Format MAILBOX Offset 32-bit Word Field Type Field Description 0x00 [0] Host Request Message Message Header CMS Response Message 31:24 Opcode (0x4) 23:12 Reserved 11:0 CMS response length in bytes 0x04-end [1:end] CMS Response Message Response payload Card information is packed as an array of uint8s. Each card information field is defined as . See Table 17 for more details. Table 17: CMS_OP_CARD_INFO_REQ (0x04) Card Information Sensor ID Sensor ID Name Key Length Payload SNSR_ID_CARD_SN 0x21 Variable (n) n-1 characters ASCII Text + termination string 0x00 SNSR_ID_MAC_ADDRESS0 0x22 0x12 17 characters ASCII Text + termination string 0x00 SNSR_ID_MAC_ADDRESS1 0x23 0x12 17 characters ASCII Text + termination string 0x00 SNSR_ID_MAC_ADDRESS2 0x24 0x12 17 characters ASCII Text + termination string 0x00 SNSR_ID_MAC_ADDRESS3 0x25 0x12 17 characters ASCII Text + termination string 0x00 SNSR_ID_CARD_REV 0x26 Variable (n) n-1 characters ASCII Text + termination string 0x00 SNSR_ID_CARD_NAME 0x27 Variable (n) n-1 characters ASCII Text + termination string 0x00 SNSR_ID_SAT_VERSION 0x28 Variable (n) n-1 characters ASCII Text + termination string 0x00 PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 20
Chapter 2: Overview Table 17: CMS_OP_CARD_INFO_REQ (0x04) Card Information Sensor ID (cont'd) Sensor ID Name Key Length Payload SNSR_ID_TOTAL_POWER_AVAIL 0x29 0x1 0x00 = 75W 0x01 = 150W 0x02 = 225W 0x04 = 300W SNSR_ID_FAN_PRESENCE 0x2A 0x1 ASCII Text SNSR_ID_CONFIG_MODE 0x2B 0x1 0x00 = Slave_Serial_x1 0x01 = Slave_Select_Map_x8 0x02 = Slave_Map_x16 0x03 = Slave_Select_Map_x32 0x04 = JTag_Boundary_Scan_x1 0x05 = Master_SPI_x1 0x06 = Master_SPI_x2 0x07 = Master_SPI_x4 0x08 = Master_SPI_x8 0x09 = Master_BPI_x8 0x0a = Master_BPI_x16 0x0b = Master_Serial_x1 0x0c = Master_Select_Map_x8 0x0d = Master_Select_Map_x16 SNSR_ID_NEW_MAC_SCHEME 0x4B 0x8 Byte 1: Number of contiguous MAC addresses. Byte 2: Reserved. Bytes 3-8: Hex value of the first MAC address. SNSR_ID_CAGE_TYPE_00 0x50 0x1 0x00 = QSFP/QSFP+ 0x01 = DSFP 0x02 = SFP/SFP+ SNSR_ID_CAGE_TYPE_01 0x51 0x1 0x00 = QSFP/QSFP+ 0x01 = DSFP 0x02 = SFP/SFP+ SNSR_ID_CAGE_TYPE_02 0x52 0x1 0x00 = QSFP/QSFP+ 0x01 = DSFP 0x02 = SFP/SFP+ SNSR_ID_CAGE_TYPE_03 0x53 0x1 0x00 = QSFP/QSFP+ 0x01 = DSFP 0x02 = SFP/SFP+ Table 18: CMS_OP_CARD_INFO_REQ (0x04) Worked Example Host Action Function Peek 0x28018 Check mailbox availability by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x04000000 Write request message header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x28018 0x20 Set CONTROL_REG[5] to 1 to indicate a new request message available. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 21
Chapter 2: Overview Table 18: CMS_OP_CARD_INFO_REQ (0x04) Worked Example (cont'd) Host Action Function Peek 0x28018 Poll CONTROL_REG bit 5 until ‘0’ is received indicating CMS Response is available. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. Peek 0x29000 Read header bits 11:0 to determine the number of bytes in CMS Response payload. Peek 0x29004-end Read the card information data and decode each key-length-payload field. See Figure 6 and Figure 7 for more details. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 22
Chapter 2: Overview Figure 6: Card Information Opcode Length 0x04 0x00 0x00 0x3B Message Header 0x4c 0x41 Length=0x0d Key=0x27 270d414c56454f2055353020505100 SNSR_ID_CARD_NAME = ALVEO U50 PQ Message Payload 0x20 0x4f 0x45 0x56 (little endian) 0x20 0x30 0x35 0x55 Sensor ID Key Key=0x26 0x00 0x51 0x50 26023100 SNSR_ID_CARD_REV = 1 210d35303132313131394353504d00 Key=0x21 0x00 0x31 Length=0x02 SNSR_ID_CARD_SN = 50121119CSPM Length 0x31 0x30 0x35 Length=0x0d Payload 0x31 0x31 0x31 0x32 0x50 0x53 0x43 0x39 Payload Termination Length=0x08 Key=0x4B 0x00 0x4d 4B080400000A35050FD8 SNSR_ID_NEW_MAC_SCHEME NUM_MAC_ADDRESSES = 4 SNSR_ID_MAC_ADDRESS0 = 00:0A:35:05:0F:D8 SNSR_ID_MAC_ADDRESS1 = 00:0A:35:05:0F:D9 0x0A 0x00 0x00 0x04 SNSR_ID_MAC_ADDRESS2 = 00:0A:35:05:0F:DA SNSR_ID_MAC_ADDRESS3 = 00:0A:35:05:0F:DB 0xD8 0x0F 0x05 0x35 Key=0x2b 0x50 Length=0x01 Key=0x2a 2a01 50 SNSR_ID_FAN_PRESENCE = P Length=0x01 Key=0x29 0x07 Length=0x01 2b0107 SNSR_ID_CONFIG_MODE = Master_SPI_x4 290100 0x35 Length=0x04 Key=0x28 0x00 SNSR_ID_TOTAL_POWER_AVAIL = 75W 0x00 0x30 0x2e 2804352e3000 SNSR_ID_SAT_VERSION = 5.0 X25360-061521 PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 23
Chapter 2: Overview Figure 7: Legacy MAC Address Response Example 221230303a30413a33353a30363a37303a303000 0x30 0x30 Length=0x12 Key=0x22 SNSR_ID_MAC_ADDRESS0 = 00:0A:35:06:70:00 0x3a 0x41 0x30 0x3a Message Payload (little endian) 0x30 0x3a 0x35 0x33 0x30 0x37 0x3a 0x36 Sensor ID Key 0x00 0x30 0x30 0x3a 231230303a30413a33353a30363a37303a303100 Length 0x30 0x30 Length=0x12 Key=0x23 SNSR_ID_MAC_ADDRESS1 = 00:0A:35:06:70:01 0x3a 0x41 0x30 0x3a Payload 0x30 0x3a 0x35 0x33 Payload 0x30 0x37 0x3a 0x36 Termination 0x00 0x31 0x30 0x3a 241230303a30413a33353a30363a37303a303200 0x30 0x30 Length=0x12 Key=0x24 SNSR_ID_MAC_ADDRESS2 = 00:0A:35:06:70:02 0x3a 0x41 0x30 0x3a 0x30 0x3a 0x35 0x33 0x30 0x37 0x3a 0x36 0x00 0x32 0x30 0x3a 251230303a30413a33353a30363a37303a303300 0x30 0x30 Length=0x12 Key=0x25 SNSR_ID_MAC_ADDRESS3 = 00:0A:35:06:70:03 0x3a 0x41 0x30 0x3a 0x30 0x3a 0x35 0x33 0x30 0x37 0x3a 0x36 0x00 0x33 0x30 0x3a X25359-061121 PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 24
Chapter 2: Overview Network Plug-in Module Management The CMS IP supports management of network plug-in modules via the mailbox, as specified in the following table. Table 19: CMS IP Network Plug-in Module Support Per Card Network Plug-in Module Type U200/U250 U280 U50 U55 SN1000 X3522 QSFP ✓ ✓ ✓ ✓ ✓ DSFP ✓ SFP+ ✓ The mailbox interface supports the following network plug-in module management features: • I2C access for diagnostics and control • Low speed I/O status and control The messages required to perform these functions are defined in the following table. Table 20: Message Header Opcodes Opcode Name Description 0xD CMS_OP_READ_MODULE_LOW_SPEED_IO Host request to read network plug-in module low speed I/O. 0xE CMS_OP_WRITE_MODULE_LOW_SPEED_IO Host request to write network plug-in module low speed I/O. 0xB CMS_OP_BLOCK_READ_MODULE_I2C Host request to block read network plug-in module I2C information. 0xF CMS_OP_BYTE_READ_MODULE_I2C Host request to byte read network plug-in module I2C information. 0x10 CMS_OP_BYTE_WRITE_MODULE_I2C Host request to byte write network plug-in module I2C information. CMS_OP_READ_MODULE_LOW_SPEED_IO (0x0D) Table 21: CMS_OP_READ_MODULE_LOW_SPEED_IO (0x0D) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 0x00 [0] Host Request Message Message Header 31:24 Opcode (0xD) 23:0 Reserved 0x04 [1] Host Request Message Cage Select (0-1) PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 25
Chapter 2: Overview Table 21: CMS_OP_READ_MODULE_LOW_SPEED_IO (0x0D) Message Format (cont'd) MAILBOX 32-bit Word Field Type Field Description Offset 0x08 [2] CMS Response Message Low Speed I/O Read Data QSFP Module 31-5: Reserved 4: QSFP_INT_L (0: Interrupt Set, 1: Interrupt Clear) 3: QSFP_MODPRS_L (0: Module Present, 1: Module not Present) 2: QSFP_MODSEL_L (0: Module Selected, 1: Module not Selected) 1: QSFP_LPMODE (0: High Power Mode, 1: Low Power Mode) 0: QSFP_RESET_L (0: Reset Active, 1: Reset Clear) DSFP Module 31-5: Reserved 4: DSFP_INT (0: Interrupt Clear, 1: Interrupt Set) 3: DSFP_PRS (0: Module not Present, 1: Module Present) 2: Reserved 1: DSFP_LPW (0: High Power Mode, 1: Low Power Mode) 0: DSFP_RST (0: Reset Clear, 1: Reset Active) SFP+ Module 31-4: Reserved 3: SFP_PRS (0: Module not Present, 1: Module Present) 2-0: Reserved Table 22: CMS_OP_READ_MODULE_LOW_SPEED_IO (0x0D) Worked Example Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x0D000000 Write the request message header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x29004 0x00000000 Select Cage 0 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 CMS Response is available. Peek 0x28304 Confirm there are no errors in HOST_MSG_ERR_REG. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 26
Chapter 2: Overview Table 22: CMS_OP_READ_MODULE_LOW_SPEED_IO (0x0D) Worked Example (cont'd) Host Action Function Peek 0x29008 Read low speed I/O read data and decode according to module type. Example 1 : QSFP module read data 0x11 • Bit 4 - QSFP_INT_L = 1 - Interrupt Clear • Bit 3 - QSFP_MODPRS_L = 0 - Module Present • Bit 2 - QSFP_MODSEL_L = 0 - Module Selected • Bit 1 - QSFP_LPMODE = 0 - High Power Mode • Bit 0 - QSFP_RESET_L = 1 - Reset Clear Example 2 : DSFP module read data 0x0A • Bit 4 - DSFP_INT = 0 - Interrupt Clear • Bit 3 - DSFP_PRS = 1 - Module Present • Bit 1 - DSFP_LPW = 1 - Low Power Mode • Bit 0 - DSFP_RST = 0 - Reset Clear Example 3 : SFP+ module read data 0x08 • Bit 3 - SFP_PRS = 1 - Module Present CMS_OP_WRITE_MODULE_LOW_SPEED_IO (0x0E) Table 23: CMS_OP_WRITE_MODULE_LOW_SPEED_IO (0x0E) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 0x00 [0] Host Request Message Message Header 31:24 Opcode (0xE) 23:0 Reserved 0x04 [1] Host Request Message Cage Select (0-1) 0x08 [2] Host Request Message Low Speed I/O Write Data 1, 2 QSFP Module 31-2: Reserved 1: QSFP_LPMODE (0: High Power Mode, 1: Low Power Mode) 0: QSFP_RESET_L (0: Reset Active, 1: Reset Clear) DSFP Module Low Speed I/O Read Data - DSFP Module 31-2: Reserved 1: DSFP_LPW (0: High Power Mode, 1: Low Power Mode) 0: DSFP_RST (0: Reset Clear, 1: Reset Active) SFP+ Module Low Speed I/O Read Data - SFP+ Module 31-0: Reserved Notes: 1. All bits are written together. Use a read-modify-write sequence to update required bit(s). 2. Writing 0 to QSFP_RESET_L will trigger a module reset. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 27
Chapter 2: Overview Table 24: CMS_OP_WRITE_MODULE_LOW_SPEED_IO (0x0E) Worked Example - QSFP Module Host Action Function Peek 0x28018 Check availability of the Mailbox by confirming CONTROL_REG[5] is 0 Poke 0x29000 0x0E000000 Write Request Message Header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x29004 0x00000000 Select Cage 0 Poke 0x29008 0x00000000 Set QSFP Low speed Write Data. Write 0 to QSFP_RESET_L to trigger a QSFP module reset. 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 CMS has completed write operation. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. Table 25: CMS_OP_WRITE_MODULE_LOW_SPEED_IO (0x0E) Worked Example - DSFP Module Host Action Function Peek 0x28018 Check availability of the Mailbox by confirming CONTROL_REG[5] is 0 Poke 0x29000 0x0E000000 Write Request Message Header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x29004 0x00000001 Select Cage 1 Poke 0x29008 0x00000001 Set DSFP Low speed Write Data. Write 1 to DSFP_RST to hold DSFP module in reset. 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 CMS has completed write operation. Peek 0x28304 Confirm no errors in HOST_MSG_ERR_REG. CMS_OP_BLOCK_READ_MODULE_I2C (0xB) Table 26: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 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) PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 28
Chapter 2: Overview Table 26: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) Message Format (cont'd) MAILBOX 32-bit Word Field Type Field Description Offset 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 Notes: 1. I2C address field 0xA2 only supported in SFP+ modules. Table 27: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) 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. Note: CMIS Bank, CMIS Bank Valid and I2C Address fields should all be set to 0x0 as they are unused in QSFP 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 28: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) 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. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 29
Chapter 2: Overview Table 28: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) Worked Example - DSFP Module (cont'd) Host Action Function 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 29: CMS_OP_BLOCK_READ_MODULE_I2C (0xB) 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. CMS_OP_BYTE_READ_MODULE_I2C (0xF) Table 30: CMS_OP_BYTE_READ_MODULE_I2C (0xF) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 0x00 [0] Host Request Message Message Header 31:24 Opcode (0xF) 23:0 Reserved 0x04 [1] Host Request Message Cage Select (0–1) PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 30
Chapter 2: Overview Table 30: CMS_OP_BYTE_READ_MODULE_I2C (0xF) Message Format (cont'd) MAILBOX 32-bit Word Field Type Field Description Offset 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 Notes: 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 31: CMS_OP_BYTE_READ_MODULE_I2C (0xF) 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. Note: CMIS Bank, CMIS Bank Valid and I2C Address fields should all be set to 0x0 as they are unused in QSFP mode. 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. Table 32: CMS_OP_BYTE_READ_MODULE_I2C (0xF) Worked Example - DSFP Module Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 31
Chapter 2: Overview Table 32: CMS_OP_BYTE_READ_MODULE_I2C (0xF) Worked Example - DSFP Module (cont'd) Host Action Function 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. Note: I2C Address field should be set to 0x0 as it is unused in DSFP mode. 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. Table 33: CMS_OP_BYTE_READ_MODULE_I2C (0xF) 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. Note: CMIS Bank and CMIS Bank Valid fields should be set to 0x0 as they are unused in SFP+ mode. 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. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 32
Chapter 2: Overview CMS_OP_BYTE_WRITE_MODULE_I2C (0x10) Table 34: CMS_OP_BYTE_WRITE_MODULE_I2C (0x10) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 0x00 [0] Host Request Message Message Header 31:24 Opcode (0x10) 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] Host Request Message Request Payload 31:8 Reserved 7:0 Module I2C write data byte Notes: 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 35: CMS_OP_BYTE_WRITE_MODULE_I2C (0x10) Worked Example - QSFP Module Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x10000000 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. Note: CMIS Bank, CMIS Bank Valid and I2C Address fields should all be set to 0x0 as they are unused in QSFP mode. Poke 0x29010 0x000000FF Select Byte Offset 255 via MAILBOX Word 4. Poke 0x29014 0x00000080 Write module I2C data byte to MAILBOX Word 5. 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. PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 33
Chapter 2: Overview Table 36: CMS_OP_BYTE_WRITE_MODULE_I2C (0x10) Worked Example - DSFP Module Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x10000000 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. Note: I2C Address field should be set to 0x0 as it is unused in DSFP mode. Poke 0x29010 0x0000007F Select Byte Offset 127 via MAILBOX Word 4. Poke 0x29014 0x00000001 Write module I2C data byte to MAILBOX Word 5. 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. Table 37: CMS_OP_BYTE_WRITE_MODULE_I2C (0x10) Worked Example - SFP+ Module Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x10000000 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 0x00000000 Select the lower page of I2C Address field 0xA0 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 0x29010 0x0000007F Select Byte Offset 127 via MAILBOX Word 4. Poke 0x29014 0x00000001 Write module I2C data byte to MAILBOX Word 5. 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. SN1000 SoC Management The mailbox interface supports commands for managing the external System on Chip (SoC) device on SN1000 Cards: PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 34
Chapter 2: Overview • SoC Status Reporting ○ SoC State ○ SoC Type ○ SoC Firmware Versions • SoC Control ○ Reset SoC Device ○ Enable SoC Device ○ Disable SoC Device The messages required to perform these functions are defined in the following table. Table 38: Message Header Opcodes Opcode Name Description 0x11 CMS_OP_READ_SOC_STATUS Host request to read SoC Status Information 0x12 CMS_OP_WRITE_SOC_CONTROL Host request to write SoC Control Information CMS_OP_READ_SOC_STATUS (0x11) Table 39: CMS_OP_READ_SOC_STATUS (0x11) Message Format MAILBOX 32-bit Word Field Type Field Description Offset 0x00 [0] Host Request Message Message Header 31:24 Opcode (0x11) 23:0 Reserved 0x04 [1] Host Request Message SoC Status Opcode 31:8 Reserved 7:0 SoC Status Opcode (0: System Status, 1: Firmware Versions) 0x08 [2] Host Request Message System Status Response 31:6 Reserved 5 OS Recovery Required (0: False, 1: True) 4 SoC Enable Status (0: Disabled, 1: Enabled) 3:0 SoC State (0: Power-On, 1: U-Boot, 2: OS Starting, 3: OS Running, 4: OS Maintenance) Firmware Versions Response 31:8 Reserved 7:0 Number of firmware versions reported PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 35
Chapter 2: Overview Table 39: CMS_OP_READ_SOC_STATUS (0x11) Message Format (cont'd) MAILBOX 32-bit Word Field Type Field Description Offset 0x0C [3] CMS Response Message System Status Response 31:8 Reserved 7:0 SoC Type (0: Undefined, 1: LX2162A) Firmware Versions Response 31:8 Reserved 7:0 Version ID #1 (0: Boot Program, 1: U-Boot, 2: OS, 3: OS Maintenance) 0x10 [4] CMS Response Message Firmware Versions Response 31:16 Minor Version #1 15:0 Major Version #1 0x14 [5] CMS Response Message Firmware Versions Response 31:16 Build Version #1 15:0 Patch Version #1 0x18 [6] CMS Response Message Firmware Versions Response 31:8 Reserved 7:0 Version ID #2 (0: Boot Program, 1: U-Boot, 2: OS, 3: OS Maintenance) 0x1C [7] CMS Response Message Firmware Versions Response 31:16 Minor Version #2 15:0 Major Version #2 0x20 [8] CMS Response Message Firmware Versions Response 31:16 Build Version #2 15:0 Patch Version #2 0x24-end [9-end] CMS Response Message Firmware Versions Response Version ID, Major, Minor, Patch and Build information will be reported for remaining firmware versions in same format as defined in words 6-8 above. Table 40: CMS_OP_READ_SOC_STATUS (0x11) Worked Example - System Status Host Action Function Peek 0x28018 Check availability of the mailbox by confirming CONTROL_REG[5] is 0. Poke 0x29000 0x11000000 Write the request message header into MAILBOX Word 0 (Opcode). Assumes HOST_MSG_OFFSET_REG = 0x1000. Poke 0x29004 0x00000000 Set SoC Status Opcode to 0x0 System Status 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 CMS Response is available. Peek 0x28304 Confirm there are no errors in HOST_MSG_ERR_REG. Peek 0x29008 Read 1st word of SoC System Status response data to determine SoC Status. e.g 0x00000011 : SoC State = U-Boot, SoC Enable Status = Enabled Peek 0x2900C Read 2nd word of SoC System Status response data to determine SoC type. e.g. 0x00000001 : SoC Type = LX2162A PG348 (v4.0) April 29, 2022 www.xilinx.com Send Feedback CMS Subsystem Product Guide 36
You can also read