\documentclass[11pt]{article}
%\documentstyle[11pt]{article}

\usepackage{lscape,color}

\topmargin -0.75truein
\oddsidemargin -0.4truein
\textheight 9.25truein
\textwidth 6.7truein
\hbadness=10001
\hfuzz=200pt


\begin{document}
%\input dspace12.tex
%\input pstricks.tex
%\input psfig
\newcommand{\be}{\begin{enumerate}}
\newcommand{\ee}{\end{enumerate}}
\newcommand{\bc}{\begin{center}}
\newcommand{\ec}{\end{center}}
\newcommand{\bi}{\begin{itemize}}
\newcommand{\ei}{\end{itemize}}
\newcommand{\bd}{\begin{description}}
\newcommand{\ed}{\end{description}}
\newcommand{\bt}{\begin{tabbing}}
\newcommand{\et}{\end{tabbing}}
\newcommand{\eg}{{\it e.g.~}}
\newcommand{\ie}{{\it i.e.~}}
\newcommand{\ul}{\underline}
\newcommand{\axaf}{{\em AXAF}}
\def\la{\hbox{\rlap{$<$}\lower0.5ex\hbox{$\sim$}\ }}

\large
%\vspace*{-0.5in}
\centerline {\bf 5.16\_V2.1 Monitoring the active flight EEPROM}
		 
\vspace{0.25in}

\normalsize
\noindent{\it Last Revised: \today} \\
\noindent{\bf Filename: eeprom\_chk} \\

\noindent {\bf BRIEF FUNCTIONAL DESCRIPTION:} \\
\normalsize

This procedure is for monitoring the EEPROM from the active BEP to check for possible degradation.  The EEPROM contains the bootstrap loader and the code that initializes I\_CACHE and D\_CACHE. Since there is no indication that reading an EEPROM will cause it to degrade faster, its contents can and should be monitored at regular intervals so that errors can be identified and remedial action taken. Once this SOP has been successfully executed, steps 2 to 4 in the below list will be run as part of the command load every six months, and also a few days before any planned BEP reboot, such as when installing new flight software patches.\\

The \texttt{eeprom\_cksum} program computes the 32-bit cyclic redundancy checksum of the EEPROM.  It is loaded into BEP I\_CACHE with a single \textit{writeBep} command, and is executed by an \textit{executeBep} command. The checksum is compared with the `expected' value; if they match, the program waits for 10 seconds before returning; otherwise it returns immediately, in both cases reporting the actual checksum. \\

This procedure will run the \texttt{eeprom\_cksum} program twice; first with the correct checksum for the flight EEPROM, and second with a deliberately bogus checksum.  The second bogus run will force an EEPROM dump. \\

This procedure implements the following basic operations:
\be
\item 
Confirm the current state of ACIS by verifying BEP HW and SW LEDs, in particular that science is idle and telemetry buffers are clear.
\item
Load the \texttt{eeprom\_cksum} program into I\_CACHE
\item
Execute the \texttt{eeprom\_cksum} program with the correct checksum for the flight EEPROM.  If the checksum matches (which it should), the program will sleep for 10 seconds.
\item
Four seconds after starting step 3, send the command to dump the contents of the EEPROM.  This command should fail since the \texttt{eeprom\_cksum} program is still running.  The result code in \texttt{pmon} will show an error; nothing is dumped.
\item
Repeat step 3 with a deliberately bogus checksum value.  In this case, since the checksum doesn't match, it will immediately terminate.
\item
Four seconds after starting step 5, send the command to dump the contents of the EEPROM.  This time, the command will succeed.  Expect a megabyte of telemetry.
\ee

ACIS personnel will review the contents of the dump after the procedure has been run. \\

%\vspace{0.15in}
\normalsize
\noindent {\bf ASSUMED INSTRUMENT STATE:} \\
\normalsize
This assumes that DPA-A and/or DPA-B is on. ACIS should not be receiving any other concurrent commanding.\\

%\vspace{0.25in}
\normalsize
\noindent {\bf SPECIAL INITIAL CONDITIONS:} \\
\normalsize
Spacecraft telemetry should be in Format 2.\\

%\newpage 

%\vspace{0.25in}
\normalsize
\noindent {\bf OPERATIONAL CONSTRAINTS/CAUTIONS:} \\
\normalsize
The commands in steps 3, 4, and 5 of the table should be built into a Relative Time Sequence (RTS) and loaded into an SCS slot in the OBC for execution.  The time sequence of commands is intended to be: \\
\vspace{-0.15in}
\begin{list}{$\bullet$}{\itemsep=0in}
\item XBEEPCKSUM (step 3.1)
\item a 4 second wait (step 4)
\item RBROMDUMP1 (step 5.1)
\end{list}
The crucial timing is the 4 second wait between the XBEEPCKSUM and RBROMDUMP1 commands. \\

Similarly, the commands in steps 7, 8, and 9 of the table should be built into a Relative Time Sequence (RTS) and loaded into an SCS slot in the OBC for execution.  The time sequence of commands is intended to be:\\
\vspace{-0.15in}
\begin{list}{$\bullet$}{\itemsep=0in}
\item XBEEPBOGUS (step 7.1)
\item a 4 second wait (step 8)
\item RBROMDUMP1 (step 9.1)
\end{list}
Again, the crucial timing is the 4 second wait between the XBEEPBOGUS and RBROMDUMP1 commands.\\

Once the successful EEPROM dump has started, loss of telemetry is OK.  Contents of the \mbox{EEPROM} dump can be examined at a later time.\\

%\vspace{0.15in}
\normalsize
\noindent {\bf CONTINGENCY PLANS:} \\

%\vspace{0.15in}
\normalsize
\noindent {\bf REFERENCES:} \\
\normalsize
\vspace{-0.15in}
\be
\item Peter G. Ford memo, April 28, 2015, "Correcting for ACIS EEPROM corruption (v1.6)"
\ee

\normalsize
\noindent {\bf CHANGE HISTORY:} \\
\normalsize

{\bf V0.1}
\vspace{-0.1in}
\bi
\item Initial version, based on memo referenced above.
\ei

{\bf V0.2}
\vspace{-0.1in}
\bi
\item Incorporates changes to text suggested by Royce Buehler.
\ei

{\bf V0.3}
\vspace{-0.1in}
\bi
\item Incorporates changes to text suggested by Peter Ford and Paul Plucinsky.  Table reformatted by Peter Ford.
\ei

{\bf V1.0}
\vspace{-0.1in}
\bi
\item Extremely minor edits.  Ready for wider review.
\ei

{\bf V1.1}
\vspace{-0.1in}
\bi
\item Incorporates changes suggested by Peter Ford.
\ei

{\bf V2.0}
\vspace{-0.1in}
\bi
\item Sent to FOT
\ei

{\bf V2.1}
\vspace{-0.1in}
\bi
\item Corrected name of program in table.
\ei

\newpage
\vskip 3.0in

This page intentionally left blank
\vskip 3.0in

\newpage

\newcommand{\tablecaptiontext}{ACIS EEPROM corruption check}


\input{eeprom_chk.tab}

\end{document}




