[bootlin/training-materials updates] master: Boot-time: details about the kernel load address (e3708112)

Michael Opdenacker michael.opdenacker at bootlin.com
Thu Feb 23 19:57:24 CET 2023


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

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

commit e3708112119ebd7cae982b59c26a25040a55743b
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Thu Feb 23 19:57:13 2023 +0100

    Boot-time: details about the kernel load address
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


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

e3708112119ebd7cae982b59c26a25040a55743b
 .../boot-time-bootloader/boot-time-bootloader.tex  |  21 +++++++++++++++++++++
 slides/boot-time-bootloader/kernel-overlap.dia     | Bin 0 -> 2547 bytes
 slides/boot-time-bootloader/no-kernel-overlap.dia  | Bin 0 -> 1601 bytes
 3 files changed, 21 insertions(+)

diff --git a/slides/boot-time-bootloader/boot-time-bootloader.tex b/slides/boot-time-bootloader/boot-time-bootloader.tex
index 6eb4766c..e066fced 100644
--- a/slides/boot-time-bootloader/boot-time-bootloader.tex
+++ b/slides/boot-time-bootloader/boot-time-bootloader.tex
@@ -75,3 +75,24 @@ This saved 56 ms on this ARM9 system (400 MHz)!
       filesystem, which knows how big the file is.
 \end{itemize}
 \end{frame}
+
+\begin{frame}
+\frametitle{Bootloader: watch the compressed kernel load address}
+     On ARM32, the uncompressed kernel is usually started at offset
+     0x8000 from the start of RAM. Load the compressed kernel at a far
+     enough address!
+\vspace{0.5cm}
+\begin{center}
+    \includegraphics[width=\textwidth]{slides/boot-time-bootloader/kernel-overlap.pdf}
+\end{center}
+\footnotesize Source: \url{https://people.kernel.org/linusw/how-the-arm32-linux-kernel-decompresses}
+\end{frame}
+
+\begin{frame}
+\frametitle{Bootloader: load the compressed kernel far enough}
+On ARM32, a usual kernel load address is at offset 0x01000000 (16 MB)
+\begin{center}
+    \includegraphics[height=0.6\textheight]{slides/boot-time-bootloader/no-kernel-overlap.pdf}
+\end{center}
+Tests on STM32MP157A (650 MHz): an overlap increases boot time by 107 ms.
+\end{frame}
diff --git a/slides/boot-time-bootloader/kernel-overlap.dia b/slides/boot-time-bootloader/kernel-overlap.dia
new file mode 100644
index 00000000..de31a62f
Binary files /dev/null and b/slides/boot-time-bootloader/kernel-overlap.dia differ
diff --git a/slides/boot-time-bootloader/no-kernel-overlap.dia b/slides/boot-time-bootloader/no-kernel-overlap.dia
new file mode 100644
index 00000000..1860341a
Binary files /dev/null and b/slides/boot-time-bootloader/no-kernel-overlap.dia differ




More information about the training-materials-updates mailing list