\hypertarget{sfxge__nvram_8c}{}\doxysection{dev/sfxge/sfxge\+\_\+nvram.c File Reference}
\label{sfxge__nvram_8c}\index{dev/sfxge/sfxge\_nvram.c@{dev/sfxge/sfxge\_nvram.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include \char`\"{}common/efx.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sfxge.\+h\char`\"{}}\newline
Include dependency graph for sfxge\+\_\+nvram.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/deb/sfxge__nvram_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{sfxge__nvram_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static int \mbox{\hyperlink{sfxge__nvram_8c_a0b56641cd26ce66382ae603a1af88ef6}{sfxge\+\_\+nvram\+\_\+rw}} (struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}}, \mbox{\hyperlink{sfxge__ioc_8h_a2c0936f31d483d014d0b23b7c97ea1d7}{sfxge\+\_\+ioc\+\_\+t}} $\ast$ip, \mbox{\hyperlink{efx_8h_a31042803166f0a59fcd0384aef3279f4}{efx\+\_\+nvram\+\_\+type\+\_\+t}} type, boolean\+\_\+t write)
\item 
static int \mbox{\hyperlink{sfxge__nvram_8c_a0f952abcef28b40c45102a6810ca1329}{sfxge\+\_\+nvram\+\_\+erase}} (struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}}, \mbox{\hyperlink{efx_8h_a31042803166f0a59fcd0384aef3279f4}{efx\+\_\+nvram\+\_\+type\+\_\+t}} type)
\item 
int \mbox{\hyperlink{sfxge__nvram_8c_a5e248ed0f186bb947cd2468ec8eade13}{sfxge\+\_\+nvram\+\_\+ioctl}} (struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}}, \mbox{\hyperlink{sfxge__ioc_8h_a2c0936f31d483d014d0b23b7c97ea1d7}{sfxge\+\_\+ioc\+\_\+t}} $\ast$ip)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const uint8\+\_\+t \mbox{\hyperlink{sfxge__nvram_8c_a619848033dbb20f17c7d3361052bc57d}{fake\+\_\+dynamic\+\_\+cfg\+\_\+nvram}} \mbox{[}$\,$\mbox{]}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{sfxge__nvram_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{sfxge__nvram_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{sfxge\_nvram.c@{sfxge\_nvram.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!sfxge\_nvram.c@{sfxge\_nvram.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{sfxge__nvram_8c_a0f952abcef28b40c45102a6810ca1329}\label{sfxge__nvram_8c_a0f952abcef28b40c45102a6810ca1329}} 
\index{sfxge\_nvram.c@{sfxge\_nvram.c}!sfxge\_nvram\_erase@{sfxge\_nvram\_erase}}
\index{sfxge\_nvram\_erase@{sfxge\_nvram\_erase}!sfxge\_nvram.c@{sfxge\_nvram.c}}
\doxysubsubsection{\texorpdfstring{sfxge\_nvram\_erase()}{sfxge\_nvram\_erase()}}
{\footnotesize\ttfamily static int sfxge\+\_\+nvram\+\_\+erase (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$}]{sc,  }\item[{\mbox{\hyperlink{efx_8h_a31042803166f0a59fcd0384aef3279f4}{efx\+\_\+nvram\+\_\+type\+\_\+t}}}]{type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{sfxge__nvram_8c_source_l00112}{112}} of file \mbox{\hyperlink{sfxge__nvram_8c_source}{sfxge\+\_\+nvram.\+c}}.



References \mbox{\hyperlink{efx_8h_source_l00080}{EFX\+\_\+\+FAMILY\+\_\+\+SIENA}}, \mbox{\hyperlink{efx_8h_source_l01602}{EFX\+\_\+\+NVRAM\+\_\+\+DYNAMIC\+\_\+\+CFG}}, \mbox{\hyperlink{efx__nvram_8c_source_l00331}{efx\+\_\+nvram\+\_\+erase()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00401}{efx\+\_\+nvram\+\_\+rw\+\_\+finish()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00226}{efx\+\_\+nvram\+\_\+rw\+\_\+start()}}, \mbox{\hyperlink{sfxge_8h_source_l00288}{sfxge\+\_\+softc\+::enp}}, \mbox{\hyperlink{sfxge_8h_source_l00283}{sfxge\+\_\+softc\+::family}}, and \mbox{\hyperlink{sfxge_8h_source_l00001}{sc}}.



Referenced by \mbox{\hyperlink{sfxge__nvram_8c_source_l00131}{sfxge\+\_\+nvram\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{d1/d8b/sfxge__nvram_8c_a0f952abcef28b40c45102a6810ca1329_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d8b/sfxge__nvram_8c_a0f952abcef28b40c45102a6810ca1329_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{sfxge__nvram_8c_a5e248ed0f186bb947cd2468ec8eade13}\label{sfxge__nvram_8c_a5e248ed0f186bb947cd2468ec8eade13}} 
\index{sfxge\_nvram.c@{sfxge\_nvram.c}!sfxge\_nvram\_ioctl@{sfxge\_nvram\_ioctl}}
\index{sfxge\_nvram\_ioctl@{sfxge\_nvram\_ioctl}!sfxge\_nvram.c@{sfxge\_nvram.c}}
\doxysubsubsection{\texorpdfstring{sfxge\_nvram\_ioctl()}{sfxge\_nvram\_ioctl()}}
{\footnotesize\ttfamily int sfxge\+\_\+nvram\+\_\+ioctl (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$}]{sc,  }\item[{\mbox{\hyperlink{sfxge__ioc_8h_a2c0936f31d483d014d0b23b7c97ea1d7}{sfxge\+\_\+ioc\+\_\+t}} $\ast$}]{ip }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{sfxge__nvram_8c_source_l00131}{131}} of file \mbox{\hyperlink{sfxge__nvram_8c_source}{sfxge\+\_\+nvram.\+c}}.



References \mbox{\hyperlink{efx_8h_source_l00080}{EFX\+\_\+\+FAMILY\+\_\+\+SIENA}}, \mbox{\hyperlink{efx_8h_source_l01592}{EFX\+\_\+\+NVRAM\+\_\+\+BOOTROM}}, \mbox{\hyperlink{efx_8h_source_l01593}{EFX\+\_\+\+NVRAM\+\_\+\+BOOTROM\+\_\+\+CFG}}, \mbox{\hyperlink{efx_8h_source_l01600}{EFX\+\_\+\+NVRAM\+\_\+\+CPLD}}, \mbox{\hyperlink{efx_8h_source_l01602}{EFX\+\_\+\+NVRAM\+\_\+\+DYNAMIC\+\_\+\+CFG}}, \mbox{\hyperlink{efx_8h_source_l01599}{EFX\+\_\+\+NVRAM\+\_\+\+FCFW}}, \mbox{\hyperlink{efx_8h_source_l01598}{EFX\+\_\+\+NVRAM\+\_\+\+FPGA}}, \mbox{\hyperlink{efx_8h_source_l01601}{EFX\+\_\+\+NVRAM\+\_\+\+FPGA\+\_\+\+BACKUP}}, \mbox{\hyperlink{efx__nvram_8c_source_l00194}{efx\+\_\+nvram\+\_\+get\+\_\+version()}}, \mbox{\hyperlink{efx_8h_source_l01594}{EFX\+\_\+\+NVRAM\+\_\+\+MC\+\_\+\+FIRMWARE}}, \mbox{\hyperlink{efx_8h_source_l01595}{EFX\+\_\+\+NVRAM\+\_\+\+MC\+\_\+\+GOLDEN}}, \mbox{\hyperlink{efx_8h_source_l01597}{EFX\+\_\+\+NVRAM\+\_\+\+NULLPHY}}, \mbox{\hyperlink{efx_8h_source_l01596}{EFX\+\_\+\+NVRAM\+\_\+\+PHY}}, \mbox{\hyperlink{efx__nvram_8c_source_l00444}{efx\+\_\+nvram\+\_\+set\+\_\+version()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00164}{efx\+\_\+nvram\+\_\+size()}}, \mbox{\hyperlink{sfxge_8h_source_l00288}{sfxge\+\_\+softc\+::enp}}, \mbox{\hyperlink{sfxge__nvram_8c_source_l00042}{fake\+\_\+dynamic\+\_\+cfg\+\_\+nvram}}, \mbox{\hyperlink{sfxge_8h_source_l00283}{sfxge\+\_\+softc\+::family}}, \mbox{\hyperlink{structsfxge__ioc__s_a373d9b0a721aed83c0c38d79aa149ac9}{sfxge\+\_\+ioc\+\_\+s\+::nvram}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00081}{sfxge\+\_\+ioc\+\_\+s\+::op}}, \mbox{\hyperlink{sfxge_8h_source_l00001}{sc}}, \mbox{\hyperlink{sfxge__nvram_8c_source_l00112}{sfxge\+\_\+nvram\+\_\+erase()}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00053}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+ERASE}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00054}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+GET\+\_\+\+VER}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00051}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+READ}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00055}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+SET\+\_\+\+VER}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00050}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+SIZE}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00052}{SFXGE\+\_\+\+NVRAM\+\_\+\+OP\+\_\+\+WRITE}}, \mbox{\hyperlink{sfxge__nvram_8c_source_l00055}{sfxge\+\_\+nvram\+\_\+rw()}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00059}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+BOOTROM}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00060}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+BOOTROM\+\_\+\+CFG}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00067}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+CPLD}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00069}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+DYNAMIC\+\_\+\+CFG}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00066}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+FCFW}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00065}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+FPGA}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00068}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+FPGA\+\_\+\+BACKUP}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00061}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+MC}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00062}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+MC\+\_\+\+GOLDEN}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00064}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+NULL\+\_\+\+PHY}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00063}{SFXGE\+\_\+\+NVRAM\+\_\+\+TYPE\+\_\+\+PHY}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00093}{sfxge\+\_\+ioc\+\_\+s\+::size}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00094}{sfxge\+\_\+ioc\+\_\+s\+::subtype}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00091}{sfxge\+\_\+ioc\+\_\+s\+::type}}, \mbox{\hyperlink{structsfxge__ioc__s_ab9637260694b417149e18cec8f183140}{sfxge\+\_\+ioc\+\_\+s\+::u}}, and \mbox{\hyperlink{sfxge__ioc_8h_source_l00095}{sfxge\+\_\+ioc\+\_\+s\+::version}}.



