Difference: AMC13Tool2 (21 vs. 22)

Revision 2218 Jun 2021 - EricHazen

Line: 1 to 1
 
META TOPICPARENT name="AMC13CppProductionSoftware"
AMC13Tool2 is a command-line utility designed to exercise all functions of the AMC13. The tool can be run in either interactive or scripted mode.
Line: 51 to 52
  A script file may be created with a list of AMC13Tool2 commands. A script may be executed in two ways:
Changed:
<
<
  1. By specifying the file name after -X (note capitol X) on the command line
  2. By executing the command include in interactive mode or from within another script
>
>
  1. By specifying the file name after -X (note capitol X) on the command line
  2. By executing the command include <file_name> in interactive mode or from within another script
  After executing a script the tool will normally return to interactive mode. If you wish the tool to exit (e.g. so you can run scripts from within a shell script) just terminate the script with the command quit.
Line: 60 to 61
 

Interactive Mode

The tool will enter interactive mode after executing any scripts specified. A &Launcher::AMC13VerifyFlashHeader,

Changed:
<
<
"*>* prompt is displayed. Type h for a list of commands. Type h <command> for detailed help, or h * for detailed
>
>
"*>* prompt is displayed. Type h for a list of commands. Type h <command> for detailed help, or h * for detailed
 help on all commands.

Generally, interactive commands consist of a command word followed by

Line: 75 to 76
 Tab completion is particularly useful for command words and address table entries.

Wildcards are permitted in address table entries in certain cases.

Changed:
<
<
For example, the command readT1 stat*ttc*err* will read and
>
>
For example, the command readT1 stat*ttc*err* will read and
 display all address table entries matching the expression with wildcards.
Changed:
<
<
Wildcards are simple shell-style by default, where * matches any string.
>
>
Wildcards are simple shell-style by default, where * matches any string.
 An argument may be preceded with the string perl: to force full perl-style regular expression matching.
Line: 111 to 112
  List all connected AMC13 modules with firmware version, serial number and IP addresses. The module currently accepting commands is marked
Changed:
<
<
with a - character.
>
>
with a - character.
  For example:
Changed:
<
<
>list

>
>
>list

 Connected AMC13s *0: SN: 86 T1v: 0211 T2v: 0021 cf: 192.168.1.82 1: SN: 82 T1v: 4007 T2v: 0021 cf: 192.168.1.90
Line: 158 to 156
 Will correctly reset the T1 board.

i (en) <inputs> <options> (initialize AMC13 for data taking)
Changed:
<
<
 i (en)              :   Initialize AMC13

>
>
 i (en)              :   Initialize AMC13

  Usage:
Changed:
<
<
i
>
>
i
  inputs: list of inputs e.g. '1-12' '*' enables all inputs which show AMC link ready options: T to enable loop-back TTC on TTS output fiber
Line: 172 to 168
  Using "F" will cause fake data of size determined by the T1 register CONF.AMC.FAKE_DATA_SIZE ( addr 0x18 ) to appear to come from the AMC slots given in the list of inputs. The list of inputs is comma delimited with no spaces, and you can use single numbers( 2,7,10 ), inclusive ranges indicated with a hyphen ( 1-7 ), or a combination of the two ( 1-3,5,7,9-12).
Changed:
<
<
When using multiple event builders ( >daq 2 for example ), you must enable at least one AMC slot for each SFP channel. See the daq command for more info.
>
>
When using multiple event builders ( >daq 2 for example ), you must enable at least one AMC slot for each SFP channel. See the daq command for more info.
 
daq <config> (configure DAQ fiber output)
Line: 185 to 181
 
  • d - disable all fibers
  • 0 - disable all fibers
Changed:
<
<
Enter 'L' after number of DAQs to enable local mode (using local triggers). Example: >daq 2 L.
>
>
Enter 'L' after number of DAQs to enable local mode (using local triggers). Example: >daq 2 L.
  When initializing AMCs, at least one AMC from each SFP channel must be initialized.

Line: 205 to 201
 
burst number of triggers per burst in single-burst mode
rate number of orbits or BX between triggers or random rate in Hz units
Added:
>
>
The burst parameter is ignored in random mode.
 
Added:
>
>
The maximum rate which can be specified is about 1MHz but the trigger rules limit it to less than that unless they are disabled (see below). The low 4 bits of the specified rate are ignored (use value is divided by 16, written to a register, and then multiplied by 16 in the firmware).

Note that CMS "standard" trigger rules are applied. Individual rules may be disabled, see Local_L1A_Generator.

 
setOcrCommand (set orbit count reset TTC command)
Line: 224 to 224
  This command sets the parameters for capture of selected events in the SDRAM buffer for readout over IPBus using the commands re and df or other means.
