\hypertarget{mini__ipc_8h}{
\section{libbroadway/include/broadway/mini\_\-ipc.h File Reference}
\label{mini__ipc_8h}\index{libbroadway/include/broadway/mini\_\-ipc.h@{libbroadway/include/broadway/mini\_\-ipc.h}}
}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structsig__rsa2048__t}{sig\_\-rsa2048\_\-t}
\item 
struct \hyperlink{structtmd__content__t}{tmd\_\-content\_\-t}
\item 
struct \hyperlink{structtmd__t}{tmd\_\-t}
\item 
struct \hyperlink{structotp__t}{otp\_\-t}
\item 
struct \hyperlink{structeep__ctr__t}{eep\_\-ctr\_\-t}
\item 
struct \hyperlink{structseeprom__t}{seeprom\_\-t}
\end{DoxyCompactItemize}
\subsection*{Defines}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{mini__ipc_8h_aae0ae80009dabf847ee882c25dd18709}{SDHC\_\-ENOCARD}~-\/0x1001
\item 
\#define \hyperlink{mini__ipc_8h_a6c5ba862aca88c5ddf9f0ba670894f96}{SDHC\_\-ESTRANGE}~-\/0x1002
\item 
\#define \hyperlink{mini__ipc_8h_a1373e6b2f558d3b7dd043372e198c4a8}{SDHC\_\-EOVERFLOW}~-\/0x1003
\item 
\#define \hyperlink{mini__ipc_8h_a112a72dbc0714451eb63a13001a6796f}{SDHC\_\-ETIMEDOUT}~-\/0x1004
\item 
\#define \hyperlink{mini__ipc_8h_a4741bde73d031f89c0e71fc02570ea59}{SDHC\_\-EINVAL}~-\/0x1005
\item 
\#define \hyperlink{mini__ipc_8h_a73d061223fe40c199ea7cbd6b38f18e3}{SDHC\_\-EIO}~-\/0x1006
\item 
\#define \hyperlink{mini__ipc_8h_a6ba02fb41b6a2acc5e82b3f74c1ab57e}{SDMMC\_\-NO\_\-CARD}~1
\item 
\#define \hyperlink{mini__ipc_8h_ade900f46a4e74ecbd6524f8fae04702b}{SDMMC\_\-NEW\_\-CARD}~2
\item 
\#define \hyperlink{mini__ipc_8h_afd7e1126a47aef0615bae8db4e8ec796}{SDMMC\_\-INSERTED}~3
\item 
\#define \hyperlink{mini__ipc_8h_a876a942af8011f7d479c839369e0f353}{NAND\_\-ECC\_\-OK}~0
\item 
\#define \hyperlink{mini__ipc_8h_a6e7dccaf6fa8d7e126a9af0901869db6}{NAND\_\-ECC\_\-CORRECTED}~1
\item 
\#define \hyperlink{mini__ipc_8h_a93ab6ab95ba370b8832fad4434cd8cc5}{NAND\_\-ECC\_\-UNCORRECTABLE}~-\/1
\item 
\hypertarget{mini__ipc_8h_a9ce4cdfb52998287840ece3d414473cb}{
\#define {\bfseries TMD\_\-BM\_\-MARK}(x)~((u16$\ast$)\&(x-\/$>$reserved\mbox{[}4\mbox{]}))}
\label{mini__ipc_8h_a9ce4cdfb52998287840ece3d414473cb}

\item 
\hypertarget{mini__ipc_8h_a78cb0c3a02ffc4b6c5577f7d09dd1332}{
\#define {\bfseries TMD\_\-BM\_\-MAGIC}~0x424d}
\label{mini__ipc_8h_a78cb0c3a02ffc4b6c5577f7d09dd1332}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mini__ipc_8h_a5438497e7de111fa9e7ef53d5ecf66cd}{
int {\bfseries sd\_\-get\_\-state} (void)}
\label{mini__ipc_8h_a5438497e7de111fa9e7ef53d5ecf66cd}

\item 
\hypertarget{mini__ipc_8h_a4f18609e0f72eda4f5d8978365509640}{
int {\bfseries sd\_\-protected} (void)}
\label{mini__ipc_8h_a4f18609e0f72eda4f5d8978365509640}

\item 
\hypertarget{mini__ipc_8h_a33b937a28585c760a57f29b9c4334fbd}{
int {\bfseries sd\_\-mount} (void)}
\label{mini__ipc_8h_a33b937a28585c760a57f29b9c4334fbd}

\item 
\hypertarget{mini__ipc_8h_a0c5bb77dd4fc3d1b876334aa2a3063fc}{
int {\bfseries sd\_\-select} (void)}
\label{mini__ipc_8h_a0c5bb77dd4fc3d1b876334aa2a3063fc}

\item 
\hypertarget{mini__ipc_8h_ae39a292a42080fd67a63823c3f68d782}{
int {\bfseries sd\_\-read} (u32 start\_\-block, u32 blk\_\-cnt, void $\ast$buffer)}
\label{mini__ipc_8h_ae39a292a42080fd67a63823c3f68d782}

\item 
\hypertarget{mini__ipc_8h_a0c4f39ce4c96fcb7e87c5cbe58bd9e0a}{
int {\bfseries sd\_\-write} (u32 start\_\-block, u32 blk\_\-cnt, const void $\ast$buffer)}
\label{mini__ipc_8h_a0c4f39ce4c96fcb7e87c5cbe58bd9e0a}

\item 
\hypertarget{mini__ipc_8h_a48ac2d2e0db4b5e4472fd42643b31034}{
u32 {\bfseries sd\_\-getsize} (void)}
\label{mini__ipc_8h_a48ac2d2e0db4b5e4472fd42643b31034}

\item 
int \hyperlink{mini__ipc_8h_ab0ed12124f31a075789a9f91ca42dd91}{ipc\_\-powerpc\_\-boot} (const void $\ast$addr, u32 len)
\begin{DoxyCompactList}\small\item\em Reboot the PowerPC to a specific vector. \item\end{DoxyCompactList}\item 
int \hyperlink{mini__ipc_8h_a47958de9e5544474e4c68de064781be7}{ipc\_\-powerpc\_\-boot\_\-file} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Reboot the PowerPC to a file. \item\end{DoxyCompactList}\item 
u32 \hyperlink{mini__ipc_8h_ad99fe1f863c3ef3866724213d3e8d3d2}{boot2\_\-run} (u32 hi, u32 lo)
\begin{DoxyCompactList}\small\item\em Return to boot2 with modified launch title. \item\end{DoxyCompactList}\item 
\hyperlink{structtmd__t}{tmd\_\-t} $\ast$ \hyperlink{mini__ipc_8h_ad467dc1a0599914c0d0539359b94ebae}{boot2\_\-tmd} (void)
\begin{DoxyCompactList}\small\item\em Get boot2's TMD. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_ad688ef64c6298528ada8aeaa927ef230}{getotp} (\hyperlink{structotp__t}{otp\_\-t} $\ast$otp)
\begin{DoxyCompactList}\small\item\em Get OTP data. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_a8033dc949e71c3f9a3f0425f0f9e993c}{getseeprom} (\hyperlink{structseeprom__t}{seeprom\_\-t} $\ast$seeprom)
\begin{DoxyCompactList}\small\item\em Get SEEPROM data. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_a933821061a5f2d2836f8cf1bdaeef7a7}{getMiniGitVer} (char $\ast$buf, u16 len)
\begin{DoxyCompactList}\small\item\em Get the Git version of MINI. \item\end{DoxyCompactList}\item 
\hypertarget{mini__ipc_8h_a0234b705278fe36e8b81d0909f55d4c9}{
void \hyperlink{mini__ipc_8h_a0234b705278fe36e8b81d0909f55d4c9}{aes\_\-reset} (void)}
\label{mini__ipc_8h_a0234b705278fe36e8b81d0909f55d4c9}

