[bootlin/training-materials updates] master: Embedded Linux: add back slide about reasons to tweat the DT (95ae2ed7)

Michael Opdenacker michael.opdenacker at bootlin.com
Thu Nov 25 17:35:42 CET 2021


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/95ae2ed79c50fb32e985ccdc40ba8e9daaafddbe

>---------------------------------------------------------------

commit 95ae2ed79c50fb32e985ccdc40ba8e9daaafddbe
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Thu Nov 25 17:35:42 2021 +0100

    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 at bootlin.com>


>---------------------------------------------------------------

95ae2ed79c50fb32e985ccdc40ba8e9daaafddbe
 mk/embedded-linux-4d.mk                            |   2 +
 mk/embedded-linux-qemu.mk                          |   2 +
 mk/embedded-linux.mk                               |   2 +
 mk/linux-kernel.mk                                 |   1 +
 .../sysdev-customizing-dt.tex                      |  23 +++++++
 .../sysdev-kernel-booting.tex                      |  68 ++++++++++++++++++++
 .../understanding-falcon-mode-presentation.png     | Bin 0 -> 120075 bytes
 .../sysdev-kernel-building.tex                     |  69 ---------------------
 .../understanding-falcon-mode-presentation.png     | Bin 120075 -> 0 bytes
 9 files changed, 98 insertions(+), 69 deletions(-)

diff --git a/mk/embedded-linux-4d.mk b/mk/embedded-linux-4d.mk
index 791cc1d5..95656774 100644
--- a/mk/embedded-linux-4d.mk
+++ b/mk/embedded-linux-4d.mk
@@ -28,6 +28,8 @@ EMBEDDED_LINUX_4D_SLIDES = \
 		sysdev-linux-tarballs-and-patches \
 		sysdev-linux-intro-lab-sources \
 		sysdev-kernel-building \
+		sysdev-customizing-dt \
+		sysdev-kernel-booting \
 		sysdev-linux-intro-lab-cross-compilation \
 		sysdev-linux-intro-modules \
 		sysdev-root-filesystem-title \
diff --git a/mk/embedded-linux-qemu.mk b/mk/embedded-linux-qemu.mk
index 2a2db4bf..e9bd0952 100644
--- a/mk/embedded-linux-qemu.mk
+++ b/mk/embedded-linux-qemu.mk
@@ -27,6 +27,8 @@ EMBEDDED_LINUX_QEMU_SLIDES = \
 		sysdev-linux-tarballs-and-patches \
 		sysdev-linux-intro-lab-sources \
 		sysdev-kernel-building \
+		sysdev-customizing-dt \
+		sysdev-kernel-booting \
 		sysdev-linux-intro-lab-cross-compilation \
 		sysdev-linux-intro-modules \
 		sysdev-root-filesystem-title \
diff --git a/mk/embedded-linux.mk b/mk/embedded-linux.mk
index c0ad4a2d..1e6034f4 100644
--- a/mk/embedded-linux.mk
+++ b/mk/embedded-linux.mk
@@ -28,6 +28,8 @@ EMBEDDED_LINUX_SLIDES = \
 		sysdev-linux-tarballs-and-patches \
 		sysdev-linux-intro-lab-sources \
 		sysdev-kernel-building \
+		sysdev-customizing-dt \
+		sysdev-kernel-booting \
 		sysdev-linux-intro-lab-cross-compilation \
 		sysdev-linux-intro-modules \
 		sysdev-root-filesystem-title \
diff --git a/mk/linux-kernel.mk b/mk/linux-kernel.mk
index 35fa5c51..d4f8bb67 100644
--- a/mk/linux-kernel.mk
+++ b/mk/linux-kernel.mk
@@ -17,6 +17,7 @@ LINUX_KERNEL_SLIDES = \
 		kernel-source-code-management \
 		kernel-source-code-exploring-lab \
 		sysdev-kernel-building \
+		sysdev-kernel-booting \
 		kernel-board-setup-kernel-compiling-and-booting-labs \
 		sysdev-linux-intro-modules \
 		kernel-driver-development-modules \
diff --git a/slides/sysdev-customizing-dt/sysdev-customizing-dt.tex b/slides/sysdev-customizing-dt/sysdev-customizing-dt.tex
new file mode 100644
index 00000000..cb8c682f
--- /dev/null
+++ b/slides/sysdev-customizing-dt/sysdev-customizing-dt.tex
@@ -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}
diff --git a/slides/sysdev-kernel-booting/sysdev-kernel-booting.tex b/slides/sysdev-kernel-booting/sysdev-kernel-booting.tex
new file mode 100644
index 00000000..58237d46
--- /dev/null
+++ b/slides/sysdev-kernel-booting/sysdev-kernel-booting.tex
@@ -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}
diff --git a/slides/sysdev-kernel-booting/understanding-falcon-mode-presentation.png b/slides/sysdev-kernel-booting/understanding-falcon-mode-presentation.png
new file mode 100644
index 00000000..93b2fdd3
Binary files /dev/null and b/slides/sysdev-kernel-booting/understanding-falcon-mode-presentation.png differ
diff --git a/slides/sysdev-kernel-building/sysdev-kernel-building.tex b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
index cf95f364..8262c1aa 100644
--- a/slides/sysdev-kernel-building/sysdev-kernel-building.tex
+++ b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
@@ -557,72 +557,3 @@ CONFIG_NTFS_RW=y
     in memory before starting the kernel.
   \end{itemize}
 \end{frame}
-
-\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}
diff --git a/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png b/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png
deleted file mode 100644
index 93b2fdd3..00000000
Binary files a/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png and /dev/null differ




More information about the training-materials-updates mailing list