Changed:
<
<
    mode:  0 for simple prescale (record every n events, n from 1...0x10000)

>
>
    mode:  0 for simple prescale (record every n events, n from 1...0x10000)

  1 to match EvN with n low bits =0 where n from 5..20 factor: if mode=0, 1...0x10000 if mode=1, 5..20
Line: 275 to 272
 Option "D" provides debugging output.

For example:

Changed:
<
<
>nodes t1 *ttc*error*

>
>
>nodes t1 *ttc*error*

 9 nodes matched 0: STATUS.TTC.BCNT_ERROR chip_type: specifies firmware file suffix denoting T2 chip type (addr=00000000 mask=00000040) r 1: STATUS.TTC.BCNT_ERRORS_HI (addr=00000045 mask=0000ffff) r
Line: 288 to 283
  6: STATUS.TTC.SGL_BIT_ERROR (addr=00000000 mask=00000080) r 7: STATUS.TTC.SGL_BIT_ERRORS_HI (addr=00000041 mask=0000ffff) r 8: STATUS.TTC.SGL_BIT_ERRORS_LO (addr=00000040 mask=ffffffff) r
Changed:
<
<
>
>
>
>
 

Verbose option to display descriptions:

Changed:
<
<
>nodes t1 status*tts_state v

>
>
>nodes t1 status*tts_state v

 2 nodes matched 0: STATUS.AMC_TTS_STATE (addr=00000019 mask=001f0000) r encoded TTS from enabled AMCs 1: STATUS.T1_TTS_STATE (addr=00000019 mask=0000f000) r Current T1 overall TTS state
Changed:
<
<
>
>
>
>
 

re <all> (read/display event from SDRAM)
Line: 324 to 317
 The file format is defined as a list of 64-bit words in little-endian byte order as follows. See AMC13CommonFirmwareProposal for detailed description of AMC13 payload format.
Changed:
<
<
  badc0ffeebadcafe   magic number present at start of each event

>
>
  badc0ffeebadcafe   magic number present at start of each event

  cccccccccccccccc size of event in 64-bit words 510000781f412308 CMS common data format header 104101401a540110 AMC13 header, specifying 4 AMCs
Line: 337 to 328
 

ttc <options> (control TTC history capture)
Changed:
<
<
Usage:

>
>
Usage:

  ttc h on - ttc history enable ttc h off - ttc history disable ttc h clr - ttc history clear
Changed:
<
<
ttc h d - ttc history display items or all
>
>
ttc h d - ttc history display items or all
  ttc f on - ttc filter enable ttc f off - ttc filter disable ttc f clr - ttc filter clear
Changed:
<
<
ttc f s ! ! - set TTC filter list item is item 0-15 to set is value to match for filtering commands is bits to ignore when filtering commands
>
>
ttc f s ! ! - set TTC filter list item is item 0-15 to set is value to match for filtering commands is bits to ignore when filtering commands
  ttc f list - list currently-defined filters
Changed:
<
<
ttc f ena - enable specific filter by number ttc f dis - disable specific filter by number
>
>
ttc f ena - enable specific filter by number ttc f dis - disable specific filter by number
 

The TTC history capture must be enabled with ttc h on. Using the default settings (no filters) the history will fill with BC0 commands. To set up a filter to ignore BC0, use the following command:

Changed:
<
<
  > ttc f s 1 0xfe

>
>
  > ttc f s 1 0xfe

 

For example:

Changed:
<
<
[hazen@cms4 amc13]$ AMC13Tool2.exe -c 192.168.1.176

>
>
[hazen@cms4 amc13]$ AMC13Tool2.exe -c 192.168.1.176

  ...
Changed:
<
<
>en 1-4 f t
>
>
>en 1-4 f t
 parsed list "1-4" as mask 0xf Enabling fake data Enabling TTS as TTC for loop-back AMC13 out of run mode AMC13 is back in run mode and ready
Changed:
<
<
>ttc h on (turn on TTC history)
>ttc h d 5 (display 5 commands)
>
>
>ttc h on (turn on TTC history) >ttc h d 5 (display 5 commands)
 History buffer has 512 entries NOTE: TTC history capture disabled before readout Cmd --Orbit- BcN --EvN-
Line: 383 to 368
  2: 01 0003cf50 dea 000001 3: 01 0003cf51 dea 000001 4: 01 0003cf52 dea 000001
