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
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. |
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. |