Referenced by \mbox{\hyperlink{sfxge_8c_source_l00372}{sfxge\+\_\+private\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d8b/sfxge__nvram_8c_a5e248ed0f186bb947cd2468ec8eade13_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d8b/sfxge__nvram_8c_a5e248ed0f186bb947cd2468ec8eade13_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{sfxge__nvram_8c_a0b56641cd26ce66382ae603a1af88ef6}\label{sfxge__nvram_8c_a0b56641cd26ce66382ae603a1af88ef6}} 
\index{sfxge\_nvram.c@{sfxge\_nvram.c}!sfxge\_nvram\_rw@{sfxge\_nvram\_rw}}
\index{sfxge\_nvram\_rw@{sfxge\_nvram\_rw}!sfxge\_nvram.c@{sfxge\_nvram.c}}
\doxysubsubsection{\texorpdfstring{sfxge\_nvram\_rw()}{sfxge\_nvram\_rw()}}
{\footnotesize\ttfamily static int sfxge\+\_\+nvram\+\_\+rw (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structsfxge__softc}{sfxge\+\_\+softc}} $\ast$}]{sc,  }\item[{\mbox{\hyperlink{sfxge__ioc_8h_a2c0936f31d483d014d0b23b7c97ea1d7}{sfxge\+\_\+ioc\+\_\+t}} $\ast$}]{ip,  }\item[{\mbox{\hyperlink{efx_8h_a31042803166f0a59fcd0384aef3279f4}{efx\+\_\+nvram\+\_\+type\+\_\+t}}}]{type,  }\item[{boolean\+\_\+t}]{write }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{sfxge__nvram_8c_source_l00055}{55}} of file \mbox{\hyperlink{sfxge__nvram_8c_source}{sfxge\+\_\+nvram.\+c}}.



