Difference: AMC13MmcSoftware (1 vs. 13)

Revision 1311 May 2015 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13/dev_tools/amc13Config directory in the amc13 svn, amc13config directory in the xDAQ release or Standalone Release of the Legacy Software Package. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Line: 114 to 114
 IP address stored in non-volatile memory WILL NOT be applied for following:
  1. Power cycle of board by handle reset (pushing handle out and in)
  2. Power cycle via use of MMC software (coldReset.py, handleOverride.py, backendPower.py, etc.)
Added:
>
>
  1. Reconfiguration of FPGA via AMC13Tool or AMC13Tool2.
WARNING
With this second type of power cycle, the boards will actually revert to the IP address that was stored in the Non-volatile memory that last time the first type of power cycle was used. This can become extremely confusing, so as a rule, any time one stores a IP address in the non-volatile memory, one should do a power cycle of the first type (that actually applies the IP address in non-volatile memory).
  NOTE: It takes several seconds after a power cycle for the IP address to finally be set to the correct value. If there are problems, use one of the above working power cycle methods and wait a full 15 seconds (much more than needed) to give it the full time to power up and then check the IP addresses.

Revision 1204 Mar 2015 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

Changed:
<
<
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release of the Legacy Software Package. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
>
>
The AMC13 MMC software package can be found in the amc13/dev_tools/amc13Config directory in the amc13 svn, amc13config directory in the xDAQ release or Standalone Release of the Legacy Software Package. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
  WARNING about ipmitool version problems: IpmiToolVersions

Revision 1104 Sep 2014 - EricHazen

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

Changed:
<
<
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
>
>
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release of the Legacy Software Package. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
  WARNING about ipmitool version problems: IpmiToolVersions

Revision 1012 May 2014 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Line: 115 to 115
 
  1. Power cycle of board by handle reset (pushing handle out and in)
  2. Power cycle via use of MMC software (coldReset.py, handleOverride.py, backendPower.py, etc.)
Added:
>
>
NOTE: It takes several seconds after a power cycle for the IP address to finally be set to the correct value. If there are problems, use one of the above working power cycle methods and wait a full 15 seconds (much more than needed) to give it the full time to power up and then check the IP addresses.

NOTE: Upon power-up, it seems that the IP address cycles through various transiting values before settling on the IP address stored in non-volatile memory (if any). If one checks the IP address too soon after a power cycle, you may see an expected IP address for one or both chips. In order after power-cycle the IP address of the chips can step through several values: 1. IP address bits all 1's (ff.fff.ff.ff) 2. IP address set to SN default (regardless of whether something is in non-volatile memory or not) 3. IP address set to value indicated in non-volatile memory (if any) Typically this whole process takes only a few seconds, but you may encounter them.

 

backendPower.py

This script is used to enable and disable the back-end power remotely to the AMC13. The script is to be run as follows:

Revision 909 Apr 2014 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Line: 50 to 50
 

applyConfig.py

Changed:
<
<
This Python script is used to apply (not store) IP address to each Tongue on the AMC13 after powerup:
>
>
This Python script is used to apply (not store) IP address to each Tongue on the AMC13:
 
./applyIPs.py (--host=<ip_addr>) (--slot=<n>) --spartan=<ip_addr> --virtex=<ip_addr>
Line: 77 to 77
 

storeConfig.py

Changed:
<
<
This Python script is used to store (not apply) IP addresses in the MMC EEPROM for the configuration of both Tongues upon powerup:
>
>
This Python script is used to store (not apply) IP addresses in the MMC EEPROM for the configuration of both Tongues upon powerup (Please see below storeConfig.py Power-up Notes):
 
./storeConfig.py (--host=<ip_addr>) (--slot=<n>) --spartan=<ip_addr> --virtex=<ip_addr>
Line: 102 to 102
 