\begin{DoxyCompactList}\small\item\em Reset the AES engine. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_acc1608325c81e970d4815e08301a8714}{aes\_\-set\_\-key} (u8 $\ast$key)
\begin{DoxyCompactList}\small\item\em Set the key for the AES engine. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_a4c00a7daa2b81849a11ff3f72e30466d}{aes\_\-set\_\-iv} (u8 $\ast$iv)
\begin{DoxyCompactList}\small\item\em Set the IV for the AES engine. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_a9c6b30f3de63a15c745348b70480fc5a}{aes\_\-decrypt} (u8 $\ast$src, u8 $\ast$dst, u32 blocks, u8 keep\_\-iv)
\begin{DoxyCompactList}\small\item\em Decrypt data using the AES engine. \item\end{DoxyCompactList}\item 
\hypertarget{mini__ipc_8h_add0c4f97ac6878bd804ccbdf7b55fc35}{
void {\bfseries nand\_\-reset} (void)}
\label{mini__ipc_8h_add0c4f97ac6878bd804ccbdf7b55fc35}

\item 
\hypertarget{mini__ipc_8h_ad9c1ce56d724588a569867bd3bfd3df3}{
u32 {\bfseries nand\_\-getid} (void)}
\label{mini__ipc_8h_ad9c1ce56d724588a569867bd3bfd3df3}