References \mbox{\hyperlink{sfxge__ioc_8h_source_l00096}{sfxge\+\_\+ioc\+\_\+s\+::data}}, \mbox{\hyperlink{efx_8h_source_l00080}{EFX\+\_\+\+FAMILY\+\_\+\+SIENA}}, \mbox{\hyperlink{efx_8h_source_l01602}{EFX\+\_\+\+NVRAM\+\_\+\+DYNAMIC\+\_\+\+CFG}}, \mbox{\hyperlink{efx__nvram_8c_source_l00259}{efx\+\_\+nvram\+\_\+read\+\_\+chunk()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00401}{efx\+\_\+nvram\+\_\+rw\+\_\+finish()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00226}{efx\+\_\+nvram\+\_\+rw\+\_\+start()}}, \mbox{\hyperlink{efx__nvram_8c_source_l00368}{efx\+\_\+nvram\+\_\+write\+\_\+chunk()}}, \mbox{\hyperlink{sfxge_8h_source_l00288}{sfxge\+\_\+softc\+::enp}}, \mbox{\hyperlink{sfxge__nvram_8c_source_l00042}{fake\+\_\+dynamic\+\_\+cfg\+\_\+nvram}}, \mbox{\hyperlink{sfxge_8h_source_l00283}{sfxge\+\_\+softc\+::family}}, \mbox{\hyperlink{structsfxge__ioc__s_a373d9b0a721aed83c0c38d79aa149ac9}{sfxge\+\_\+ioc\+\_\+s\+::nvram}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00092}{sfxge\+\_\+ioc\+\_\+s\+::offset}}, \mbox{\hyperlink{sfxge_8h_source_l00001}{sc}}, \mbox{\hyperlink{sfxge__ioc_8h_source_l00093}{sfxge\+\_\+ioc\+\_\+s\+::size}}, and \mbox{\hyperlink{structsfxge__ioc__s_ab9637260694b417149e18cec8f183140}{sfxge\+\_\+ioc\+\_\+s\+::u}}.



Referenced by \mbox{\hyperlink{sfxge__nvram_8c_source_l00131}{sfxge\+\_\+nvram\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=348pt]{d1/d8b/sfxge__nvram_8c_a0b56641cd26ce66382ae603a1af88ef6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d8b/sfxge__nvram_8c_a0b56641cd26ce66382ae603a1af88ef6_icgraph}
\end{center}
\end{figure}


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{sfxge__nvram_8c_a619848033dbb20f17c7d3361052bc57d}\label{sfxge__nvram_8c_a619848033dbb20f17c7d3361052bc57d}} 
\index{sfxge\_nvram.c@{sfxge\_nvram.c}!fake\_dynamic\_cfg\_nvram@{fake\_dynamic\_cfg\_nvram}}
\index{fake\_dynamic\_cfg\_nvram@{fake\_dynamic\_cfg\_nvram}!sfxge\_nvram.c@{sfxge\_nvram.c}}
\doxysubsubsection{\texorpdfstring{fake\_dynamic\_cfg\_nvram}{fake\_dynamic\_cfg\_nvram}}
{\footnotesize\ttfamily const uint8\+\_\+t fake\+\_\+dynamic\+\_\+cfg\+\_\+nvram\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        0x7a, 0xda, 0x10, 0xef, 0x0c, 0x00, 0x00, 0x00,}
\DoxyCodeLine{        0x00, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,}
\DoxyCodeLine{        0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10,}
\DoxyCodeLine{        0x08, 0x00, 0x00, 0x00, 0x90, 0x04, 0x00, 0x52,}
\DoxyCodeLine{        0x56, 0x01, 0xc3, 0x78, 0x01, 0x00, 0x03, 0x10,}
\DoxyCodeLine{        0x08, 0x00, 0x00, 0x00, 0x90, 0x04, 0x00, 0x52,}
\DoxyCodeLine{        0x56, 0x01, 0xc3, 0x78, 0x57, 0x1a, 0x10, 0xef,}
\DoxyCodeLine{        0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,}
\DoxyCodeLine{        0x02, 0x0b, 0x64, 0x7d, 0xee, 0xee, 0xee, 0xee}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{sfxge__nvram_8c_source_l00042}{42}} of file \mbox{\hyperlink{sfxge__nvram_8c_source}{sfxge\+\_\+nvram.\+c}}.



Referenced by \mbox{\hyperlink{sfxge__nvram_8c_source_l00131}{sfxge\+\_\+nvram\+\_\+ioctl()}}, and \mbox{\hyperlink{sfxge__nvram_8c_source_l00055}{sfxge\+\_\+nvram\+\_\+rw()}}.