Changed:
<
<
>ttc f s 0 0x01 0xfe (set filter item 0 to 0x01 with mask 0xfe)
>ttc f on (turn on filtering)
>ttc h clr (clear the history)
>ttc h on (turn history back on)
>ttc h d 5 (display 5 entries)
>
>
>ttc f s 0 0x01 0xfe (set filter item 0 to 0x01 with mask 0xfe) >ttc f on (turn on filtering) >ttc h clr (clear the history) >ttc h on (turn history back on) >ttc h d 5 (display 5 entries)
 History buffer has 0 entries
Changed:
<
<
>ttc h on (turn history back on)
>wv ACTION.LOCAL_TRIG.SEND_OCR (send OcR command)
>wv ACTION.LOCAL_TRIG.SEND_OCR (twice for fun)
>ttc h d 5 (display 5 entries)
>
>
>ttc h on (turn history back on) >wv ACTION.LOCAL_TRIG.SEND_OCR (send OcR command) >wv ACTION.LOCAL_TRIG.SEND_OCR (twice for fun) >ttc h d 5 (display 5 entries)
 History buffer has 2 entries NOTE: TTC history capture disabled before readout Cmd --Orbit- BcN --EvN- 0: 28 00021c6b a17 000001 1: 28 000203d5 b65 000001
Changed:
<
<
>ttc f list (list the items being filtered)
>
>
>ttc f list (list the items being filtered)
 Item Ena CMD Mask
  1. On 01 fe
  2. Off 00 00 ... 15 Off 00 00
Changed:
<
<
>
>
>
>
 

The detailed documentation for the following commands hasn't been written yet, but in general they should be used only by expert users.

Changed:
<
<
 vfh                 :   verify flash header -- vfh OR vfh 
 vbs                 :   verify flash golden -- vbs OR vbs 
 vs                  :   verify flash spartan -- vs OR vs 
 vv (vk)             :   verify flash virtex/kintex -- vv OR vv 
 pfh                 :   program flash header -- pfh OR pfh 
 pbs                 :   program flash golden -- pbs OR pbs 
 ps                  :   program flash spartan -- ps OR ps 
 pv (pk)             :   program flash virtex/kintex -- pv OR pv 

>
>
 vfh                 :   verify flash header -- vfh OR vfh <chip_type>
 vbs                 :   verify flash golden -- vbs OR vbs <chip_type>
 vs                  :   verify flash spartan -- vs OR vs <chip_type>
 vv (vk)             :   verify flash virtex/kintex -- vv OR vv <chip_type>
 pfh                 :   program flash header -- pfh OR pfh <chip_type>
 pbs                 :   program flash golden -- pbs OR pbs <chip_type>
 ps                  :   program flash spartan -- ps OR ps <chip_type>
 pv (pk)             :   program flash virtex/kintex -- pv OR pv <chip_type>

  status (st) : Display AMC13 Status usage:
Changed:
<
<
status table_name
>
>
status table_name
  level from 1..9 with 1 being least verbose (99 displays everything) table_name limits the display to the table named statusHTML : Display AMC13 status in basic HTML format usage:
Changed:
<
<
statusHTML table_name
>
>
statusHTML table_name
  level from 1..9 with 1 being least verbose (99 displays everything) table_name limits the display to the table named openStatusFile : Open a text file to stream status info to
Line: 453 to 437
 vfh: verify flash header Usage: vfh OR vfh
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
vbs (Verify Backup Spartan, e.g. Golden)
vbs:    verify flash backup spartan (golden) \n" \
             Usage:
             vbs OR vbs <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
vs (Verify Spartan, e.g. T2)
vs:     verify flash spartan
             Usage:
             vs OR vs <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
vk (or vv) (Verify Kintex/Virtex, e.g. T1)
vv:     verify flash virtex/kintex
             Usage:
             vv OR vv <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
pfh (Program Flash Header)
pfh:    program flash header\n" \
             Usage:\n" \
             pfh OR pfh <chip_type>\n" \
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
pbs (Program Backup Spartan, e.g. Golden)
pbs:   program flash backup spartan (golden)
             Usage:
             pbs OR pbs <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
ps (Program Spartan, e.g. T2)
ps:     program flash spartan
             Usage:
             ps OR ps <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
pk (or pv) (Program Kintex/Virtex, e.g. T1)
pv:     program flash virtex/kintex
             Usage:
             pv OR pv <chip_type>
Changed:
<
<
chip_type: specifies firmware file suffix denoting T2 chip type
>
>
chip_type: specifies firmware file suffix denoting T2 chip type
 
reconfigureFPGAs (reconfigure FPGAs from flash)

Troubleshooting

Line: 512 to 488
 
dump (wu): dump registers in Mr. Wu's format to .txt file with a status (st) command at the end
             Usage:
Changed:
<
<
wu OR wu OR wu OR wu
>
>
wu OR wu OR wu OR wu
  -- EricHazen - 18 Oct 2014
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback