[bootlin/training-materials updates] master: Booting Linux: add details about command line passing to the kernel (d726a10b)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon Sep 27 11:58:29 CEST 2021

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


commit d726a10b1f6d6ddeda2c443425fb5b897717145e
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon Sep 27 11:58:29 2021 +0200

    Booting Linux: add details about command line passing to the kernel
    - Add link to our "Falcon mode" presentation too
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


 .../sysdev-kernel-building.tex                     |  46 ++++++++++++++++-----
 .../understanding-falcon-mode-presentation.png     | Bin 0 -> 120075 bytes
 2 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/slides/sysdev-kernel-building/sysdev-kernel-building.tex b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
index 07889117..ec85701a 100644
--- a/slides/sysdev-kernel-building/sysdev-kernel-building.tex
+++ b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
@@ -631,15 +631,41 @@ CONFIG_NTFS_RW=y
           in \kdochtml{admin-guide/kernel-parameters} in kernel
-  \item This kernel command line can be, in order of priority (highest
-    to lowest):
-    \begin{itemize}
-    \item Passed by the bootloader. In U-Boot, the contents of the
-      \code{bootargs} environment variable is automatically passed to the
-      kernel.
-    \item Specified in the Device Tree (for architectures which use it)
-    \item Built into the kernel, using the \kconfig{CONFIG_CMDLINE} option.
-    \item A combination of the above depending on the kernel configuration.
-    \end{itemize}
+  \frametitle{DT fixups and passing the kernel command line}
+  \footnotesize
+  On platforms with the Device Tree, U-Boot actually fixes the DT
+  before passing it to the Linux kernel:
+  \begin{columns}
+  \column{0.7\textwidth}
+  \begin{itemize}
+     \item U-Boot checks the device tree loaded in RAM
+           or directly provides its own.
+     \item U-Boot checks the specifics of the hardware
+           (amount and location of RAM, MAC address, present
+           devices...), possibly loads corresponding Device Tree overlays,
+           and modifies (fixes-up) the Device Tree accordingly.
+     \item U-Boot stores the Linux kernel command line string
+            (\code{bootargs}) in the \code{chosen} section
+            in the Device Tree.
+     \item Then the kernel can:
+           \begin{itemize}
+	   \item Append this string to the default command line
+                 (\kconfig{CONFIG_CMDLINE}) if \kconfig{CONFIG_CMDLINE_EXTEND} is set
+           \item Use only this string if \kconfig{CONFIG_CMDLINE_FROM_BOOTLOADER} is set
+	   \item Use only \kconfig{CONFIG_CMDLINE} if \kconfig{CONFIG_CMDLINE_FORCE} is set.
+           \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}
diff --git a/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png b/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png
new file mode 100644
index 00000000..93b2fdd3
Binary files /dev/null and b/slides/sysdev-kernel-building/understanding-falcon-mode-presentation.png differ

More information about the training-materials-updates mailing list