CERN-IPMC Tester
This repository contains the files required to configure all of the programmable devices located on the CERN-IPMC Tester boad:
- uMGT Controller: setup-config/umgt-firmware
- MMC Emulator: setup-config/mmc-firmware
- CPLD: setup-config/cpld-firmware
In addition, it contains the binary files required to flash the CERN-IPMC mezzanine card with a specific software and the latest version of the FPGA firmware:
- IPMC binary files and documentation (using FlashPRO): ipmc-config
- Stapl file that can be used with the jtag-player utility for raspberry pi.
Finally, it contains the python scripts used to test the CERN-IPMC modules
Requirements
This python library was designed for python >= 3.4
Dependencies
List of dependencies:
- ipmc-devkit (https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-devkit.git)
- wiringX (https://gitlab.cern.ch/ep-ese-be-xtca/wiringx.git)
- python pprint
Prerequisites
Set up the USB interfaces for the IPMC tester's uManagement interface and the IPMC's serial debug interface. Find the identifiers, add them to a udev rules file, reload the rules and trigger udev:
sudo udevadm info /dev/ttyUSB0
sudo udevadm info /dev/ttyUSB1
sudo cat > /etc/udev/rules.d/99-serial.rules << EOF
SUBSYSTEM=="tty", ENV{ID_SERIAL_SHORT}=="AB0KOOS1", ATTRS{bInterfaceNumber}=="00", GROUP="zp", SYMLINK+="ipmc-umgt"
SUBSYSTEM=="tty", ENV{ID_SERIAL_SHORT}=="AB0KOORZ", ATTRS{bInterfaceNumber}=="00", GROUP="zp", SYMLINK+="ipmc-debug"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger
Install the IPMC Development Kit software:
git clone https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-devkit.git
cd ipmc-devkit
python3 setup.py install --user
Install the IPMC Tester software:
git clone https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-tester.git
Running
Run the IPMC Test software, which is composed of a number of sub-tests:
cd ipmc-tester
python3 ipmc-tester/IPMCTest.py
Notes concerning the Radxa Rock4
The JTAG player and the wiringX library need to be built as a 32-bit executable on the Radxa Rock4 target. For this the 32-bit toolchain needs to be installed as follows:
sudo apt install gcc make gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi
Clone the wiringX repository https://gitlab.cern.ch/ep-ese-be-xtca/wiringx.git
and follow the build instructions below:
mkdir build; cd build
cmake -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc ..
make && sudo make install
Build the JTAG player in jtag-player
as follows:
make CC=arm-linux-gnueabi-gcc LDFLAGS=-static
sudo chown root jtag-player
sudo chmod +s jtag-player
MAC Addresses for CERN IPMC
CERN MAC addresses reserved for the IPMC:
80-D3-36-00-40-00 to
80-D3-36-00-47-FF (2k addresses)