Board CDO - XAPP1394

Temperature Dependent Dynamic Voltage Scaling Implementation (XAPP1394)

Document ID
XAPP1394
Release Date
2024-08-02
Revision
1.1 English

The second set of information is about the on-board power regulator that provides power to the internal power rail of the Versal device. This information is board-specific and varies based on the power topology of the board. On the VCK190 board, the power regulator that provides power for the VCCINT rail is described in CDO format with the following entries along with an explanation of each of its arguments:

# VCCINT Power Regulator on VCK190
pm_add_node 0x442c001 0x460101 0x1822402d 0x10174
# Four power modes for VCCINT_PL rail: 0 - OFF, 1 - ON, 2 - LOWER (0.70V), 3 - UPPER (0.725V)
pm_add_node 0x4328030 0x1 0x442c001 0x4 0x300 0x2010002 0x1021a02 0 0x301 0x2000002 0x1021a02 0x80 
0x402 0x2000002 0x21030001 0x10200b3 0x80 0x403 0x2000002 0x21030001 0x10200ba 0x80
Table 1. Register Descriptions
Node Id 0x442c001 Node Id of VCCINT Power Rail Node Id of VCCINT Power Regulator

[23:16]: I2C Address;

[15:8]: No of Commands;

[7:0]: Control Method, 1 (I2C/PMBus), 2 (GPIO)

0x460101

[23:16] = 0x46;

[15:8] = 0x1;

[7:0] = 0x1

The type of controlling the regulator is I2C/PMBus; the number of multiplexers to configure to get to the regulator is 1; the I2C address of the power regulator is 0x46.
Parent I2C Node Id 0x1822402d PM_DEV_I2C_PMC Node Id for I2C controller.

[7:0]: Mux I2C address;

[15:8]: Length of Command;

[23:16]: First Byte;

[31:24]: Second Byte (if any)

0x10174

[23:16] = 0x1;

[15:8] = 0x1;

[7:0] = 0x74

The I2C address of the multiplexer is 0x74; the number of I2C bytes to configure the multiplexer channel is 1; the value of byte to write to the multiplexer is 0x1.
Table 2. Register Descriptions
Node Id 0x4328030 PM_POWER_VCCINT_PL Node Id of VCCINT Power Rail Upper/Lower Threshold

Type: 0x1 (I2C/PMBus);

0x2 (Pgood);

0x3 (Temperature Voltage Adjust)

0x1 I2C/PMBus Instructs XilPM how to handle the power rail.  
Parent Regulator Node Id 0x442c001   Node id of VCCINT Power Regulator.  
Number of modes (states) supported for this power rail 0x4   There are four power modes for this power rail: UPPER (3), LOWER (2), ON (1), OFF (0).  

[15:8]: Number of I2C commands;

[7:0]: Mode Id

0x300

[15:8] = 0x3;

[7:0] = 0x0

The power rail OFF mode is achieved by three I2C commands.  
I2C Commands -

[7:0]: Number of Bytes;

[15:8]: Byte 1;

[23:16]: Byte 2;

[31:24]: Byte 3 (if any)

0x200002

[31:24] = 0x2;

[23:16] = 0x0;

[15:8] = 0x0;

[7:0] = 0x2

The first I2C command is two bytes. The first byte is 0x0 and the second byte is 0x0. This 2-byte command selects the page of the regulator that drives the power rail. The second I2C command is also two bytes ([31:24]).  
  0x1021a02

[31:24] = 0x1;

[23:16] = 0x2;

[15:8] = 0x1a;

[7:0] = 0x2

The payload of the second I2C command is '0x2,0x1a' which is 'ON OFF CONFIG' PMBus command. The third I2C command is two bytes as well ([23:16]).  
  0x0 [7:0] = 0x0 The first byte of the third I2C command is from previous word ([31:24] = 0x1) and the second byte of third I2C command is 0x0. The payload '01, 00' is 'OPERATION OFF' PMBus command.  

[15:8]: Number of I2C commands;

[7:0]: Mode Id

0x301

[15:8] = 0x3;

[7:0] = 0x1

The first byte of the third I2C command is from the previous word ([31:24] = 0x1) and the second byte of the third I2C command is 0x0. The payload '01, 00' is 'OPERATION OFF' PMBus command.  
I2C Commands -

[7:0]: Number of Bytes;