\item 
\hypertarget{mini__ipc_8h_a98d003c690fd79254c90e295f02e12fd}{
u8 {\bfseries nand\_\-status} (void)}
\label{mini__ipc_8h_a98d003c690fd79254c90e295f02e12fd}

\item 
\hypertarget{mini__ipc_8h_afae549c1d2f85e746b085c21b40fae19}{
int {\bfseries nand\_\-read} (u32 pageno, void $\ast$data, void $\ast$ecc)}
\label{mini__ipc_8h_afae549c1d2f85e746b085c21b40fae19}

\item 
\hypertarget{mini__ipc_8h_ace4ba453e32c429f19a1a7226853e97d}{
void {\bfseries nand\_\-write} (u32 pageno, void $\ast$data, void $\ast$ecc)}
\label{mini__ipc_8h_ace4ba453e32c429f19a1a7226853e97d}

\item 
\hypertarget{mini__ipc_8h_a950c82353ca96953918facdaae40f62b}{
void {\bfseries nand\_\-erase} (u32 pageno)}
\label{mini__ipc_8h_a950c82353ca96953918facdaae40f62b}

\item 
int \hyperlink{mini__ipc_8h_a67cdb5a18574a3dbacfb49cdd32f8360}{slave\_\-load} (void $\ast$code, u32 size)
\begin{DoxyCompactList}\small\item\em Load code into the ARM. \item\end{DoxyCompactList}\item 
\hypertarget{mini__ipc_8h_a02472972fb690f5ff21df3c66cde7d6d}{
void \hyperlink{mini__ipc_8h_a02472972fb690f5ff21df3c66cde7d6d}{slave\_\-execute} (void)}
\label{mini__ipc_8h_a02472972fb690f5ff21df3c66cde7d6d}

\begin{DoxyCompactList}\small\item\em Schedule execution of code. \item\end{DoxyCompactList}\item 
void \hyperlink{mini__ipc_8h_ae5b25af7dfad4e68f648b52f53dfe4e5}{slave\_\-params} (void $\ast$data, u32 size)
\begin{DoxyCompactList}\small\item\em Load parameter data into the ARM. \item\end{DoxyCompactList}\item 
void $\ast$ \hyperlink{mini__ipc_8h_ace6b87798bd261cfd82837728bad3f5a}{slave\_\-results} (void)
\begin{DoxyCompactList}\small\item\em Retrieve results of executed code. \item\end{DoxyCompactList}\item 
int \hyperlink{mini__ipc_8h_a7c81fb02d8c008cdadb0caad51fb809b}{slave\_\-executing} (void)
\begin{DoxyCompactList}\small\item\em Checks if the slave is done executing. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mini__ipc_8h_ab5cb143090d319a794263da99a3c60c3}{
struct \hyperlink{structsig__rsa2048__t}{sig\_\-rsa2048\_\-t} {\bfseries packed}}
\label{mini__ipc_8h_ab5cb143090d319a794263da99a3c60c3}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
An abstraction of several MINI calls. 