--ip IP address to be assigned to T2 with an IP address with the final byte one larger than the provided IP to be assigned to T1. This flag can only be used instead of (not in addition to) the --spartan and --virtex flags
--serial Assign the IP addresses of both Tongues using the provided serial number: T2 ~ 192.168.1.(254-(2*SN)), T1 ~ 192.168.1.(255-(2*SN))
Added:
>
>
storeConfig.py Power-up Notes:

As of MMC version 2.1, the following is true:

IP address stored in non-volatile memory is applied if:

  1. Power cycle of entire crate
  2. Power cycle of board by physically removing the board and putting it back in
  3. Sending a 'mreset' command via console
IP address stored in non-volatile memory WILL NOT be applied for following:
  1. Power cycle of board by handle reset (pushing handle out and in)
  2. Power cycle via use of MMC software (coldReset.py, handleOverride.py, backendPower.py, etc.)
 

backendPower.py

This script is used to enable and disable the back-end power remotely to the AMC13. The script is to be run as follows:

Revision 814 Mar 2014 - EricHazen

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Line: 23 to 23
 This Python module holds some important variables which, once set, probably won't need to be changed again (on a given system). This file conveniently makes it so that once properly adjusted, all default values for amc13Config script flags should be useful.
Variable Description
DEFAULT_HOST_IP The IP address for your commercial MCH module in the uTCA crate
Changed:
<
<
DEFAULT_AMC13_SLOT The desired default slot value for your AMC13 (on-based, as listed on the front of the Vadatech uTCA crate)
>
>
DEFAULT_AMC13_SLOT The desired default slot value for your AMC13 (one-based, as listed on the front of the Vadatech uTCA crate)
 
DEFAULT_CONFIG_DIR The location of the PERL tools which are used for the MMC actions (this shouldn't ever need to be changed)
NETWORK_BASE The network base for all IP addresses in your uTCA crate

Revision 710 Dec 2013 - EricHazen

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Added:
>
>
WARNING about ipmitool version problems: IpmiToolVersions
 NOTE!! Some of these scripts are use PERL scripts found in the config_tools directory

Contents

Revision 631 May 2013 - CharlieHill

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Line: 14 to 14
 
backendPower.py
coldReset.py
handleOverride.py
Added:
>
>
mmcVersion.py
 

systemVars.py

Line: 33 to 34
 All flags that are in parentheses are optional and and will take on their default values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
Changed:
<
<
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
>
>
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be read from. If not specified, defaults to value in systemVars.py
 

readNVmem.py

Line: 43 to 44
 
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
Changed:
<
<
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
>
>
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be read from. If not specified, defaults to value in systemVars.py
 

applyConfig.py

Line: 108 to 109
 All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
Changed:
<
<
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
>
>
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be powered. If not specified, defaults to value in systemVars.py
 
--enable Turn on the backend power
-disable Turn off the backend power
Line: 121 to 122
 All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
Changed:
<
<
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
>
>
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be reset. If not specified, defaults to value in systemVars.py
 

handleOverride.py

Line: 132 to 133
 All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
Changed:
<
<
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
>
>
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be controlled. If not specified, defaults to value in systemVars.py
 
in Force handle in
out Force handle out
cycle Force handle out for 10 seconds and then issue a release
release Handle not forced, but instead the actual handle position is payed attention to
Added:
>
>

mmcVersion.py

This script is used to read out the MMC firmware version on a specified AMC13
./mmcVersion.py (--host=<ip_addr>) (--slot=<n>)
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be read from. If not specified, defaults to value in systemVars.py
 

-- CharlieHill - 08 May 2013

Revision 530 May 2013 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
Added:
>
>
NOTE!! Some of these scripts are use PERL scripts found in the config_tools directory
 
Contents
systemVars.py
readIPs.py

Revision 430 May 2013 - DavidZou

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

AMC13 MMC Software

Changed:
<
<
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package provides the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to enable automatic configuration of each AMC13 tongue from these stored bytes upon a request from each tongue's FPGA, and to issue useful commands remotely such as resets and handle swaps. This page discusses the functionality and capabilities of the MMC software scripts.
>
>
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package is a collection of python scripts which provide the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to apply directly configuration information to an AMC13 after power up, and to issue useful commands remotely such as resets and handle swaps.
 
Contents
Changed:
<
<
amc13config script
backend_power script
cold_reset script
handle_override script
Configuration File Format
Determining IPMB Address and FRU Number

amc13config

This script is used for configuring the AMC13 FPGAs using the MMC. The script is to be run as follows:
./amc13config --host=192.168.1.240 [--slot=13] [--user=root] [--pass=admin] [--enable|--disable] [--store=config.txt] [--apply=config.txt] [--autoslot]
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, this option defaults to '13'
--user Specify the OS user for your MCH1 device. If not specified, this option defaults to 'root'. This flag shouldn't typically need to be set
--pass Passcode for access to the aforementioned user on the MCH OS. If not specified, this option defaults to 'root'. This flag shouldn't typically need to be set
--enable Enable the automatic configuration of the AMC13 FPGAs from the bytes stored in its respective SPI port's EEPROM
--disable Disables the automatic configuration of the AMC13 FPGAs from the bytes stored in its respecive SPI port's EEPROM
--store=file.conf Store the configuration contents of file.conf to MMC EEPROM. See below for further information on this file's layout
--apply=file.conf Apply the configuration contents of file.conf to FPGAs directly. This command will only work if the chips are requesting information from the MMC, which is typically not the case following startup, since the FPGAs will configure from the T2 jumpers if no packets are received from the SPI ports
--autoslot Automatically replaces the first byte of the configuration packet with the AMC13's slot number in the uTCA crate. Note that in order for this command to work, you must carry around the byte to be replaced in the configuration file, even if it is just 00. See below for more information regarding the format of the configuration file
>
>
systemVars.py
readIPs.py
readNVmem.py
applyConfig.py
storeConfig.py
backendPower.py
coldReset.py
handleOverride.py

systemVars.py

This Python module holds some important variables which, once set, probably won't need to be changed again (on a given system). This file conveniently makes it so that once properly adjusted, all default values for amc13Config script flags should be useful.
Variable Description
DEFAULT_HOST_IP The IP address for your commercial MCH module in the uTCA crate
DEFAULT_AMC13_SLOT The desired default slot value for your AMC13 (on-based, as listed on the front of the Vadatech uTCA crate)
DEFAULT_CONFIG_DIR The location of the PERL tools which are used for the MMC actions (this shouldn't ever need to be changed)
NETWORK_BASE The network base for all IP addresses in your uTCA crate

readIPs.py

This Python script is used to read out the IP address for each Tongue on the AMC13 using IPMI:
./readIPs.py (--host=<ip_addr>) (--slot=<n>)
All flags that are in parentheses are optional and and will take on their default values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py

readNVmem.py

This Python script is used to read out 40 bytes of non-volatile memory at an address specified by an NV area read
./readNVmem.py (--host=<ip_addr>) (--slot=<n>)
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py

applyConfig.py

This Python script is used to apply (not store) IP address to each Tongue on the AMC13 after powerup:
./applyIPs.py (--host=<ip_addr>) (--slot=<n>) --spartan=<ip_addr> --virtex=<ip_addr>
Optionally, you can specify only one IP address instead of both, which will apply the provided IP to T2 while applying an IP whose final byte is one higher than the provided IP to T1. For example, the flag command would set the following IP addresses:
--ip=192.168.1.100
  Spartan: 192.168.1.100
  Virtex: 192.168.1.101
As yet another option, you can simply specify the serial number of your AMC13, which will apply IP addresses to both Tongues via the following scheme:
--serial=<SN>  
  Spartan: 192.168.1.(254-(2*SN))
  Virtex: 192.168.1.(255-(2*SN))
All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
--spartan IP address to be assigned to T2
--virtex IP address to be assigned to T1
--ip IP address to be assigned to T2 with an IP address with the final byte one larger than the provided IP to be assigned to T1. This flag can only be used instead of (not in addition to) the --spartan and --virtex flags
--serial Assign the IP addresses of both Tongues using the provided serial number: T2 ~ 192.168.1.(254-(2*SN)), T1 ~ 192.168.1.(255-(2*SN))

storeConfig.py

This Python script is used to store (not apply) IP addresses in the MMC EEPROM for the configuration of both Tongues upon powerup:
./storeConfig.py (--host=<ip_addr>) (--slot=<n>) --spartan=<ip_addr> --virtex=<ip_addr>
Optionally, you can specify only one IP address instead of both, which will store the provided IP for T2 while storing an IP whose final byte is one higher than the provided IP for T1. For example, the flag command would store the following IP addresses:
--ip=192.168.1.100
  Spartan: 192.168.1.100
  Virtex: 192.168.1.101
As yet another option, you can simply specify the serial number of your AMC13, which will store IP addresses for both Tongues via the following scheme:
--serial=<SN>  
  Spartan: 192.168.1.(254-(2*SN))
  Virtex: 192.168.1.(255-(2*SN))
All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
--spartan IP address to be assigned to T2
--virtex IP address to be assigned to T1
--ip IP address to be assigned to T2 with an IP address with the final byte one larger than the provided IP to be assigned to T1. This flag can only be used instead of (not in addition to) the --spartan and --virtex flags
--serial Assign the IP addresses of both Tongues using the provided serial number: T2 ~ 192.168.1.(254-(2*SN)), T1 ~ 192.168.1.(255-(2*SN))
 
Changed:
<
<

backend_power

>
>

backendPower.py

 This script is used to enable and disable the back-end power remotely to the AMC13. The script is to be run as follows:
Changed:
<
<
./backend_power ip_addr on|off [ipmb_addr=0xa4]
>
>
./backend_power (--host=) (--slot=) --enable|--disable
 
Changed:
<
<
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
>
>
All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
 
Flag Description
Changed:
<
<
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
on Turn back-end power on
off Turn back-end power off
ipmb_addr IPMB Address for the target AMC13. Default value is 0xa4 for an AMC13 in slot 13. See below for more information regarding IPMB addresses
>
>
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
--enable Turn on the backend power
-disable Turn off the backend power
 
Changed:
<
<

cold_reset

>
>

coldReset.py

 This script is used to issue a cold reset remotely to an AMC13. The script is to be run as follows:
Changed:
<
<
./cold_reset ip_addr [fru=30]
>
>
./cold_reset (--host=) (--slot=)
 
Changed:
<
<
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
>
>
All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
 
Flag Description
Changed:
<
<
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
FRU Field Replaceable Unit number. Default value is 30 for an AMC13 in slot 13. See below for more information regarding FRU numbering
>
>
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
 
Changed:
<
<

handle_override

>
>

handleOverride.py

 This script is used to issue a handle swap remotely to the AMC13. The script is to be run as follows:
Changed:
<
<
./handle_override ip_addr in|out|cycle|release [ipmb_addr]
>
>
./handle_override (--host=) (--slot=) --in|--out|--release|--cycle
 
Added:
>
>
All flags in parentheses are optional and will take on their values as listed in systemVars.py if not explicitly specified.
 
Flag Description
Changed:
<
<
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
>
>
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module. If not specified, defaults to value in systemVars.py
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, defaults to value in systemVars.py
 
in Force handle in
out Force handle out
cycle Force handle out for 10 seconds and then issue a release
release Handle not forced, but instead the actual handle position is payed attention to
Deleted:
<
<
ipmb_addr IPMB Address for the target AMC13. Default value is 0xa4 for an AMC13 in slot 13. See below for more information regarding IPMB addresses

Configuration File Format

Below is the format of the configuration file to be used by the amc13config script. The port number designates the bytes for a given SPI port; therefore, the configuration packet for Port0 will be sent to T2 (the Spartan FPGA) and the configuration packet for Port1 will be sent to T1 (the Virtex/Kintex FPGA)
Port0
00           #AMC13 Slot Number
ff ff 00 00  #Net Mask
c0 a8 01 64  #IP Address
00 00        #Boot Vector

Port1
00           #AMC13 Slot Number
ff ff 00 00  #Net Mask
c0 a8 01 65  #IP Address
00 00        #Boot Vector

IPMB Address Assignment and FRU Numbers

  • IPMB Addresses are assigned like so:
    • For slot 13, IPMB is 0xa4
    • For any other slot in the uTCA crate, IPMB is 0x70+(2*slotNum)
  • FRU Numbers are assigned like so:
    • For slot 13, FRU is 30
    • For any other slot in the uTCA crate, FRU is (slotNum + 4)

 

Revision 308 May 2013 - CharlieHill

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"
Added:
>
>

AMC13 MMC Software

 The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package provides the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to enable automatic configuration of each AMC13 tongue from these stored bytes upon a request from each tongue's FPGA, and to issue useful commands remotely such as resets and handle swaps. This page discusses the functionality and capabilities of the MMC software scripts.

Contents

Revision 208 May 2013 - CharlieHill

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package provides the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to enable automatic configuration of each AMC13 tongue from these stored bytes upon a request from each tongue's FPGA, and to issue useful commands remotely such as resets and handle swaps. This page discusses the functionality and capabilities of the MMC software scripts.
Added:
>
>
Contents
amc13config script
backend_power script
cold_reset script
handle_override script
Configuration File Format
Determining IPMB Address and FRU Number
 

amc13config

This script is used for configuring the AMC13 FPGAs using the MMC. The script is to be run as follows:
Line: 18 to 26
 
--disable Disables the automatic configuration of the AMC13 FPGAs from the bytes stored in its respecive SPI port's EEPROM
--store=file.conf Store the configuration contents of file.conf to MMC EEPROM. See below for further information on this file's layout
--apply=file.conf Apply the configuration contents of file.conf to FPGAs directly. This command will only work if the chips are requesting information from the MMC, which is typically not the case following startup, since the FPGAs will configure from the T2 jumpers if no packets are received from the SPI ports
Changed:
<
<
--autoslot Automatically replaces the first byte of the configuration packet with the AMC13's slot number in the uTCA crate. Note that in order for this command to work, you must carry around the byte to be replaced in the configuration file, even if it is just 00. See below for more information regarding the format of the configuration file
>
>
--autoslot Automatically replaces the first byte of the configuration packet with the AMC13's slot number in the uTCA crate. Note that in order for this command to work, you must carry around the byte to be replaced in the configuration file, even if it is just 00. See below for more information regarding the format of the configuration file
 

backend_power

Line: 58 to 66
 
release Handle not forced, but instead the actual handle position is payed attention to
ipmb_addr IPMB Address for the target AMC13. Default value is 0xa4 for an AMC13 in slot 13. See below for more information regarding IPMB addresses
Added:
>
>

Configuration File Format

Below is the format of the configuration file to be used by the amc13config script. The port number designates the bytes for a given SPI port; therefore, the configuration packet for Port0 will be sent to T2 (the Spartan FPGA) and the configuration packet for Port1 will be sent to T1 (the Virtex/Kintex FPGA)
Port0
00           #AMC13 Slot Number
ff ff 00 00  #Net Mask
c0 a8 01 64  #IP Address
00 00        #Boot Vector

Port1
00           #AMC13 Slot Number
ff ff 00 00  #Net Mask
c0 a8 01 65  #IP Address
00 00        #Boot Vector
 

IPMB Address Assignment and FRU Numbers

  • IPMB Addresses are assigned like so:

Revision 108 May 2013 - CharlieHill

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="HcalDTC"
The AMC13 MMC software package can be found in the amc13config directory in the xDAQ release or Standalone Release. This package provides the ability to store configuration information into non-volatile EEPROM memory for each SPI port, to enable automatic configuration of each AMC13 tongue from these stored bytes upon a request from each tongue's FPGA, and to issue useful commands remotely such as resets and handle swaps. This page discusses the functionality and capabilities of the MMC software scripts.

amc13config

This script is used for configuring the AMC13 FPGAs using the MMC. The script is to be run as follows:
./amc13config --host=192.168.1.240 [--slot=13] [--user=root] [--pass=admin] [--enable|--disable] [--store=config.txt] [--apply=config.txt] [--autoslot]
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
Flag Description
--host Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
--slot Slot number (as seen on the uTCA crate, ie one-based) of AMC13 to be configured. If not specified, this option defaults to '13'
--user Specify the OS user for your MCH1 device. If not specified, this option defaults to 'root'. This flag shouldn't typically need to be set
--pass Passcode for access to the aforementioned user on the MCH OS. If not specified, this option defaults to 'root'. This flag shouldn't typically need to be set
--enable Enable the automatic configuration of the AMC13 FPGAs from the bytes stored in its respective SPI port's EEPROM
--disable Disables the automatic configuration of the AMC13 FPGAs from the bytes stored in its respecive SPI port's EEPROM
--store=file.conf Store the configuration contents of file.conf to MMC EEPROM. See below for further information on this file's layout
--apply=file.conf Apply the configuration contents of file.conf to FPGAs directly. This command will only work if the chips are requesting information from the MMC, which is typically not the case following startup, since the FPGAs will configure from the T2 jumpers if no packets are received from the SPI ports
--autoslot Automatically replaces the first byte of the configuration packet with the AMC13's slot number in the uTCA crate. Note that in order for this command to work, you must carry around the byte to be replaced in the configuration file, even if it is just 00. See below for more information regarding the format of the configuration file

backend_power

This script is used to enable and disable the back-end power remotely to the AMC13. The script is to be run as follows:
./backend_power ip_addr on|off [ipmb_addr=0xa4]
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
Flag Description
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
on Turn back-end power on
off Turn back-end power off
ipmb_addr IPMB Address for the target AMC13. Default value is 0xa4 for an AMC13 in slot 13. See below for more information regarding IPMB addresses

cold_reset

This script is used to issue a cold reset remotely to an AMC13. The script is to be run as follows:
./cold_reset ip_addr [fru=30]
All flags that are in brackets are optional and all values listed are the default values if not explicitly specified. The command-line flags are listed and described in the following table.
Flag Description
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
FRU Field Replaceable Unit number. Default value is 30 for an AMC13 in slot 13. See below for more information regarding FRU numbering

handle_override

This script is used to issue a handle swap remotely to the AMC13. The script is to be run as follows:
./handle_override ip_addr in|out|cycle|release [ipmb_addr]
Flag Description
ip_addr Host IP address for your uTCA crate. This should be the IP address of your commercial MCH1 module
in Force handle in
out Force handle out
cycle Force handle out for 10 seconds and then issue a release
release Handle not forced, but instead the actual handle position is payed attention to
ipmb_addr IPMB Address for the target AMC13. Default value is 0xa4 for an AMC13 in slot 13. See below for more information regarding IPMB addresses

IPMB Address Assignment and FRU Numbers

  • IPMB Addresses are assigned like so:
    • For slot 13, IPMB is 0xa4
    • For any other slot in the uTCA crate, IPMB is 0x70+(2*slotNum)
  • FRU Numbers are assigned like so:
    • For slot 13, FRU is 30
    • For any other slot in the uTCA crate, FRU is (slotNum + 4)

-- CharlieHill - 08 May 2013

 
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