[15:8]: Byte 1;

[23:16]: Byte 2;

[31:24]: Byte 3 (if any)

0x2000002

[31:24] = 0x2;

[23:16] = 0x0;

[15:8] = 0x0;

[7:0] = 0x2

The first I2C command is two bytes. The first byte is 0x0 and the second byte is 0x0. This 2-byte command selects the page of the regulator that drives the power rail. The second I2C command is also two bytes ([31:24]).  
  0x1021a02

[31:24] = 0x1;

[23:16] = 0x2;

[15:8] = 0x1a;

[7:0] = 0x2

The payload of the second I2C command is '0x2,0x1a,' which is the 'ON OFF CONFIG' PMBus command. The third I2C command is also two bytes([23:16]).  
  0x80 [7:0] = 0x80 The first byte of the third I2C command is from previous word ([31:24] = 0x1) and the second byte of the third I2C command is 0x80. The payload '0x1, 0x80' is the 'OPERATION ON' PMBus command.  

[15:8]: Number of I2C commands;

[7:0]: Mode Id

0x402

[15:8] = 0x4;

[7:0] = 0x2

The power rail LOWER mode is achieved by four I2C commands.  
I2C Commands -

[7:0]: Number of Bytes;

[15:8]: Byte 1;

[23:16]: Byte 2;

[31:24]: Byte 3 (if any)

0x2000002

[31:24] = 0x2;

[23:16] = 0x0;

[15:8] = 0x0;

[7:0] = 0x2

The first I2C command is two bytes. The first byte is 0x0 and the second byte is 0x0. This 2-byte command selects the page of the regulator that drives the power rail. The second I2C command is also two bytes ([31:24]).  
  0x21030001

[31:24] = 0x21;

[23:16] = 0x3;

[15:8] = 0x0;

[7:0] = 0x1

The payload of the second I2C command is '0x1,0x0' which is the OPERATION PMBus command to disable VOUT. The third I2C command is three bytes ([23:16]).  
  0x102YYXX

[31:24] = 0x1;

[23:16] = 0x2

[15:8] = YY,

[7:0] = XX

The first byte of the third I2C command is from the previous word, the second byte of the third I2C command is XX, and the third byte is YY. The payload '0x21, XX, YY' is the VOUT_COMMAND PMBus command, which sets the VOUT to XXYY. The fourth I2C command is two bytes. The first byte of the fourth I2C command is the OPERATION PMBus command. 0.70V: XX = 0xb3 YY = 0x00;
  0x80 [7:0] = 0x80 The first byte of the fourth I2C command is from previous word. The second byte is 0x80. This OPERATION PMBus command enables the VOUT.  

[15:8]: Number of I2C commands;

[7:0]: Mode Id

0x403

[15:8] = 0x4;

[7:0] = 0x3

The power rail UPPER mode is achieved by four I2C commands.  
I2C Commands -

[7:0]: Number of Bytes;

[15:8]: Byte 1;

[23:16]: Byte 2;

[31:24]: Byte 3 (if any)

0x2000002

[31:24] = 0x2;

[23:16] = 0x0;

[15:8] = 0x0;

[7:0] = 0x2

The first I2C command is two bytes. The first byte is 0x0 and the second byte is 0x0. This 2-byte command selects the page of the regulator that drives the power rail. The second I2C command is also two bytes ([31:24]).  
  0x21030001

[31:24] = 0x21;

[23:16] = 0x3;

[15:8] = 0x0;

[7:0] = 0x1

The payload of the second I2C command is '0x1,0x0' which is the OPERATION PMBus command to disable VOUT. The third I2C command is three bytes ([23:16]).  
  0x102NNMM

[31:24] = 0x1;

[23:16] = 0x2;

[15:8] = NN;

[7:0] = MM

The first byte of the third I2C command is from the previous word, the second byte of the third I2C command is MM, and the third byte is NN. The payload '0x21, MM, NN' is the VOUT_COMMAND PMBus command, which sets the VOUT to MMNN. The fourth I2C command is two bytes. The first byte of the fourth I2C command is the OPERATION PMBus command. 0.725V: NN = 0x00 MM = 0xba;
  0x80 [7:0] = 0x80 The first byte of the fourth I2C command is from the previous word. The second byte is 0x80. This OPERATION PMBus command enables the VOUT.