\subsection{Define Documentation}
\hypertarget{mini__ipc_8h_a6e7dccaf6fa8d7e126a9af0901869db6}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!NAND\_\-ECC\_\-CORRECTED@{NAND\_\-ECC\_\-CORRECTED}}
\index{NAND\_\-ECC\_\-CORRECTED@{NAND\_\-ECC\_\-CORRECTED}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{NAND\_\-ECC\_\-CORRECTED}]{\setlength{\rightskip}{0pt plus 5cm}\#define NAND\_\-ECC\_\-CORRECTED~1}}
\label{mini__ipc_8h_a6e7dccaf6fa8d7e126a9af0901869db6}
ECC was corrected \hypertarget{mini__ipc_8h_a876a942af8011f7d479c839369e0f353}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!NAND\_\-ECC\_\-OK@{NAND\_\-ECC\_\-OK}}
\index{NAND\_\-ECC\_\-OK@{NAND\_\-ECC\_\-OK}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{NAND\_\-ECC\_\-OK}]{\setlength{\rightskip}{0pt plus 5cm}\#define NAND\_\-ECC\_\-OK~0}}
\label{mini__ipc_8h_a876a942af8011f7d479c839369e0f353}
ECC is proper \hypertarget{mini__ipc_8h_a93ab6ab95ba370b8832fad4434cd8cc5}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!NAND\_\-ECC\_\-UNCORRECTABLE@{NAND\_\-ECC\_\-UNCORRECTABLE}}
\index{NAND\_\-ECC\_\-UNCORRECTABLE@{NAND\_\-ECC\_\-UNCORRECTABLE}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{NAND\_\-ECC\_\-UNCORRECTABLE}]{\setlength{\rightskip}{0pt plus 5cm}\#define NAND\_\-ECC\_\-UNCORRECTABLE~-\/1}}
\label{mini__ipc_8h_a93ab6ab95ba370b8832fad4434cd8cc5}
ECC was uncorrectable \hypertarget{mini__ipc_8h_a4741bde73d031f89c0e71fc02570ea59}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-EINVAL@{SDHC\_\-EINVAL}}
\index{SDHC\_\-EINVAL@{SDHC\_\-EINVAL}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-EINVAL}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-EINVAL~-\/0x1005}}
\label{mini__ipc_8h_a4741bde73d031f89c0e71fc02570ea59}
Invalid \hypertarget{mini__ipc_8h_a73d061223fe40c199ea7cbd6b38f18e3}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-EIO@{SDHC\_\-EIO}}
\index{SDHC\_\-EIO@{SDHC\_\-EIO}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-EIO}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-EIO~-\/0x1006}}
\label{mini__ipc_8h_a73d061223fe40c199ea7cbd6b38f18e3}
I/O error \hypertarget{mini__ipc_8h_aae0ae80009dabf847ee882c25dd18709}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-ENOCARD@{SDHC\_\-ENOCARD}}
\index{SDHC\_\-ENOCARD@{SDHC\_\-ENOCARD}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-ENOCARD}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-ENOCARD~-\/0x1001}}
\label{mini__ipc_8h_aae0ae80009dabf847ee882c25dd18709}
No card inserted \hypertarget{mini__ipc_8h_a1373e6b2f558d3b7dd043372e198c4a8}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-EOVERFLOW@{SDHC\_\-EOVERFLOW}}
\index{SDHC\_\-EOVERFLOW@{SDHC\_\-EOVERFLOW}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-EOVERFLOW}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-EOVERFLOW~-\/0x1003}}
\label{mini__ipc_8h_a1373e6b2f558d3b7dd043372e198c4a8}
Overflow \hypertarget{mini__ipc_8h_a6c5ba862aca88c5ddf9f0ba670894f96}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-ESTRANGE@{SDHC\_\-ESTRANGE}}
\index{SDHC\_\-ESTRANGE@{SDHC\_\-ESTRANGE}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-ESTRANGE}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-ESTRANGE~-\/0x1002}}
\label{mini__ipc_8h_a6c5ba862aca88c5ddf9f0ba670894f96}
??? \hypertarget{mini__ipc_8h_a112a72dbc0714451eb63a13001a6796f}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDHC\_\-ETIMEDOUT@{SDHC\_\-ETIMEDOUT}}
\index{SDHC\_\-ETIMEDOUT@{SDHC\_\-ETIMEDOUT}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDHC\_\-ETIMEDOUT}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDHC\_\-ETIMEDOUT~-\/0x1004}}
\label{mini__ipc_8h_a112a72dbc0714451eb63a13001a6796f}
Request timed out \hypertarget{mini__ipc_8h_afd7e1126a47aef0615bae8db4e8ec796}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDMMC\_\-INSERTED@{SDMMC\_\-INSERTED}}
\index{SDMMC\_\-INSERTED@{SDMMC\_\-INSERTED}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDMMC\_\-INSERTED}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDMMC\_\-INSERTED~3}}
\label{mini__ipc_8h_afd7e1126a47aef0615bae8db4e8ec796}
Card inserted \hypertarget{mini__ipc_8h_ade900f46a4e74ecbd6524f8fae04702b}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDMMC\_\-NEW\_\-CARD@{SDMMC\_\-NEW\_\-CARD}}
\index{SDMMC\_\-NEW\_\-CARD@{SDMMC\_\-NEW\_\-CARD}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDMMC\_\-NEW\_\-CARD}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDMMC\_\-NEW\_\-CARD~2}}
\label{mini__ipc_8h_ade900f46a4e74ecbd6524f8fae04702b}
New card \hypertarget{mini__ipc_8h_a6ba02fb41b6a2acc5e82b3f74c1ab57e}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!SDMMC\_\-NO\_\-CARD@{SDMMC\_\-NO\_\-CARD}}
\index{SDMMC\_\-NO\_\-CARD@{SDMMC\_\-NO\_\-CARD}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{SDMMC\_\-NO\_\-CARD}]{\setlength{\rightskip}{0pt plus 5cm}\#define SDMMC\_\-NO\_\-CARD~1}}
\label{mini__ipc_8h_a6ba02fb41b6a2acc5e82b3f74c1ab57e}
No card inserted 

\subsection{Function Documentation}
\hypertarget{mini__ipc_8h_a9c6b30f3de63a15c745348b70480fc5a}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!aes\_\-decrypt@{aes\_\-decrypt}}
\index{aes\_\-decrypt@{aes\_\-decrypt}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{aes\_\-decrypt}]{\setlength{\rightskip}{0pt plus 5cm}void aes\_\-decrypt (u8 $\ast$ {\em src}, \/  u8 $\ast$ {\em dst}, \/  u32 {\em blocks}, \/  u8 {\em keep\_\-iv})}}
\label{mini__ipc_8h_a9c6b30f3de63a15c745348b70480fc5a}


