\documentclass{beamer}
\usetheme{Madrid} % My favorite!
%\usepackage[latin1]{inputenc}
%\usepackage[T1]{fontenc}
%\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage[utf8]{inputenc}
%\usepackage[spanish]{babel}
\usepackage[english]{babel}
\usepackage{tabularx}   % Erweiterte Tabellen Optionen
\usepackage{booktabs}
\usepackage{multicol}
%\usepackage{txfonts}
\usepackage{listliketab}
\usepackage{graphicx} 
\usepackage{graphics} 

%% Display code in beamer
\usepackage{listings}

% Uncomment the following line if you want %
% page numbers and using Warsaw theme%
%\setbeamertemplate{footline}[page number]
%\setbeamercovered{transparent}
%\setbeamercovered{invisible}
% To remove the navigation symbols from
% the bottom of slides%
%\setbeamertemplate{navigation symbols}{}
%
\usepackage{graphicx}
\newcommand{\hsp}{\vspace{5pt}}
%\definecolor{verde}{RGB}{82,163,0}
%\definecolor{verde}{RGB}{0,163,0} %51 - -
\definecolor{verde}{RGB}{0,102,0}
\definecolor{lightLightBlue}{RGB}{238,245,240}
%usepackage{bm}         % For typesetting bold math (not \mathbold)
%\logo{\includegraphics[height=0.6cm]{yourlogo.eps}}
%
\title[White Rabbit Switch Testing]{White Rabbit Switch Testing}
\subtitle{Healthy Hardware}
\author{B.Rat, C.Prados}
\institute[Seven Solutions, GSI]
{
Seven Solutions, GSI \\
\medskip
{\emph{benoit@sevensols.com, c.prados@gsi.de}}}
\date{\today}
% \today will show current date.
% Alternatively, you can specify a date.
%



\begin{document}

\lstset{
language=bash,
basicstyle=\ttfamily\scriptsize,   % Code font, Examples: \footnotesize\ttfamily,
keywordstyle=\color{OliveGreen},        % Keywords font ('*' = uppercase)
commentstyle=\color{gray},              % Comments font
numbersep=5pt,                          % How far are line-numbers from code
backgroundcolor=\color{lightLightBlue}, % Choose background color
frame=none,                             % A frame around the code
tabsize=2,                              % Default tab size
captionpos=b,                           % Caption-position = bottom
breaklines=true,                        % Automatic line breaking?
breakatwhitespace=false,                % Automatic breaks only at whitespace?
showspaces=false,                       % Dont make spaces visible
showtabs=false,                         % Dont make tabls visible
columns=flexible,                       % Column format
morekeywords={>,__global__, __device__},  % CUDA specific keywords
}


\begin{frame}
\titlepage
\end{frame}


\begin{frame}
    \frametitle{Outline}
\tableofcontents[]
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{White Rabbit Switch Testing Project}
\section{White Rabbit Switch Testing Project}
The project gathers the methodology and methods for testing the White Rabbit
Switch.

\begin{block}
{WR Switch Production Tests}
    \begin{itemize}
        \item Manufacturing quality control of the WR Switch
        \item Avoid that hardware problems manifest themselves as software issues.
    \end{itemize}
\end{block}

\begin{block}
{Benchmark and Compliance Tests}
    \begin{itemize}
        \item Compliance with the protocol stack: GbE, PTP, WR PTP etc.. 
        \item Assessment of the performance: throughput, frame latency etc..
    \end{itemize}
\end{block}

\begin{block}
{Other Activities in the Project, Testing Hw Framework}
    \begin{itemize}
        \item Based on PTS
        \item Automatization of the production test procedure task. The tests
        are provided by the hw developers.
    \end{itemize}
\end{block}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{White Rabbit Switch Tests}

\subsection{Pre-Test: Basic visual and electrical tests.}
\begin{frame}{\insertsubsectionhead}

\begin{block}{}
Quality procedures already done and documented.\\
$\Rightarrow$ {\bfseries Goal:} detection of soldering/mouting problems
\end{block}

\begin{itemize}
	\item FlyingProve done at the assembly company 
	\item Visual inspection of the PCBs (SCB \& Mini-BP)
	\item Electrical inspection of the PCBs
\end{itemize}

% CAN NOT ADD the FIGURE???
%


\begin{center}
 \includegraphics[height=3cm,keepaspectratio=true]{SCB-electrical_test.eps}
 % SCB-electrical_test.png: 1783x868 pixel, 72dpi, 62.89x30.62 cm, bb=0 0 1783 868
\end{center}


\end{frame}

\subsection{The Bootstrap Test Procedure}
\begin{frame}{\insertsubsectionhead}
\begin{block}{}
The test of the switch has been intended to be as flat as possible, 
this mean that we intend to test a component with the less dependency possible of other 
components. 
\end{block}

However, to test a component (FGPA, NAND, ...) we need to have at least the following working:
\begin{itemize}
	\item ARM (detected during the flashing stage)
	\item DDR (test during the flashing stage)
	\item Linux load using Ethernet (TFTP/NFS)\footnote{Can be load directly using DDR in case Ethernet fail}
\end{itemize}
\end{frame}


\subsection{Actual Testing}
\begin{frame}[allowframebreaks]{\insertsubsectionhead}
The testing procedure is a set of scripts:

