diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-13 03:22:05 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-13 03:22:05 +0200 |
| commit | e29425af3c9ac47242856783f1c5e2fbaebc8de3 (patch) | |
| tree | 6afd7521476ae39194372c9452c9e1c3d2d47cbf /docs/tex/mbci.tex | |
| parent | 621310537c26e8ac0fb3c0d2e38aaa12e3945eec (diff) | |
feat: tex: new revision of tex specs.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'docs/tex/mbci.tex')
| -rw-r--r-- | docs/tex/mbci.tex | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/docs/tex/mbci.tex b/docs/tex/mbci.tex deleted file mode 100644 index 71907376..00000000 --- a/docs/tex/mbci.tex +++ /dev/null @@ -1,117 +0,0 @@ - -\documentclass{article} -\usepackage{geometry} -\usepackage{longtable} -\usepackage{listings} -\usepackage{xcolor} -\geometry{margin=1in} -\title{MBCI: Mini Bus Controller Interface Specification} -\author{Amlal El Mahrouss} -\date{2025} - -\begin{document} - -\maketitle - -\section{Overview} -The Mini Bus Controller Interface (MBCI) is a standardized memory-mapped I/O bus specification designed for use in embedded systems and operating system kernels. It provides an extensible framework for managing hardware devices via a shared bus using memory-mapped registers. It is designed to remain abstract and platform-agnostic, leaving platform-specific interrupt and address logic to the HAL. - -\section{Signal Lines} -The MBCI bus interface includes the following signal lines: - -\begin{itemize} - \item \textbf{VCC} (IN) – Power supply (OUT for MCU) - \item \textbf{CLK} (IN) – Clock line (OUT for MCU) - \item \textbf{ACK} (BI) – Acknowledge line containing packet frame - \item \textbf{D0-, D1-} (IN) – Host interface packet input - \item \textbf{D0+, D1+} (OUT) – Host interface packet output - \item \textbf{GND} (IN) – Ground line (OUT for MCU) -\end{itemize} - -\section{Host Structure} - -\subsection*{IMBCIHost Structure} - -\begin{lstlisting}[language=C++,basicstyle=\ttfamily\footnotesize] -volatile struct IMBCIHost { - UInt32 Magic; - UInt32 HostId; - UInt16 VendorId; - UInt16 DeviceId; - UInt8 MemoryType; - UInt16 HostType; - UInt16 HostFlags; - UInt8 Error; - UInt32 MMIOTest; - UInt16 State; - UInt8 Status; - UInt8 InterruptEnable; - UInt64 BaseAddressRegister; - UInt64 BaseAddressRegisterSize; - UInt32 CommandIssue; - UInt8 Esb[64]; // Extended Signature Block - UInt8 Zero[8]; -}; -\end{lstlisting} - -\section{Enumerations} - -\subsection*{Device Speeds} -\begin{itemize} - \item \texttt{kMBCISpeedDeviceInvalid} - \item \texttt{kMBCILowSpeedDevice} - \item \texttt{kMBCIHighSpeedDevice} -\end{itemize} - -\subsection*{Host Flags} -\begin{itemize} - \item \texttt{kMBCIHostFlagsSupportsNothing} - \item \texttt{kMBCIHostFlagsSupportsAPM} - \item \texttt{kMBCIHostFlagsSupportsDaisyChain} - \item \texttt{kMBCIHostFlagsSupportsHWInterrupts} - \item \texttt{kMBCIHostFlagsSupportsDMA} - \item \texttt{kMBCIHostFlagsExtended} -\end{itemize} - -\subsection*{Host Types} -\begin{itemize} - \item \texttt{kMBCIHostKindHardDisk} - \item \texttt{kMBCIHostKindOpticalDisk} - \item \texttt{kMBCIHostKindKeyboardLow} - \item \texttt{kMBCIHostKindMouseLow} - \item \texttt{kMBCIHostKindMouseHigh} - \item \texttt{kMBCIHostKindKeyboardHigh} - \item \texttt{kMBCIHostKindNetworkInterface} - \item \texttt{kMBCIHostKindDaisyChain} - \item \texttt{kMBCIHostKindStartExtended} -\end{itemize} - -\subsection*{Host State} -\begin{itemize} - \item \texttt{kMBCIHostStateInvalid} - \item \texttt{kMBCIHostStateReset} - \item \texttt{kMBCIHostStateSuccess} - \item \texttt{kMBCIHostStateReady} - \item \texttt{kMBCIHostStateDmaStart} - \item \texttt{kMBCIHostStateDmaEnd} - \item \texttt{kMBCIHostStateFail} - \item \texttt{kMBCIHostStateCount} -\end{itemize} - -\section{Functions} - -\subsection*{MMIO Test} -Tests if MMIO is accessible by writing and checking a challenge value. Times out if the bus does not respond. - -\begin{lstlisting}[language=C++,basicstyle=\ttfamily\footnotesize] -inline BOOL busi_test_mmio(struct IMBCIHost* host, const UInt32 test); -\end{lstlisting} - -\subsection*{Auth Key Reader} -Reads the 24-bit auth key encoded in the last three bytes of the Extended Signature Block after verifying MMIO test success: - -\begin{lstlisting}[language=C++,basicstyle=\ttfamily\footnotesize] -inline MBCIAuthKeyType mbci_read_auth_key(struct IMBCIHost* host); -\end{lstlisting} - -\end{document} |