Decrypt data using the AES engine. 


\begin{DoxyParams}{Parameters}
\item[{\em src}]the data to decrypt. (16 byte aligned) \item[{\em dst}]the destination for the decrypted data. (16 byte aligned) \item[{\em blocks}]how many blocks to decrypt. (blocks are 16 bytes) \item[{\em keep\_\-iv}]if 1, chain from last command. Otherwise use the set IV. \end{DoxyParams}
\hypertarget{mini__ipc_8h_a4c00a7daa2b81849a11ff3f72e30466d}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!aes\_\-set\_\-iv@{aes\_\-set\_\-iv}}
\index{aes\_\-set\_\-iv@{aes\_\-set\_\-iv}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{aes\_\-set\_\-iv}]{\setlength{\rightskip}{0pt plus 5cm}void aes\_\-set\_\-iv (u8 $\ast$ {\em iv})}}
\label{mini__ipc_8h_a4c00a7daa2b81849a11ff3f72e30466d}


Set the IV for the AES engine. 


\begin{DoxyParams}{Parameters}
\item[{\em iv}]the IV to be used. \end{DoxyParams}
\hypertarget{mini__ipc_8h_acc1608325c81e970d4815e08301a8714}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!aes\_\-set\_\-key@{aes\_\-set\_\-key}}
\index{aes\_\-set\_\-key@{aes\_\-set\_\-key}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{aes\_\-set\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}void aes\_\-set\_\-key (u8 $\ast$ {\em key})}}
\label{mini__ipc_8h_acc1608325c81e970d4815e08301a8714}


Set the key for the AES engine. 


\begin{DoxyParams}{Parameters}
\item[{\em key}]the key to be used. \end{DoxyParams}
\hypertarget{mini__ipc_8h_ad99fe1f863c3ef3866724213d3e8d3d2}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!boot2\_\-run@{boot2\_\-run}}
\index{boot2\_\-run@{boot2\_\-run}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{boot2\_\-run}]{\setlength{\rightskip}{0pt plus 5cm}u32 boot2\_\-run (u32 {\em hi}, \/  u32 {\em lo})}}
\label{mini__ipc_8h_ad99fe1f863c3ef3866724213d3e8d3d2}


Return to boot2 with modified launch title. 


\begin{DoxyParams}{Parameters}
\item[{\em hi}]the high 32bits of the launch title \item[{\em lo}]the low 32bits of the launch title \end{DoxyParams}
\begin{DoxyReturn}{Returns}
Anything must be an error code 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_ad467dc1a0599914c0d0539359b94ebae}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!boot2\_\-tmd@{boot2\_\-tmd}}
\index{boot2\_\-tmd@{boot2\_\-tmd}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{boot2\_\-tmd}]{\setlength{\rightskip}{0pt plus 5cm}{\bf tmd\_\-t}$\ast$ boot2\_\-tmd (void)}}
\label{mini__ipc_8h_ad467dc1a0599914c0d0539359b94ebae}


Get boot2's TMD. 

\begin{DoxyReturn}{Returns}
boot2's TMD, or (tmd\_\-t$\ast$)-\/1. 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_a933821061a5f2d2836f8cf1bdaeef7a7}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!getMiniGitVer@{getMiniGitVer}}
\index{getMiniGitVer@{getMiniGitVer}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{getMiniGitVer}]{\setlength{\rightskip}{0pt plus 5cm}void getMiniGitVer (char $\ast$ {\em buf}, \/  u16 {\em len})}}
\label{mini__ipc_8h_a933821061a5f2d2836f8cf1bdaeef7a7}


Get the Git version of MINI. 


\begin{DoxyParams}{Parameters}
\item[{\em buf}]buffer to be filled. \item[{\em len}]length of the buffer to be filled. \end{DoxyParams}
\hypertarget{mini__ipc_8h_ad688ef64c6298528ada8aeaa927ef230}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!getotp@{getotp}}
\index{getotp@{getotp}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{getotp}]{\setlength{\rightskip}{0pt plus 5cm}void getotp ({\bf otp\_\-t} $\ast$ {\em otp})}}
\label{mini__ipc_8h_ad688ef64c6298528ada8aeaa927ef230}


Get OTP data. 


\begin{DoxyParams}{Parameters}
\item[{\em otp}]a pointer to an \hyperlink{structotp__t}{otp\_\-t} to be filled. \end{DoxyParams}
\hypertarget{mini__ipc_8h_a8033dc949e71c3f9a3f0425f0f9e993c}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!getseeprom@{getseeprom}}
\index{getseeprom@{getseeprom}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{getseeprom}]{\setlength{\rightskip}{0pt plus 5cm}void getseeprom ({\bf seeprom\_\-t} $\ast$ {\em seeprom})}}
\label{mini__ipc_8h_a8033dc949e71c3f9a3f0425f0f9e993c}


Get SEEPROM data. 


