Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Embedded Linux: add back slide about reasons to tweat the DT
Done by splitting a set of slides shared between the kernel and sysdev courses. Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
- Loading branch information
1 parent
49c9c82
commit 95ae2ed
Showing
8 changed files
with
98 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
\begin{frame} | ||
\frametitle{Customize your board device tree!} | ||
\small | ||
Often needed for embedded board users: | ||
\begin{columns} | ||
\column{0.65\textwidth} | ||
\begin{itemize} | ||
\item To describe external devices attached to non-discoverable | ||
busses (such as I2C) and configure them. | ||
\item To configure pin muxing: choosing what SoC signals are | ||
made available on the board external connectors. | ||
See \url{http://linux.tanzilli.com/} for a web service doing this | ||
interactively. | ||
\item To configure some system parameters: flash partitions, | ||
kernel command line (other ways exist) | ||
\item Device Tree 101 webinar, Thomas Petazzoni (2021):\\ | ||
Slides: \url{https://bootlin.com/blog/device-tree-101-webinar-slides-and-videos/}\\ | ||
Video: \url{https://youtu.be/a9CZ1Uk3OYQ} | ||
\end{itemize} | ||
\column{0.35\textwidth} | ||
\includegraphics[width=\textwidth]{common/device-tree-video.jpg} | ||
\end{columns} | ||
\end{frame} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
\begin{frame} | ||
\frametitle{Booting with U-Boot} | ||
\begin{itemize} | ||
\item U-Boot can directly boot the \code{zImage} binary. | ||
\item In addition to the kernel image, U-Boot should also pass a | ||
DTB to the kernel. | ||
\item The typical boot process is therefore: | ||
\begin{enumerate} | ||
\item Load \code{zImage} at address X in memory | ||
\item Load \code{<board>.dtb} at address Y in memory | ||
\item Start the kernel with \code{bootz X - Y} \\ | ||
The \code{-} in the middle indicates no {\em initramfs} | ||
\end{enumerate} | ||
\end{itemize} | ||
\end{frame} | ||
|
||
\begin{frame} | ||
\frametitle{Kernel command line} | ||
\begin{itemize} | ||
\item In addition to the compile time configuration, the kernel | ||
behavior can be adjusted with no recompilation using the {\bf | ||
kernel command line} | ||
\item The kernel command line is a string that defines various | ||
arguments to the kernel | ||
\begin{itemize} | ||
\item It is very important for system configuration | ||
\item \code{root=} for the root filesystem (covered later) | ||
\item \code{console=} for the destination of kernel messages | ||
\item Example: \code{console=ttyS0 root=/dev/mmcblk0p2 rootwait} | ||
\item Many more exist. The most important ones are documented | ||
in \kdochtml{admin-guide/kernel-parameters} in kernel | ||
documentation. | ||
\end{itemize} | ||
\end{itemize} | ||
\end{frame} | ||
|
||
\begin{frame} | ||
\frametitle{Passing the kernel command line} | ||
\begin{columns} | ||
\column{0.7\textwidth} | ||
\begin{itemize} | ||
\item U-Boot carries the Linux kernel command line string in its | ||
\code{bootargs} environment variable | ||
\item Right before starting the kernel, it will store the content of | ||
\code{bootargs} in the \code{chosen} section of the Device Tree | ||
\item The kernel will behave differently depending on its | ||
configuration: | ||
\begin{itemize} | ||
\item If \kconfig{CONFIG_CMDLINE_FROM_BOOTLOADER} is set:\\ | ||
The kernel will use only the string from the bootloader | ||
\item If \kconfig{CONFIG_CMDLINE_FORCE} is set:\\ | ||
The kernel will only use the string received at configuration | ||
time in \kconfig{CONFIG_CMDLINE} | ||
\item If \kconfig{CONFIG_CMDLINE_EXTEND} is set:\\ | ||
The kernel will concatenate both strings | ||
\end{itemize} | ||
\end{itemize} | ||
\column{0.3\textwidth} | ||
\tiny See the "Understanding U-Boot Falcon Mode" | ||
presentation from Michael Opdenacker, for details about how U-Boot | ||
boots Linux.\\ | ||
\vspace{0.6cm} | ||
\includegraphics[width=\textwidth]{slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png}\\ | ||
\vspace{0.4cm} | ||
\tiny Slides: \url{https://bootlin.com/pub/conferences/2021/lee/}\\ | ||
Video: \url{https://www.youtube.com/watch?v=LFe3x2QMhSo} | ||
\end{columns} | ||
\end{frame} |
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters