Difference: AMC13Tool (3 vs. 4)

Revision 417 Sep 2012 - CharlieHill

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"
Using the tool at P5:
  • ssh cmsusr0
Line: 21 to 21
  Spartan Firmware Version: 0xb
Added:
>
>
Important Notes
  • Address Tables are looked for in two locations: ${pwd} and ./map. If they are not found there, then the XDAQ_ROOT AMC13 Address Tables are used, and these may not be up-to-date with the most current software (if one has update their source tree from CVS since the release)
  • As of 11_5_3, the most current Tool lives at 11_5_3/hcal/hcalUpgrade/amc13/bin/linux/x86_64_slc5/AMC13Tool.exe

 Funtionality
Changed:
<
<
*=q=
quit program *=do =: execute a shell script *=sh =: execute a shell *=i (d) (f) (t) (b)=: enable AMC13 *== is the list of AMC inputs to be enabled (of ports 0-11) *'=d=' is an optional flag to enable the 'DAQLink' bit on register 'CONTROL1' (address 0x1) *'=f=' is an optional flag to enable the 'Fake Data Generation' bit on register 'CONTROL1' (address 0x1) *'=t=' is an optional flag to enable the 'TTCRx Commands' bit on register 'CONTROL1' (address 0x1) *'=b=' is an optional flag to enable the 'Stop EVB when Monitor Buffer Full' bit on register 'CONTROL1' (address 0x1)
*NOTE
'=en=' is a synonym to '=i=' *=st =: displays the status of the AMC13 registers and counters *== is an optional numeric entry to set the detail of the display (0 least detailed, 2 most detailed)
*=rg=
sends a reset to both Spartan and Virtex chips by writing a 0x1 to their 'CONTROL0' regisers (address 0x0)
*=rc=
resets the counters on the Virtex chip *=rs(v) [count]=: read registers from the Spartan (Virtex) chip *== is the address to be read. Can either be the numeric register address or the register name from the Address Table *=[count]= is the number of words to be read from the chip. The addresses are read incrementally starting from
>
>
  • 'q': quit program
  • 'do <file>': execute a shell script
  • 'sh <command>': execute a shell
  • 'i <ena_list> (d) (f) (t) (b)': enable AMC13
    • '<ena_list>' is the list of AMC inputs to be enabled (of ports 0-11)
    • 'd' is an optional flag to enable the 'DAQLink' bit on register 'CONTROL1' (address 0x1)
    • 'f' is an optional flag to enable the 'Fake Data Generation' bit on register 'CONTROL1' (address 0x1)
    • 't' is an optional flag to enable the 'TTCRx Commands' bit on register 'CONTROL1' (address 0x1)
    • 'b' is an optional flag to enable the 'Stop EVB when Monitor Buffer Full' bit on register 'CONTROL1' (address 0x1)
    • NOTE: 'en' is a synonym to 'i'
  • 'st <level>': displays the status of the AMC13 registers and counters
    • '<level>' is an optional numeric entry to set the detail of the display (0 least detailed, 2 most detailed)
  • 'rg': sends a reset to both Spartan and Virtex chips by writing a 0x1 to their 'CONTROL0' regisers (address 0x0)
  • 'rc': resets the counters on the Virtex chip
  • 'rs(v) <add> [count]': read registers from the Spartan (Virtex) chip
    • '<add>' is the address to be read. Can either be the numeric register address or the register name from the Address Table
    • '[count]' is the number of words to be read from the chip. The addresses are read incrementally starting from
  *e.g.
      Pick an action (h for menu): rv 0x0 10

Line: 54 to 59
  00000008: 00000000 00000009: 0d800d80
Changed:
<
<
*=brs(v) [count]=: block read Spartan (Virtex) chip *== is the starting address of the block read *=[count]= is the number of addresses to be read from the block *=frs(v) [count]=: FIFO read from the Spartan (Virtex) chip *== is the address to be FIFO read *=[count]= is the number of reads to be carried out at *=ws(v) [count]=: write to Spartan (Virtex) chip *== is the address to be written to *= is the data to be written to *=[count]= is the number of addresses to be read incrementally from

fv get firmware version
i init (reset spartan and virtex and enable TTC)
res reset spartan
rev reset virtex
v virtex voltages
t virtex die temperature
enT enable TTC
erT TTC error counts
s(v)T n read spartan (virtex) TTC n times
ras(v) read all spartan (virtex) registers
rs(v) add n single read spartan (virtex) n words from add
rrs(v) read spartan (virtex) by register name
ws(v) add n single write spartan (virtex) n words from add
brs(v) add n block read spartan (virtex) n words from add
frs(v) add n read spartan (virtex) fifo
wrs(v) write spartan (virtex) by register name
bws(v) add data n block write spartan (virtex)
qws(v) add data queued write spartan (virtex) data
fws(v) add data n write spartan (virtex) fifo
rf add read 256 bytes from flash at add
vfh verify flash header
vs(v) verify spartan (virtex) flash
vbs verify spartan backup flash
PFH program flash header
PS(V) program spartan (virtex) flash
PBS program spartan backup flash
L load (both spartan and virtex) firmware from flash
>
>
  • 'brs(v) <add> [count]': block read Spartan (Virtex) chip
    • '<add>' is the starting address of the block read
    • '[count]' is the number of addresses to be read from the block
  • 'frs(v) <add> [count]': FIFO read from the Spartan (Virtex) chip
    • '<add>' is the address to be FIFO read
    • '[count]' is the number of reads to be carried out at
  • 'ws(v) <add> <data> [count]': write to Spartan (Virtex) chip
    • '<add>' is the address to be written to
    • '<data>' is the data to be written
    • '[count]' is the number of addresses to be read incrementally from '=<add>'=
  • 'bws(v) <add> [<data_list>]': block write a data list to Spartan (Virtex)
    • '<add>' is the starting address of the block write
    • '[<data_list>]' is the comma/space separated list of data to be written
    • e.g.
            Pick an action (h for menu): bws CONTROL0 1 2 3
            Block writing to T2 from address 0x0 to address 0x2:
              00000000: 00000001
              00000001: 00000002
              00000002: 00000003
            
  • 'qws(v) <add> [<data_list>]': queued write to Spartan (Virtex) chip
    • '<add>' is the starting address for the queued write
    • '[<data_list>]' is the comma/space separated list of data to be written
    • e.g.
            qws CONTROL0 1 2 3
            Queue writing to T2 from address 0x0 to address 0x2:
              00000000: 00000001
              00000001: 00000002
              00000002: 00000003
            
  • 'fws(v) <add> [<data_list>]': FIFO write to Spartan (Virtex) chip
    • '<add>' is the address to FIFO written to
    • '[<data_list>]' is the comma/space separated list of data to be written
    • e.g.
            fws CONTROL0 1 2 3
            FIFO writing to T2 at address 0x0:
              00000000: 00000001 00000002 00000003
            
  • 'nw': display number of words in the next event in the SDRAM buffer
  • 'rd': display the data of the current event in the SDRAM buffer without advancing to the next event (without advancing the read pointer)
  • 'rk': display a unpacked, checked event. NOTE: this command doesn't do much yet
  • 'ne': advance to the next event in the buffer (advances the read pointer)
  • 'df <file> (c) (r) (v) [count]': dump a given number of events to a file
    • '<file>' is the name of the file to which the data will be written [required]
    • '(c)' enables continuous reading [optional]
      • if enabled, the program waits for the next event when it reaches the end of the buffer (when there are no more events to be read out)
      • if disabled, the read finishes when the end of the buffer is reached
    • '(r)' enables reduced reading [optional]
      • if enabled, only the EvN, BcN, and OrN will be read, and they will be written to the file in a '.csv' format
      • if disabled, the entire event will be written to the file in a binary format
    • '(v)' enables verbose mode [optional]
      • if enabled, the program will produce standard output for every event written to the file (for minute debugging only)
      • if disabled, the program will produce standard output for every 1000 events written to the file (recommended)
    • '[count]' is the number of events to read out [optional]
      • if not specified...
        • if 'c' is enabled, 1,000,000 events will be read out by default
        • if 'c' is not enabled, 2048 events (the size of the buffer) will be read out be default
  • 'dft <file> (r)' send a given number of triggers and reads them to a file [Boston University ONLY]
    • '<file>' is the name of the file to which the data will be written [required]
    • '(r)' enables reduced reading [optional]
      • if enabled, only the EvN, BcN, and OrN will be read, and they will be written to the file in a '.csv' format
      • if disabled, the entire event will be written to the file in a binary format
  • 'fv': display both Virtex and Spartan firmware versions
  • 'rf <add>': read page (256 bytes) from Flash Memory
    • '<add>' is the flash address from which to read
  • 'vfh': verify Flash Header, flash address 0x000000
  • 'vbs': verify Golden Flash, flash address 0x100000
  • 'vs(v)': verify Spartan (Virtex) Flash, flash address 0x200000 (0x400000)
  • 'pfh': program flash header, flash address 0x00000
  • 'pbs': program Golden Flash, flash address 0x100000
  • 'ps(v)': program Spartan (Virtex) Flash, flash address 0x200000 (0x400000)
  • 'L': load Spartan and Virtex chips from Flash Memory
  • 'ipadd <ip_addr>': add IP device to list of IP devices (which is initially empty). List of devices starts at 0!
    • '<ip_addr>' is the ip address of the device to be added
  • 'ipr <n> <addr>': read from an IP device
    • '<n>' is the device number in the list of IP devices created by 'ipadd'. List of devices starts at 0!
    • '<addr>' is the address to be read from the specified IP device
  • 'ipw <n> <addr> <data>': write to an IP device
    • '<n>' is the device number in the list of IP devices created by 'ipadd'. List of devices starts at 0!
    • '<addr>' is the address to be written to on the specified IP device
    • '<data>' is the data to be written
  • 'ipst': display the status of all uHTRs whose IP addresses are have been added via 'ipadd'

 
Changed:
<
<
-- JimRohlf - 26 May 2012
>
>
-- Main. Charlie Hill - 17 Sept 2012
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback