iRiser Signal Reference
Signal names are defined by the iRiser firmware for each slot. Always query the live
GPIO list after init() rather than assuming a fixed set of names.
Discovering signal names
from sanblaze import riser
device = riser.Riser(0)
device.init()
bits = device.get_bits(raw=True)
for bit in bits.bits:
print(f'{bit.name:12} dir={bit.dir} val={bit.val}')
Alternatively, call show_bits() to print the
current GPIO state to the log.
Name matching
add_transition() matches signal names
case-insensitively (12v and 12V are equivalent). Invalid names return:
{'status': 1, 'reason': '<name> is a not a valid signal name'}
set() and clear()
pass the name to the iRiser CLI in uppercase (for example 12VEDSF). Use names from
get_bits(); slot-specific names such as 12VEDSF
may appear on EDSFF configurations even if they are not listed in the table below.
Common signals
The table below lists GPIO names used in SANBlaze tests and examples. Your slot may expose a subset depending on form factor and iRiser configuration.
PCIe reset and clock
Name |
Typical use |
|---|---|
|
PERST# (primary port, active-low naming) |
|
Clock request |
|
Port 0 refclk enable (active-low naming) |
|
Port 1 refclk enable (dual-port) |
Power and reset
Name |
Typical use |
|---|---|
|
12 V rail enable |
|
12 V EDSFF enable (some EDSFF slots) |
|
3.3 V auxiliary enable |
|
SMBus reset |
|
PWRDIS |
Presence and form factor
Name |
Typical use |
|---|---|
|
Device present |
|
Dual-port indicator |
|
M.2 / EDSFF form-factor detect |
|
EDSFF PLA detect |
|
EDSFF PLN detect |
|
EDSFF RFU detect |
|
EDSFF activity LED |
User test outputs (LED mirroring)
Name |
Typical use |
|---|---|
|
User test output 0 |
|
User test output 1 (often mirrored with PERST) |
|
User test output 2 |
|
User test output 3 |
Sideband and debug
Name |
Typical use |
|---|---|
|
Status LED |
|
USB disable |
|
Sideband GPIO 0 |
|
Sideband GPIO 1 |
|
Sideband GPIO 2 |
PCIe lanes (advanced)
Name |
Typical use |
|---|---|
|
Lane 0–3 TX differential pairs (n/p) |
Direction and value semantics
Bit direction
Each Bit has dir of 'I' (input) or 'O' (output).
Before driving PERST or refclk in low-level scripts, set the pin as output:
bits = device.get_bits(raw=True)
bits = bits.set_dir('perst0l', 'O')
add_transition state argument
In add_transition():
'on'— set the signal bit in the GPIO value mask'off'— clear the signal bit in the GPIO value maskfinal=True— on the last transition, set the next action tostop
toggle_bit
toggle_bit() inverts the value of a single named
bit while preserving other bits. Use this when building edit_action chains in refclk
and PERST timing scripts.
Aggregated masks
get_bits() with raw=True returns a
Bits object. Its dir and val attributes are
hex strings passed to edit_action().
See Examples for high-level and low-level programming examples.