DMGT: Management subsystem
This subsystem is used for general board control. It is always present and always enabled, but its exact capabilities must be queried.
DMGT_GET_CAPABILITIES
Returns capabilities of the DMGT subsystem. Always supported.
subsystem:
0x01
(DMGT)command type:
0x02
(short)port: N/A, always 0
command payload: none
response payload: 32-bit capabilities word
bit 0: power control (
DMGT_POWER_ON
,DMGT_POWER_OFF
)bit 1: config reset (
DMGT_CONFIG_RESET
)bit 2: user reset (
DMGT_USER_RESET
)bit 3: query DONE (
DMGT_QUERY_DONE
)bit 5: query power state (
DMGT_QUERY_POWER_STATE
)bit 6: power supply monitoring (
DMGT_GET_POWER_SUPPLY_*
)
DMGT_POWER_ON
Turns on power to the rest of the board.
subsystem:
0x01
(DMGT)command type:
0x03
(short)port: N/A, always 0
command payload: none
response payload: none
DMGT_POWER_OFF
Turns off power to the rest of the board.
Note that on some boards (eg. iCEblink40), this command only momentarily switches off power, turning it back on within half a second or so.
subsystem:
0x01
(DMGT)command type:
0x04
(short)port: N/A, always 0
command payload: none
response payload: none
DMGT_CONFIG_RESET
Sets the state of the FPGA configuration reset pin (eg. PROG_B
on Xilinx devices).
subsystem:
0x01
(DMGT)command type:
0x06
(short)port: N/A, always 0
command payload: 1 byte
0: deassert reset to the device
1: assert reset to the device
response payload: none
Note that the reset here is active-high, which is the inverse of the state of the actual PROG_B
pin.
DMGT_USER_RESET
Sets the state of the user reset pin on the FPGA, if the board has one.
subsystem:
0x01
(DMGT)command type:
0x07
(short)port: N/A, always 0
command payload: 1 byte
0: deassert reset to the device
1: assert reset to the device
response payload: none
DMGT_QUERY_DONE
Returns the state of the DONE
pin on the FPGA.
subsystem:
0x01
(DMGT)command type:
0x08
(short)port: N/A, always 0
command payload: none
response payload: 1 byte (the LSB is the state of the DONE pin)
DMGT_QUERY_POWER_STATE
Returns the state of the board’s power supply.
subsystem:
0x01
(DMGT)command type:
0x0c
(short)port: N/A, always 0
command payload: none
response payload: 1 byte
0: power is off
1: power is on
DMGT_GET_POWER_SUPPLY_COUNT
Returns the number of power supplies on the board that can be monitored.
subsystem:
0x01
(DMGT)command type:
0x0d
(short)port: N/A, always 0
command payload: none
response payload: 32-bit word (number of power supplies)
DMGT_GET_POWER_SUPPLY_DATA
Returns the current state of the given power supply.
subsystem:
0x01
(DMGT)command type:
0x0d
(short)port: N/A, always 0
command payload: 1 byte (power supply index)
response payload: 5 32-bit words:
word 0: raw voltage value
word 1: raw current value
word 2: raw power value
word 3: raw temperature value
word 4: status; status bits for all power supplies on the board (up to 8 of them) are packed into this word, 4 bits for each supply:
bit 0: power supply is on
bit 1: power supply voltage out of spec
bit 2: overcurrent condition
bit 3: overtemperature condition
All sensor values returned are unsigned integers which need to have the conversion factor applied to them.
DMGT_GET_POWER_SUPPLY_PROPERTIES
Returns the scaling factors that should be applied to the raw sensor values of the given power supply.
subsystem:
0x01
(DMGT)command type:
0x0f
(short)port: N/A, always 0
command payload: 1 byte (power supply index)
response payload: 4 32-bit words:
word 0: voltage scaling factor (in µV units)
word 1: current scaling factor (in µA units)
word 2: power scaling factor (in µW units)
word 3: temperature scaling factor (in µK units)
The raw values from the sensors should be multiplied by these constant scaling factors to obtain the actual physical values.
DMGT_GET_POWER_SUPPLY_LABEL
Returns the free-form label string describing the given power supply.
subsystem:
0x01
(DMGT)command type:
0x10
(short)port: N/A, always 0
command payload: 1 byte (power supply index)
response payload: 32-byte string (NUL-terminated)