\begin{itemize}
	\item 001-MD5\_Checking.sh: Check MD5 of needed files
	\item 002-USB.sh: Check the USB (Not implemented)
	\item 003-FPGA\_Bridge.sh: CPU (EB1) $\leftrightarrow$ FPGA (WB)
	\item 004-LED\_Checking.sh: LED of CPU $\&$ miniBP 
	\item 005-FAN\_Checking.sh: FAN on/off and PWM speed
	\item 006-FPGA\_QDRIIStress.sh: Check $\&$ Stress the QDRII.
	\item 007-NF\_MT29F4G16.sh: NAND flash partial R/W ($\sim$ 20m )
	\item 008-DF\_AT45DB642.sh: Dataflash all position ($\sim$ 6m).
	\item 009-FPGA\_TempRetrieving.sh: Retrieve the temperature.
	\item 010-WRS\_SFPs.sh: Use standard bitstream to check SFP transfers. 
	\item 011-Flashing.sh: Flash with the latest stable firmware
\end{itemize}  

To perform these steps we have create some generic tools.

\begin{block}{testing.sh}
	Main script called to generate proper log information:
    \begin{itemize}
        \item S/N of the board
        \item Timestamp of each steps
        \item Error failure codes
        \item Logging history
    \end{itemize}
\end{block}


\begin{block}{shw\_tool.c}
	Accessing to libswitchhw library to test various components:
    \begin{itemize}
        \item LEDs (GPIO, wishbone I2C)
        \item FANs (PWN fan, GPIO)
        \item Temperatures (wishbone I2C)
    \end{itemize}
\end{block}
\end{frame}


\begin{frame}[fragile]{\insertsubsectionhead \ - Report}

%The following is an example of the log history for board $014$ (v3.2)
Below an example of the log history for the board $014$ (v3.2)
\begin{verbatim}
/tftpboot/rootfs/alpha-pts/logs/output-032014_history.log
\end{verbatim}

\begin{lstlisting}
-----------------------------------------------
Fri Oct 12 12:24:08 CET 2012

001 > OK (00'02)
002 > OK (00'00)
003 > OK (00'10)
004 > OK (00'52)
005 > OK (00'52)
006 > OK (00'13)
007 > ERROR ( Sub0:OK Sub1:OK Sub2:OK Sub3:OK Sub4:50% Sub5:OK Sub6:OK) (22'40)
008 > OK (02'47)
009 > OK (00'14)
010 > OK (01'20)
% 011 > OK (04'51)

-----------------------------------------------
Fri Oct 12 13:46:14 CET 2012

007 > OK (22'24)
\end{lstlisting}
\end{frame}

\begin{frame}
\begin{block}{Future Work}
	Create small HDL to check only a component, not a functionality.
	\begin{itemize}
		\item I2C sensor
		\item SFP transfers
		\item PLL frequency
    \end{itemize}
\end{block}
\begin{block}{Conclusion}
	By doing these tests we {\bfseries improve the quality} of the product:
	\begin{itemize}
		\item Checking the components
		\item Checking the connection
		\item Improve development: Check if a bug occurs for new functionality or for a specific component.
		\item Understanding better the sw/gw\\ $\Rightarrow$ {\bfseries Better client support}
    \end{itemize}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[allowframebreaks]
\frametitle{White Rabbit Compliance and Performance Tests}
\section{White Rabbit Compliance and Performance Tests}

\begin{block}
{Do we need it?}
    \begin{itemize}
        \item Would commercial solutions fulfil our tests? 
        \item Could community afford to buy/rent commercial solutions?
        \item Do we need a way of verifying that a combination hw+firmware achieves
        the White Rabbit features?
    \end{itemize}
\end{block}

\begin{block}
{Proposal}
    \begin{itemize}
        \item Use the WR Switch hw platform for developing a compliance and performance
    tester.
        \item We could reuse part of the current gateware/firmware, but that
        wouldn't be enough,it is a new development...
    \end{itemize}

\end{block}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Hardware Testing Framework}
\section{Hardware Testing Framework}
\begin{block}
{Architecture}
Client/Server model, the server steers the tests and gather the log information
of one or several DUT clients.  
\end{block}

\begin{block}
{Feautures}
    \begin{itemize}
        \item Communication with freestanding or hosted hardware
        \item One-time configuration
        \item Guidance and test information during the procedure 
        \item Flexible order the execution of the tests
    \end{itemize}
\end{block}

\begin{block}
{Goal}
Be able to provide a HW Testing Framework not only for the WR Switch, but also
for all the WR Node form factors.
\end{block}

\end{frame}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{What's Next?}
\section{What's Next}
    \begin{block}
    {WR Production Test}
        \begin{itemize}
            \item Cosmetic changes
            \item Integration with Hw Testing Framework
            \item Development of more test??
        \end{itemize}
    \end{block}

    \begin{block}
    {WR Compliance and Test-Bencher}
        \begin{itemize}
            \item We should start working on it
            \item Who wants to "chip in"?
        \end{itemize}
    \end{block}

    \begin{block}
    {Hw Testing Framework} 
        \begin{itemize}
            \item Release by Februry a version for the WR Switch 
            \item Keep working! 
        \end{itemize}
    \end{block}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Wiki of the Project}
\section{Wiki of the Project} 
    \begin{itemize} 
        \item WR Production Tests and How To
        \item WR.v2 802.1Q Functional Test Cases Report (Integrasys)
        \item Torture Report (Maciej Lipinsky)
        \item Testing Hardware Framework
        \item Test Methodology and Proposal for the Test-Bencher
    \end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document} 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