\begin{DoxyParams}{Parameters}
\item[{\em seeprom}]a pointer to an \hyperlink{structseeprom__t}{seeprom\_\-t} to be filled. \end{DoxyParams}
\hypertarget{mini__ipc_8h_ab0ed12124f31a075789a9f91ca42dd91}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!ipc\_\-powerpc\_\-boot@{ipc\_\-powerpc\_\-boot}}
\index{ipc\_\-powerpc\_\-boot@{ipc\_\-powerpc\_\-boot}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{ipc\_\-powerpc\_\-boot}]{\setlength{\rightskip}{0pt plus 5cm}int ipc\_\-powerpc\_\-boot (const void $\ast$ {\em addr}, \/  u32 {\em len})}}
\label{mini__ipc_8h_ab0ed12124f31a075789a9f91ca42dd91}


Reboot the PowerPC to a specific vector. 


\begin{DoxyParams}{Parameters}
\item[{\em addr}]the address the PowerPC will boot at. \item[{\em len}]how long the code at addr is \end{DoxyParams}
\begin{DoxyReturn}{Returns}
Anything must be an error code 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_a47958de9e5544474e4c68de064781be7}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!ipc\_\-powerpc\_\-boot\_\-file@{ipc\_\-powerpc\_\-boot\_\-file}}
\index{ipc\_\-powerpc\_\-boot\_\-file@{ipc\_\-powerpc\_\-boot\_\-file}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{ipc\_\-powerpc\_\-boot\_\-file}]{\setlength{\rightskip}{0pt plus 5cm}int ipc\_\-powerpc\_\-boot\_\-file (const char $\ast$ {\em file})}}
\label{mini__ipc_8h_a47958de9e5544474e4c68de064781be7}


Reboot the PowerPC to a file. 


\begin{DoxyParams}{Parameters}
\item[{\em file}]the path to the file that will be launched. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
Anything must be an error code 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_a7c81fb02d8c008cdadb0caad51fb809b}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!slave\_\-executing@{slave\_\-executing}}
\index{slave\_\-executing@{slave\_\-executing}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{slave\_\-executing}]{\setlength{\rightskip}{0pt plus 5cm}int slave\_\-executing (void)}}
\label{mini__ipc_8h_a7c81fb02d8c008cdadb0caad51fb809b}


Checks if the slave is done executing. 

\begin{DoxyReturn}{Returns}
1 if the slave is still executing, 0 if the slave is done. 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_a67cdb5a18574a3dbacfb49cdd32f8360}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!slave\_\-load@{slave\_\-load}}
\index{slave\_\-load@{slave\_\-load}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{slave\_\-load}]{\setlength{\rightskip}{0pt plus 5cm}int slave\_\-load (void $\ast$ {\em code}, \/  u32 {\em size})}}
\label{mini__ipc_8h_a67cdb5a18574a3dbacfb49cdd32f8360}


Load code into the ARM. 


\begin{DoxyParams}{Parameters}
\item[{\em code}]the code to be sent. \item[{\em size}]the length of the code to be sent. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, error code otherwise 
\end{DoxyReturn}
\hypertarget{mini__ipc_8h_ae5b25af7dfad4e68f648b52f53dfe4e5}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!slave\_\-params@{slave\_\-params}}
\index{slave\_\-params@{slave\_\-params}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{slave\_\-params}]{\setlength{\rightskip}{0pt plus 5cm}void slave\_\-params (void $\ast$ {\em data}, \/  u32 {\em size})}}
\label{mini__ipc_8h_ae5b25af7dfad4e68f648b52f53dfe4e5}


Load parameter data into the ARM. 


\begin{DoxyParams}{Parameters}
\item[{\em data}]the data to be sent. \item[{\em size}]the length of the data to be sent. \end{DoxyParams}
\hypertarget{mini__ipc_8h_ace6b87798bd261cfd82837728bad3f5a}{
\index{mini\_\-ipc.h@{mini\_\-ipc.h}!slave\_\-results@{slave\_\-results}}
\index{slave\_\-results@{slave\_\-results}!mini_ipc.h@{mini\_\-ipc.h}}
\subsubsection[{slave\_\-results}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ slave\_\-results (void)}}
\label{mini__ipc_8h_ace6b87798bd261cfd82837728bad3f5a}


Retrieve results of executed code. 

\begin{DoxyReturn}{Returns}
Memory pointing to the results of the executed code. 
\end{DoxyReturn}
