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

  • Print

  • Schedule

  • SetAttribute

  • Validate

I2Celement

A base class for I2C elements

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

SocketElement

A base class for socket elements

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

Components

AT24CS02

An ATMEL I2C EEPROM with UID

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

Functions inherited from I2CeepromElement
  • Read

  • Write

AT24MAC602

An ATMEL I2C EEPROM with UID

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

DaughterCard

A Serenity form-factor Daughter-card

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

DaughterCardSocket

A socket for a Serenity DaughterCard pluggable

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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 - B
    
  • A test. Valid options:

    A - B
    
  • DocTest SelectFrom2 — Test SelectFrom std::unordered_map.

  • A test. Valid options:

    C - D
    
  • A test. Valid options:

    C - D
    
  • DocTest SelectFrom3 — Test SelectFrom std::vector.

  • A test. Valid options:

    E - F
    
  • A test. Valid options:

    E - F
    
  • DocTest SelectFrom4 — Test SelectFrom std::list.

  • A test. Valid options:

    G - H
    
  • A test. Valid options:

    G - H
    
  • DocTest SelectFrom5 — Test SelectFrom initializer-list.

  • A test. Valid options:

    I - J
    
  • A 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

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

Functions inherited from OpticalModuleElement
  • Hard Reset

FireflyPassive

A Samtec passive Firefly cable

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

FireflySocket

A socket for a Samtec Firefly pluggable

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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 - I2C
    
  • Interface. Valid options:

    A - B - C - D
    
  • Protocol 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 - D
    
  • Protocol Frequency. Specified with units of ‘Hz’, Si prefixes are allowed

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

IPbusSPImaster

A firmware SPI master with an IPbus interface

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

JTAGheader

A JTAG header which cannot be driven by SMASH

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

QSFP

A QSFP form-factor optical module

Constructor —
  • Manufacturer’s name for validation

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

Functions inherited from OpticalModuleElement
  • Hard Reset

QSFPsocket

A socket for a QSFP pluggable

Functions inherited from Element
  • List

  • Measure

  • Print

  • Schedule

  • SetAttribute

  • Validate

Si53156

PCIe clock fanout buffer

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

TLC59208

RGB LED controller

Functions inherited from Element
  • List

  • Measure

  • Print

  • 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

  • Print

  • Schedule

  • SetAttribute

  • Validate

Functions inherited from JTAGelement
  • JtagManualConnect