Commit 0010011c authored by Theodor-Adrian Stana's avatar Theodor-Adrian Stana

doc: Updated gateware test procedure to v1.2

parent 159b9667
......@@ -9,7 +9,7 @@
\noindent \rule{\textwidth}{.1cm}
\hfill September 29, 2014
\hfill January 27, 2015
\vspace*{3cm}
......
......@@ -76,6 +76,7 @@ work, see \\
02-05-2014 & 1.0 & First version, corrected and added some wording and added Figure~\ref{fig:switches} \\
29-09-2014 & 1.1 & Added Licensing information, made link colors black, removed MultiBoot step from test procedure
and other small text changes \\
27-01-2015 & 1.2 & Added steps for testing the reprogramming logic of the gateware \\
\hline
\end{tabular}
}
......@@ -109,6 +110,7 @@ a new gateware version. The following features are tested:
\item TTL to TTL-BAR (basic pulse inversion)
\end{itemize}
\item no pulses generated on power-on
\item remote reprogramming
\end{itemize}
%==============================================================================
......@@ -267,6 +269,45 @@ by running the following command in a Linux command line:
It is recommended to go through each of the following subsections in sequence
and follow the steps one by one, ticking on completion.
%==============================================================================
\subsection{Preparing the bitstream to the flash}
\label{sec:proc-bstream-download}
%==============================================================================
\begin{enumerate}
\item Navigate to the gateware releases page and download the binary bundle
(golden+release) for the latest release:
\begin{itemize}
\item \small \url{http://www.ohwr.org/projects/conv-ttl-blo-gw/wiki/Releases}
\end{itemize}
\item Program the bundle to the flash. The steps below show how to download the
\textit{.bin} binary bundle via \verb=xc3sprog=, by downloading a bistream
providing a JTAG-to-SPI bridge, for programming the SPI flash:
\begin{small}
\begin{verbatim}
wget http://www.ohwr.org/attachments/download/3710/flash_load.bit
xc3sprog -c xpc flash_load.bit
xc3sprog -c xpc -I golden-v0.*.bin:W:0:bin
\end{verbatim}
\end{small}
\item Once this is done, we can now download the new release file (named here
\verb=conv_ttl_blo.bin=) to the flash. Note that this bitstream needs to be downloaded
to address \verb=0x170000=. Using \verb=xc3sprog=:
\begin{small}
\begin{verbatim}
xc3sprog -c xpc flash_load.bit
xc3sprog -c xpc -I conv_ttl_blo.bin:W:1507328:bin
\end{verbatim}
\end{small}
\item The on-board flash should now contain the following memory map, we are ready for testing:
\begin{itemize}
\item \verb=0x000000= -- Header bitstream to jump to release bitstream
\item \verb=0x000044= -- Golden bitstream for fallback on error
\item \verb=0x170000= -- New release bitstream to be tested
\end{itemize}
\end{enumerate}
%==============================================================================
\subsection{TTL to blocking pulse conversion}
\label{sec:proc-ttl-blo}
......@@ -285,7 +326,7 @@ and follow the steps one by one, ticking on completion.
\item \label{item:ttl-meas-ttl-out} Check that the characteristics of the signal
on \textbf{channel 1 of the oscilloscope} are as follows (Figure~\ref{fig:ttl-blo}):
\begin{itemize}
\item 1.2~$\mu$s
\item approx. 1.2~$\mu$s
\item approx. 3~V
\item less than 1.2~$\mu$s delay from trigger
\end{itemize}
......@@ -343,7 +384,7 @@ and follow the steps one by one, ticking on completion.
\item \label{item:ttlbar-meas-ttl-out} Check that the characteristics of the signal
on \textbf{channel 1 of the oscilloscope} are as follows (Figure~\ref{fig:ttlbar-blo}):
\begin{itemize}
\item 1.2~$\mu$s
\item approx. 1.2~$\mu$s
\item approx. 3~V
\item less than 1.2~$\mu$s delay from trigger
\end{itemize}
......@@ -420,9 +461,7 @@ and follow the steps one by one, ticking on completion.
\item Turn off ELMA crate
\item Flip the \textbf{glitch filter switch} (Figure~\ref{fig:switches}) back to the \textbf{OFF position}
\end{enumerate}
%==============================================================================
\subsection{Power-on tests (TTL)}
\label{sec:proc-power-on-ttl}
......@@ -472,6 +511,83 @@ and follow the steps one by one, ticking on completion.
\item Flip the \textbf{glitch filter switch} (Figure~\ref{fig:switches}) back to the \textbf{OFF position}
\end{enumerate}
%==============================================================================
\subsection{Remote reprogramming test}
\label{sec:proc-multiboot}
%==============================================================================
We will now use the remote reprogramming logic to download a bitstream
to the flash and test that it works. For this, we will download the
binary file for remote reprogramming for the latest release version of the release
gateware and test that it has been correctly programmed to the flash.
\begin{enumerate}
\item Turn on power to the ELMA crate.
\item First, check using the \verb=getsr.py= script that the bitstream version
is the one which you are testing. For example, say you are testing bistream version 3.1:
\begin{verbatim}
$ cd software/diag/
$ ./getsr.py
[...]
Status register : 0x00118031
===============================
Gateware version : v3.1 (0x31)
[...]
\end{verbatim}
\item Change directories to the \verb=multiboot= folder and download the binary file
for remote reprogramming for the latest release on OHWR to a new \verb=bin/= sub-directory.
For example, downloading gateware v3.0 would run like this:
\begin{verbatim}
cd ../multiboot/
mkdir bin
wget http://cern.ch/go/D9G8 -O bin/conv_ttl_blo-v3.0.bin
\end{verbatim}
\item Run the \verb=multiboot.py= script to download the bitstream to the flash
and issue the reprogramming command at the end (note that downloading will take
a long time):
\begin{verbatim}
$ ./multiboot.py
Successfully connected to some-elma
SysMon firmware v2.31
Slot no.: 1
CONV-TTL-BLO found in slot 1
Read config reg? (y/n) n
Read from flash? (y/n) n
Write to flash? (y/n) y
Are you sure? (y/n) y
Which gateware would you like to program?
0 -> conv_ttl_blo-v3.0.bin
Enter your choice : 0
Selected gateware: conv_ttl_blo-v3.0.bin
Is this okay? (y/n) y
Issue IPROG? (y/n) y
MultiBoot bitstream address: 0x170000
Writing bitstream to board in slot 1
0.81% (0x172f00)
\end{verbatim}
\item Once reprogramming is over, the logic will boot to this new bitstream:
\begin{verbatim}
Writing bitstream to board in slot 1
100.00% (0x2daa00)
DONE!
Issuing IPROG command to board in slot 1...
IPROG successful!
\end{verbatim}
\item To check the programming has indeed succeeded, check the gateware version,
again using \verb=getsr.py=:
\begin{verbatim}
$ cd ../diag/
$ ./getsr.py
[...]
Status register : 0x00118030
===============================
Gateware version : v3.0 (0x30)
[...]
\end{verbatim}
\end{enumerate}
%==============================================================================
% APPENDICES
......
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