Commit 543a3093 authored by Dimitris Lampridis's avatar Dimitris Lampridis

EFTS2017: added lab notes

parent 0abd84b7
all : wr_lab_efts_2017.pdf
.PHONY : all clean
wr_lab_efts_2017.pdf : wr_lab_efts_2017.tex
pdflatex $^
pdflatex $^
clean :
rm -f *.eps *.pdf *.dat *.log *.out *.aux *.dvi *.ps *.nav *.snm *.toc *.vrb
\documentclass{beamer}
\mode<presentation>
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}[frame number]
\usepackage{listings}
\lstset{
framexleftmargin=-10pt,
framexrightmargin=10pt,
basicstyle=\tiny\ttfamily,
frame=trBL,
frameround=fttt
}
\title{White Rabbit Lab}
\author{Dimitrios Lampridis}
\institute{CERN BE-CO\\Hardware and Timing section}
\date[29 June 2016]{European Frequency and Time Seminar\\Besançon, 29 June 2016}
\begin{document}
\frame[plain]{\titlepage}
\begin{frame}{Setup}
\begin{itemize}
\item 1x WR Switch (free-running master)
\item 2x standard PCs equipped with PCIe-based WR nodes (slaves)
\item 2x FMC-DIO attached to the PCIe boards
\item 1x Oscilloscope to monitor all three PPS signals
\item 1x laptop PC with two network interfaces running Nagios
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Tasks already performed}
\begin{enumerate}
\item Hardware installation
\item OS installation: Debian GNU/Linux 9
\begin{itemize}
\item username: \textcolor{red}{wrdemo}, password: \textcolor{red}{efts2017}
\end{itemize}
\item Software download from Open HW Repository
\begin{itemize}
\item \url{www.ohwr.org/projects/spec-sw/wiki}
\item \url{www.ohwr.org/projects/wr-cores/wiki/Wrpc_core}
\end{itemize}
\end{enumerate}
\begin{lstlisting}[title=\ttfamily\scriptsize{as user (\textcolor{red}{\$})}]
$ mkdir -p ~/Desktop/EFTS2017/binaries
$ cd ~/Desktop/EFTS2017/binaries
$ wget http://www.ohwr.org/attachments/download/5043/wrpc-v4.0_binaries.tar
$ cd ..
$ git clone git://ohwr.org/fmc-projects/spec/spec-sw.git
$ cd spec-sw
$ git submodule update --init
\end{lstlisting}
\begin{lstlisting}[title=\ttfamily\scriptsize{as root (\textcolor{red}{\#})}]
$ sudo su
# mkdir -p /lib/firmware/fmc
# cd /lib/firmware/fmc
# wget http://www.ohwr.org/attachments/download/4057/spec-init.bin-2015-09-18
# ln -s spec-init.bin-2015-09-18 spec-init.bin
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Task 1: Build and load device drivers}
\begin{enumerate}
\item Build all the necessary driver modules
\item Load the driver modules
\item Use \texttt{dmesg} to verify detection of HW
\end{enumerate}
\begin{lstlisting}
$ cd ~/Desktop/EFTS2017/spec-sw
$ make
$ sudo insmod fmc-bus/kernel/fmc.ko
$ sudo insmod spec.ko
$ sudo dmesg
\end{lstlisting}
\begin{lstlisting}[title=\ttfamily\scriptsize{sample dmesg output}]
spec 0000:20:00.0: probe for device 0020:0000
spec 0000:20:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
spec 0000:20:00.0: setting latency timer to 64
spec 0000:20:00.0: got file "fmc/spec-init.bin", 1485236 (0x16a9b4) bytes
spec 0000:20:00.0: FPGA programming successful
spec 0000:20:00.0: mezzanine 0
Manufacturer: CERN
Product name: FmcDio5cha
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Task 2: FPGA reprogramming}
\begin{enumerate}
\item Extract the WR reference design bistreams
\item Load the WR PTP core FPGA bitstream
\item Watch the scope for PPS signals, note performance
\end{enumerate}
\begin{lstlisting}
$ cd ~/Desktop/EFTS2017/binaries
$ tar zxvf wrpc-v4.0_binaries.tar
$ cd ~/Desktop/EFTS2017/spec-sw
$ sudo tools/spec-fwloader ../binaries/spec/spec_wr_ref_top.bin
$ sudo dmesg
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Task 3: Start the WRPC shell}
\begin{enumerate}
\item Access the WRPC shell via the Virtual UART
\item Start the monitor and study the output
\begin{itemize}
\item consult Appendix B of the manual (Desktop/EFTS2017/doc/)
\end{itemize}
\item Estimate fiber length ($fiber\ propagation\ delay\approx 5ns/m$)
\item Unplug the fiber, watch the monitor
\item Re-plug the fiber, watch the monitor
\end{enumerate}
\begin{lstlisting}
$ cd ~/Desktop/EFTS2017/spec-sw
$ sudo tools/spec-vuart
wrc# gui
\end{lstlisting}
\begin{itemize}
\item Press \emph{Enter} after starting the VUART to get the shell prompt
\item Press \emph{ESC} to exit from the monitor back to shell
\item Press \emph{Ctrl+A} to exit the shell
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Task 4: Configuration}
\begin{enumerate}
\item Add an initialization script
\item Add an SFP calibration database
\item Restart the WR PTP core
\item Watch the scope for PPS signals, note performance
\item Start the monitor
\item Re-estimate fiber length
\end{enumerate}
\begin{lstlisting}
wrc# init show
wrc# init erase
wrc# init add ptp stop
wrc# init add sfp match
wrc# init add mode slave
wrc# init add ptp start
wrc# init add ip set 10.1.100.1 (or 10.1.100.2)
wrc# init show
wrc# sfp show
wrc# sfp erase
wrc# sfp match
wrc# sfp add AXGE-1254-0531 180667 148735 72169888
wrc# sfp show
wrc# sfp match
wrc# init boot
wrc# gui
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Task 5: Mess around!}
\begin{enumerate}
\item Attach very long fiber
\item Use monitor to estimate fiber length
\item Verify phase tracking, watch the scope
\item Disable phase tracking (hidden command!)
\item Heat up long fiber, watch monitor and scope
\item Let fiber cool down, watch monitor and scope
\item Re-enable phase tracking, repeat experiment
\end{enumerate}
\begin{lstlisting}
wrc# ptrack disable
wrc# gui
(ESC)
wrc# ptrack enable
wrc# gui
\end{lstlisting}
\end{frame}
\begin{frame}{SNMP Demo}
\begin{center}
Nothing to do, just watch :)
\end{center}
\end{frame}
\end{document}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment