diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-28 09:23:05 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-28 09:24:36 +0100 |
| commit | 9012c6fb7c040be92aa8f950bad4f49c5be264d8 (patch) | |
| tree | 581b9aaf6f372bf62c81d9626c63e835ea65736c /docs/tex/mini_bus_controller_interface.tex | |
| parent | 42d321d36c8922de043bb65693fd427c51f89f14 (diff) | |
feat! rename docs to doc.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'docs/tex/mini_bus_controller_interface.tex')
| -rw-r--r-- | docs/tex/mini_bus_controller_interface.tex | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/docs/tex/mini_bus_controller_interface.tex b/docs/tex/mini_bus_controller_interface.tex deleted file mode 100644 index ba2381b7..00000000 --- a/docs/tex/mini_bus_controller_interface.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{\today} - -\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} |
