Full Command Set for SMASH¶
SMASH employs regex for taking wildcards and expansions of commands.
Note that commands which contain spaces (e.g. Foreach type LTM.* "Store to NVM"
) must be delimited by double quotes. The tab-completion feature will auto-complete commands, but without the first double quote the command will not be executed correctly.
Core – Abstract Base Elements¶
Element¶
The base class of all SMASH components
- Functions declared in Element —
List — List the objects known to the element.
The object type to be listed. Valid options:
Functions - Ports - Measurements - Attributes
Measure — Return the measured value of declared quantities.
Any number of regular expressions for matching measurement names
Print — Print all auxilliary attributes.
Schedule — Schedule one or more measurements.
A time period
Any number of measurements to be added to the schedule [CURRENTLY UNUSED]
SetAttribute — Set auxilliary attributes of the element.
Any number of key=value expressions or key_a=key_b=key_c=value expressions
Validate — Have the element validate itself.
I2CeepromElement¶
A base class for I2C eeproms
- Constructor —
Optional: Retry limit (for multimaster I2C buses). [Default value = 1]
- Functions declared in I2CeepromElement —
Read — Read the EEPROM and print it as an ASCII string.
Write — Write an ASCII string to the EEPROM.
A string to be written to the eeprom
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
I2Celement¶
A base class for I2C elements
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
JTAGelement¶
A base class for JTAG devices
- Functions declared in JTAGelement —
JtagManualConnect — Manually force the selection of this device in any upstream switch.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
OpticalModuleElement¶
A base class for pluggable optical devices based on the SFP principle
- Functions declared in OpticalModuleElement —
Hard Reset — Strobe the module-reset line for 1ms.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
PMbusElement¶
A base class for PMbus devices
- Functions declared in PMbusElement —
Off — Turn the PMbus device off.
On — Turn the PMbus device on.
Store to NVM — Store the current device configuration to NVM [Requires interactive running].
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
SocketElement¶
A base class for socket elements
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Core Elements¶
Assert¶
Assert that a measurement has a specific value
- Custom process —
TO DO
Bind¶
A component which acts like a keyword to join the input port on a slave device to a declared port on a master device
- Functions declared in Bind —
I2C — Using I2C protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
IO — Using GPIO protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
IPbus — Using IPbus protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
JTAG — Using JTAG protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
Power — Using Power protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
SPI — Using SPI protocol.
A service provider (with bracketed port index if necessary)
A list of consumers (with bracketed port index if necessary)
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Create¶
Create an element of a specific type
- Custom process —
TO DO
Foreach¶
Iterate over all matching names or types
- Custom process —
TO DO
Locate¶
Load a GUI window to locate a component on a board
- Custom process —
TO DO
Plug¶
Connect a ‘Pluggable’ element into a ‘Socket’ element
- Custom process —
TO DO
Run¶
Run a SMASH script
- Custom process —
TO DO
Unbind¶
A component which acts like a keyword to uncouple the input port on a slave device to a declared port on a master device
- Functions declared in Unbind —
I2C — Using I2C protocol.
A list of consumers (with bracketed port index if necessary) to unbind
IO — Using GPIO protocol.
A list of consumers (with bracketed port index if necessary) to unbind
IPbus — Using IPbus protocol.
A list of consumers (with bracketed port index if necessary) to unbind
JTAG — Using JTAG protocol.
A list of consumers (with bracketed port index if necessary) to unbind
Power — Using Power protocol.
A list of consumers (with bracketed port index if necessary) to unbind
SPI — Using SPI protocol.
A list of consumers (with bracketed port index if necessary) to unbind
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Components¶
AT24CS02¶
An ATMEL I2C EEPROM with UID
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from I2CeepromElement —
Read
Write
AT24MAC602¶
An ATMEL I2C EEPROM with UID
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
BCM53134¶
The Broadcomm BCM53134 6-port Gigabit Ethernet Switch
- Constructor —
Chip revision for validation
- Functions declared in BCM53134 —
Too many functions to list, please use tab-completion from an interactive console or use “<Name> List Functions”
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
DaughterCard¶
A Serenity form-factor Daughter-card
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
DaughterCardSocket¶
A socket for a Serenity DaughterCard pluggable
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
DummyComponent¶
A base class for I2C eeproms
- Constructor —
Initial vowel rotation for string munger
Initial consonant rotation for string munger
- Functions declared in DummyComponent —
DocTest Dimensioned — Test Dimensioned.
A test. Specified with units of ‘Hz’, Si prefixes are allowed
A test. Specified with units of ‘Hz’, Si prefixes are allowed
DocTest FilePath — Test FilePath.
File path: A test
File path: A test
DocTest Optional — Test Optional.
Optional: A test. [Default value = 42]
Optional: A test. [Default value = 42]
DocTest PlainDoc — Test plain documentation.
A test
A test
DocTest SelectFrom1 — Test SelectFrom std::map.
A test. Valid options:
A - BA test. Valid options:
A - B
DocTest SelectFrom2 — Test SelectFrom std::unordered_map.
A test. Valid options:
C - DA test. Valid options:
C - D
DocTest SelectFrom3 — Test SelectFrom std::vector.
A test. Valid options:
E - FA test. Valid options:
E - F
DocTest SelectFrom4 — Test SelectFrom std::list.
A test. Valid options:
G - HA test. Valid options:
G - H
DocTest SelectFrom5 — Test SelectFrom initializer-list.
A test. Valid options:
I - JA test. Valid options:
I - J
Force Exception — Force an exception to be thrown.
Munge — Print a munged version of the arguments which follow.
Any number of plain-text arguments to be consumed and munged
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Firefly¶
SSAMTEC FireFly optical modules
- Constructor —
A full Samtec Firefly part number. For ‘Y’ cables, please substitute ‘T’ or ‘R’ to specify whether the site contains a Tx or Rx module.
- Functions declared in Firefly —
Amplitude — Amplitude.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Amplitude. Valid options:
High - Low - Medium - Off
CDR — CDR.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
CDR. Valid options:
Disable - Enable
Channel — Channel.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Channel. Valid options:
Disable - Enable
De-emphasis — De-emphasis.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
De-emphasis. Valid options:
Disable - Enable
Equalization — Equalization.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Equalization. Valid options:
0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - Max - Min - None
LOS alarms — LOS alarms.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
LOS alarms. Valid options:
Fault - "No fault"
Output — Output.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Output. Valid options:
Disable - Enable
Polarity — Polarity.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Polarity. Valid options:
Invert - Normal
Rx Amplitude — Rx Amplitude.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx Amplitude. Valid options:
300mV - 450mV - 600mV - 900mV - Max - Min
Rx CDR — Rx CDR.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx CDR. Valid options:
Disable - Enable
Rx CDR rate — Rx CDR rate.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx CDR rate. Valid options:
Hi - Lo
Rx Output — Rx Output.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx Output. Valid options:
Disable - Enable
Rx Polarity — Rx Polarity.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx Polarity. Valid options:
Invert - Normal
Rx Pre-emphasis — Rx Pre-emphasis.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx Pre-emphasis. Valid options:
0dB - 1dB - 2dB - 3dB - 4dB - 5dB - 6dB - 7.5dB - Max - Min
Rx Squelch — Rx Squelch.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Rx Squelch. Valid options:
Disable - Enable
Soft Reset — Write to the reset register.
Squelch — Squelch.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Squelch. Valid options:
Disable - Enable
Tx CDR — Tx CDR.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx CDR. Valid options:
Disable - Enable
Tx CDR rate — Tx CDR rate.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx CDR rate. Valid options:
Hi - Lo
Tx Equalization — Tx Equalization.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx Equalization. Valid options:
1.3dB - 1.9dB - 2.7dB - 3.7dB - 4.8dB - 6.5dB - 7.2dB - 8.2dB - 8.8dB - 9.8dB - Max - Min
Tx Output — Tx Output.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx Output. Valid options:
Disable - Enable
Tx Polarity — Tx Polarity.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx Polarity. Valid options:
Invert - Normal
Tx Squelch — Tx Squelch.
A channel expression: a comma-delimeted list of channels (1,2,3), an inequality (<4) or a range (1-3), where the indices range from 0-11 for unidirectional parts and 1-4 for bidirectional parts
Tx Squelch. Valid options:
Disable - Enable- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from OpticalModuleElement —
Hard Reset
FireflyPassive¶
A Samtec passive Firefly cable
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
FireflySocket¶
A socket for a Samtec Firefly pluggable
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Ftdi¶
FTDI USB-to-Any-serial converters
- Constructor —
Device type
USB VID as decimal (1027) or hex (0x0403)
USB PID as decimal (24592) or hex (0x6010)
- Functions declared in Ftdi —
Decorate — Specialize a port to a specific protocol.
Protocol. Valid options:
JTAG - I2CInterface. Valid options:
A - B - C - DProtocol Frequency. Specified with units of ‘Hz’, Si prefixes are allowed
Disable — Disable this device via the physical reset line (must be connected and available to SMASH).
Enable — Enable this device via the physical reset line (must be connected and available to SMASH).
Scan — Scan an I2C bus for any responding addresses.
Interface. Valid options:
A - B - C - D
Set Frequency — Set the protocol clock frequency on specified interface.
Interface. Valid options:
A - B - C - DProtocol Frequency. Specified with units of ‘Hz’, Si prefixes are allowed
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
IPbusI2Cmaster¶
A firmware I2C master with an IPbus interface
- Functions declared in IPbusI2Cmaster —
Reset — Reset the firmware core.
Scan — Scan the I2C bus for any responding addresses.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
IPbusI2Cmux¶
A firmware I2C mux controlled via an IPbus interface
- Functions declared in IPbusI2Cmux —
Manual Select — Manually select an I2C output.
Reset — Issue a 1ms reset on the reset line of the specified output.
An output index
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
IPbusJTAGmaster¶
A firmware JTAG master with an IPbus interface
- Functions declared in IPbusJTAGmaster —
Set Frequency — Set the protocol clock frequency.
Protocol Frequency. Specified with units of ‘Hz’, Si prefixes are allowed
Set Tdo Offset — Set the phase of the TDO capture relative to TDI transmission.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
IPbusJTAGmux¶
A firmware JTAG mux controlled via an IPbus interface
- Functions declared in IPbusJTAGmux —
Connect All Targets — Connect all outputs in a daisy-chain, over-riding automated target switching.
Connect Default Target — Restore automated target switching.
Select — Select a JTAG input.
The name of a JTAG source component
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
IPbusSPImaster¶
A firmware SPI master with an IPbus interface
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
JTAGheader¶
A JTAG header which cannot be driven by SMASH
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
LTM4677¶
A Linear Technologies LTM4677 regulator
- Functions declared in LTM4677 —
Clear Fault Log — Reinitialize the fault-logging NVM.
Clear Status Reg — Set all status register fault bits to 0.
Configure — Configure the LTM4677 from a Linear Technology PowerPlay configuration file.
File path: a Linear Technology PowerPlay configuration file
Force Fault Log — Store an artificial fault to NVM.
Freq — Set switching frequency.
A frequency. Valid options:
1000kHz - 250kHz - 350kHz - 425kHz - 500kHz - 575kHz - 650kHz - 750kHz
Vout 1 — Set the output voltage of channel 1.
voltage. Specified with units of ‘V’, Si prefixes are allowed
Vout 2 — Set the output voltage of channel 2.
voltage. Specified with units of ‘V’, Si prefixes are allowed
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from PMbusElement —
Off
On
Store to NVM
LTgroup¶
A group of regulators to be enabled or disabled together
- Constructor —
Any number of components to add to the LTgroup. Used for providing status information only.
- Functions declared in LTgroup —
Configure — Configure the LTM4677 from a Linear Technology PowerPlay configuration file.
File path: a Linear Technology PowerPlay configuration file
Off — Turn the LTgroup off.
On — Turn the LTgroup on.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Max6639¶
Dual fan controller
- Functions declared in Max6639 —
Configure — A hack to set the polarity to enable the fans at 100 percent - needs fixing at some point.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
NDM2Z¶
A CUI Inc. NDM2Z regulator
- Functions declared in NDM2Z —
Freq — Set switching frequency.
A frequency. Valid options:
200kHz - 320kHz - 480kHz - 640kHz
Vout — Set the output voltage of channel.
voltage. Specified with units of ‘V’, Si prefixes are allowed
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from PMbusElement —
Off
On
Store to NVM
NDM3Z¶
A CUI Inc. NDM3Z regulator
- Functions declared in NDM3Z —
Freq — Set switching frequency.
A frequency. Valid options:
200kHz - 320kHz - 480kHz - 640kHz
Vout — Set the output voltage of channel.
voltage. Specified with units of ‘V’, Si prefixes are allowed
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from PMbusElement —
Off
On
Store to NVM
PCAL6524¶
An NXP 24-pin I2C port expander
- Constructor —
Default pin configuration - note: not actually set until first usage!
- Functions declared in PCAL6524 —
Configure — Manually force an update of pin state.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
PowerGroup¶
A group of regulators to be enabled or disabled together
- Constructor —
Any number of components to add to the power group
- Functions declared in PowerGroup —
Off — Turn the PowerGroup off.
On — Turn the PowerGroup on.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
QSFP¶
A QSFP form-factor optical module
- Constructor —
Manufacturer’s name for validation
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from OpticalModuleElement —
Hard Reset
QSFPsocket¶
A socket for a QSFP pluggable
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Si53156¶
PCIe clock fanout buffer
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
Si5345¶
SiliconLabs clock synthesizer and jitter attenuator
- Functions declared in Si5345 —
Configure — Configure the Si5345 from a SiLabs configuration file.
File path: an Si5345 configuration file
Disable — Disable the Si5345.
Enable — Enable the Si5345.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
TLC59208¶
RGB LED controller
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
XilinxFPGA¶
A Xilinx FPGA
- Constructor —
The full Xilinx device ID
- Functions declared in XilinxFPGA —
Decorate — Add optional functionality to FPGA.
Functionality to add. Valid options:
PCIe - XVC - Sysmon
Load Bitstream — Load a bitstream via JTAG.
File path: Path to Bitfile
PCIe connect — Mount the device on the linux PCIe subsystem.
PCIe disconnect — Unmount the device on the linux PCIe subsystem.
PCIe reconnect — Remount the device on the linux PCIe subsystem.
PCIe reset — Strobe the physical PCIe reset line for 1ms.
PCIe tandem boot — Perform a PCIe Tandem Boot operation.
File path: Path to Tandem-boot Bitfile
Reload — Initialize a reload cycle from FLASH.
Unprogram — Hold the FPGA in an unprogrammed state.
- Functions inherited from Element —
List
Measure
Schedule
SetAttribute
Validate
- Functions inherited from JTAGelement —
JtagManualConnect