[FE training-materials-updates] Boot time slides: improve bootloader section

Michael Opdenacker michael.opdenacker at free-electrons.com
Mon Apr 21 18:34:45 CEST 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=2ace3cf195cb5cc076466d368ec7308042ea0c1b

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

commit 2ace3cf195cb5cc076466d368ec7308042ea0c1b
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Mon Apr 21 18:32:55 2014 +0200

    Boot time slides: improve bootloader section
    
    - Document U-Boot optimization techniques
    - Add some subsections for clarity
    - Misc improvements
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


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

2ace3cf195cb5cc076466d368ec7308042ea0c1b
 slides/boottime-bootloader/boottime-bootloader.tex |  163 +++++++++++--
 .../u-boot-kernel-loading-no-memmove.svg           |  239 ++++++++++++++++++++
 .../boottime-bootloader/u-boot-kernel-loading.svg  |  233 +++++++++++++++++++
 3 files changed, 614 insertions(+), 21 deletions(-)

diff --git a/slides/boottime-bootloader/boottime-bootloader.tex b/slides/boottime-bootloader/boottime-bootloader.tex
index 7b5f3ae..7c177c3 100644
--- a/slides/boottime-bootloader/boottime-bootloader.tex
+++ b/slides/boottime-bootloader/boottime-bootloader.tex
@@ -1,24 +1,139 @@
 \section{Bootloader optimizations}
+
 \begin{frame}
 \frametitle{Bootloader}
-Usually, bootloaders include many features needed only for
-development.
 \begin{itemize}
-	\item There may be different bootloaders for your board. Try
-		those!
-	\item Assess what features you really need. Do you need to
-		upgrade from the bootloader?
-	\item Remove the boot delay! For \code{u-boot}, then have a look
-		at the \code{CONFIG_ZERO_BOOTDELAY_CHECK} option, documented in
-		\code{doc/README.autoboot} that will allow you to still enter
-		the bootloader shell.
-	\item Maybe you can skip the bootloader (AT91 example: 
-                \url{http://free-electrons.com/blog/starting-linux-directly-from-at91bootstrap3/}).
+
+\item Remove unnecessary functionality.\\
+      Usually, bootloaders include many features needed only for
+      development. Compile your bootloader with less features.
+\item Optimize required functionality.\\
+      Tune your bootloader for fastest performance. \\
+      Switch to another bootloader (if available) \\
+      Skip the bootloader and load the kernel right away.
 \end{itemize}
 \end{frame}
 
+\subsection{U-Boot optimizations}
+
 \begin{frame}
-\frametitle{Results}
+\frametitle{U-Boot - Remove unnecessary functionality}
+Recompile U-Boot to remove features not needed in production
+\begin{itemize}
+\item Disable as many features as possible 
+      in \code{include/configs/<soc>-<board>.h}
+\item Examples: MMC, USB, Ethernet, dhcp, ping, command line edition,
+      command completion...
+\item A smaller and simpler U-Boot is faster to load and faster 
+      to initialize.
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{U-Boot - Remove the boot delay}
+\begin{itemize}
+\item Remove the boot delay:\\
+      \code{setenv bootdelay 0}
+\item This usually saves several seconds!
+\item Before you do that, recompile U-Boot with
+      \code{CONFIG_ZERO_BOOTDELAY_CHECK}, documented in
+      \code{doc/README.autoboot}. It allows to stop the autoboot 
+      process by hitting a key even if the boot delay is set to
+      \code{0}.
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{U-Boot - Optimize kernel loading}
+\begin{itemize}
+\item After copying the kernel \code{uImage} to RAM,
+      U-Boot always moves it to the load address specified
+      in the \code{uImage} header.
+\item A CRC check is also performed.
+\end{itemize}
+\begin{center}
+    \includegraphics[width=\textwidth]{slides/boottime-bootloader/u-boot-kernel-loading.pdf}
+\end{center}
+\end{frame}
+
+\begin{frame}
+\frametitle{U-Boot - Remove unnecessary memmove (1)}
+\begin{itemize}
+\item You can make U-Boot skip the \code{memmove} operation
+      by directly loading the \code{uImage} at the right
+      address.
+\item Compute this address: \\
+      {\small
+      \code{Addr = Load Address - uImage header size}\\
+      \code{Addr = Load Address - (size(uImage) - size(zImage))}\\ 
+      \code{Addr = 0x20008000 - 0x40 = 0x20007fc0}\\
+      }
+\end{itemize}
+\begin{center}
+    \includegraphics[width=\textwidth]{slides/boottime-bootloader/u-boot-kernel-loading-no-memmove.pdf}
+\end{center}
+\end{frame}
+
+\begin{frame}
+\frametitle{U-Boot - Remove unnecessary memmove (2)}
+Results on Atmel SAMA5D3 Xplained (ARM), Linux 3.10:
+\newline\newline
+\begin{tabular}{| l || c | c |}
+\hline
+& Time & Diff \\
+\hline
+Default & 1.433 s & \\
+Optimum load address & 0.583 s & -0.85 s\\
+\hline
+\end{tabular}
+\newline\newline
+\small
+Measured between \code{Booting kernel} and \code{Starting kernel ...}
+\end{frame}
+
+\begin{frame}
+\frametitle{U-Boot - Remove kernel CRC check}
+\begin{itemize}
+\item Fine in production when you no longer have data corruption
+      copying the kernel to RAM.
+\item Disable CRC checking with a U-boot environment variable:\\
+      \code{setenv verify no}
+\end{itemize}
+Results on Atmel SAMA5D3 Xplained (ARM), Linux 3.10:
+\newline\newline
+\begin{tabular}{| l || c | c |}
+\hline
+& Time & Diff \\
+\hline
+With CRC check & 583 ms & \\
+Without CRC check & 60 ms & -523 ms \\
+\hline
+\end{tabular}
+\newline\newline
+\small
+Measured between \code{Booting kernel} and \code{Starting kernel ...}
+\end{frame}
+
+\begin{frame}
+\frametitle{Further U-Boot optimizations}
+\begin{itemize}
+\item Silence U-Boot console output. You will need to compile
+      U-Boot with \code{CONFIG_SILENT_CONSOLE} and
+      \code{setenv silent yes}.\\
+      See \code{doc/README.silent} for details.
+\item Ultimate solution: use U-Boot's {\em Falcon} mode.\\
+      U-Boot is split in two parts: the SPL (Secondary Program Loader)
+      and the U-Boot image. U-Boot can then configure to the SPL to load
+      the Linux kernel directly, instead of the U-Boot image.\\
+      See \code{doc/README.falcon} for details.
+\end{itemize}
+\end{frame}
+
+\subsection{Switching to another bootloader}
+
+\begin{frame}
+\frametitle{Switching from U-Boot to Barebox}
+Results with the SAMA5D3x-EK board \\
 Before: 5.77s
 \begin{center}
     \includegraphics[width=\textwidth]{slides/boottime-kernel/timechart-final.pdf}
@@ -99,23 +214,29 @@ After:
 Total: 2.57s.
 \end{frame}
 
+\subsection{Skipping the bootloader}
 
 \begin{frame}[fragile]
 \frametitle{Removing the bootloader}
-You can also try to boot directly from \code{AT91bootstrap} to the
-Linux kernel,thus removing the second stage. But you will lose the
-main advantages of using \code{barebox}.  It is using the CPU caches
-while loading and decompressing the kernel.
-
-It is quite easy with AT91bootstrap3. You just need to configure it
-with one of the \code{linux} or \code{linux_dt} configuration:
+\begin{itemize}
+\item Principle: instead of loading the bootloader and then the kernel,
+      load the kernel right away!
+\item For example, on Atmel AT91, is is easy to implement with
+      \code{at91bootstrap v3}. You just need to configure it
+      with one of the \code{linux} or \code{linux_dt} configurations:
 \begin{block}{}
 \begin{verbatim}
 make at91sama5d3xeknf_linux_dt_defconfig
 make
 \end{verbatim}
 \end{block}
-See \url{http://free-electrons.com/blog/at91bootstrap-linux/}
+      Full details on
+      \url{http://free-electrons.com/blog/starting-linux-directly-from-at91bootstrap3/}
+
+\item In our particular case, though, you will lose the
+      main advantages of using Barebox.  It is uses the CPU caches
+      while loading the kernel.
+\end{itemize}
 \end{frame}
 
 \begin{frame}
diff --git a/slides/boottime-bootloader/u-boot-kernel-loading-no-memmove.svg b/slides/boottime-bootloader/u-boot-kernel-loading-no-memmove.svg
new file mode 100644
index 0000000..c9b2c89
--- /dev/null
+++ b/slides/boottime-bootloader/u-boot-kernel-loading-no-memmove.svg
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1923.1428"
+   height="792.63788"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="u-boot-kernel-loading-no-memmove.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path4503"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path4482"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path4485"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend-5"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4503-6"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="725.13558"
+     inkscape:cy="258.04162"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0.5"
+     fit-margin-left="0.5"
+     fit-margin-right="0.5"
+     fit-margin-bottom="0.5"
+     inkscape:window-width="1635"
+     inkscape:window-height="911"
+     inkscape:window-x="0"
+     inkscape:window-y="56"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-50.785712,-231.98787)">
+    <rect
+       style="fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.34213495;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3909"
+       width="1918.8007"
+       height="635.94354"
+       x="52.956779"
+       y="234.15894"
+       ry="31.097485" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="88.571426"
+       y="318.07648"
+       id="text2985"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="318.07648"
+         id="tspan3027"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">[16.590927 0.003407] ## Booting kernel from Legacy Image at 20007fc0 ...</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="368.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3087">[16.595547 0.004620]    Image Name:   Linux-3.10.0+</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="418.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3089">[16.598351 0.002804]    Image Type:   ARM Linux Kernel Image (uncompressed)</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="468.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3091">[16.603228 0.004877]    Data Size:    3464112 Bytes = 3.3 MiB</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="518.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3093">[16.606907 0.003679]    <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000"
+   id="tspan3014">Load Address: 20008000</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="568.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3095">[16.609256 0.002349]    Entry Point:  20008000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="618.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3097">[16.611619 0.002363]    <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000"
+   id="tspan3111">Verifying Checksum ... OK</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="668.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3099">[17.135046 <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000"
+   id="tspan3126">0.523427</tspan>] ## Flattened Device Tree blob at 22000000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="718.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3101">[17.138589 0.003543]    Booting using the fdt blob at 0x22000000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="768.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3103">[17.142575 0.003986]    <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000"
+   id="tspan3109">XIP Kernel Image ... OK</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="818.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3105">[17.156358 <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000"
+   id="tspan3130">0.013783</tspan>]    Loading Device Tree to 2bb12000, end 2bb1a0b6 ... OK</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="868.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3107" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="614.28571"
+       y="681.43427"
+       id="text4443"
+       sodipodi:linespacing="125%"
+       transform="translate(88.071426,290.69648)"><tspan
+         sodipodi:role="line"
+         id="tspan4445"
+         x="614.28571"
+         y="681.43427">Kernel CRC check time</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="702.35712"
+       y="1023.5593"
+       id="text4447"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4449"
+         x="702.35712"
+         y="1023.5593">Kernel <tspan
+   style="-inkscape-font-specification:Courier 10 Pitch;font-family:Courier 10 Pitch;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+   id="tspan3015">memmove</tspan> time (skipped)</tspan></text>
+    <path
+       style="fill:none;stroke:#ff0000;stroke-width:3.9000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="M 679.5,957.84502 636.64285,954.98788 579.49999,683.5593"
+       id="path4476"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;stroke:#ff0000;stroke-width:3.9000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="m 693.07314,1013.6532 -171.42858,0 -74.28571,-171.42864"
+       id="path4476-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+  </g>
+</svg>
diff --git a/slides/boottime-bootloader/u-boot-kernel-loading.svg b/slides/boottime-bootloader/u-boot-kernel-loading.svg
new file mode 100644
index 0000000..b5c9900
--- /dev/null
+++ b/slides/boottime-bootloader/u-boot-kernel-loading.svg
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1923.1428"
+   height="792.63788"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="u-boot-kernel-loading.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path4503"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path4482"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path4485"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend-5"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4503-6"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="713.707"
+     inkscape:cy="258.04162"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0.5"
+     fit-margin-left="0.5"
+     fit-margin-right="0.5"
+     fit-margin-bottom="0.5"
+     inkscape:window-width="1635"
+     inkscape:window-height="911"
+     inkscape:window-x="0"
+     inkscape:window-y="56"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-50.785712,-231.98787)">
+    <rect
+       style="fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.34213495;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3909"
+       width="1918.8007"
+       height="635.94354"
+       x="52.956779"
+       y="234.15894"
+       ry="31.097485" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="88.571426"
+       y="318.07648"
+       id="text2985"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2987"
+         x="88.571426"
+         y="318.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">[16.590578 0.003404] ## Booting kernel from Legacy Image at 21000000 ...</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="368.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3330">[16.595204 0.004626]    Image Name:   Linux-3.10.0+</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="418.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3332">[16.597986 0.002782]    Image Type:   ARM Linux Kernel Image (uncompressed)</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="468.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3334">[16.602881 0.004895]    Data Size:    3464112 Bytes = 3.3 MiB</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="518.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3336">[16.606542 0.003661]    Load Address: 20008000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="568.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3338">[16.608903 0.002361]    Entry Point:  20008000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="618.78479"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3340">[16.611256 0.002353]    <tspan
+   style="font-weight:bold;fill:#ff0000;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan5504">Verifying Checksum ... OK</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="669.90979"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3342">[17.134317 <tspan
+   style="font-weight:bold;fill:#ff0000;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan4435">0.523061</tspan>] ## Flattened Device Tree blob at 22000000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="720.32648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3344">[17.137695 0.003378]    Booting using the fdt blob at 0x22000000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="771.03479"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch"
+         id="tspan3346">[17.141707 0.004012]    <tspan
+   style="font-weight:bold;fill:#ff0000;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan5506">Loading Kernel Image ... OK</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="822.15979"
+         id="tspan3027"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">[18.005814 <tspan
+   style="font-weight:bold;fill:#ff0000;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan4439">0.864107</tspan>]    Loading Device Tree to 2bb12000, end 2bb1a0b6 ... OK</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="614.28571"
+       y="681.43427"
+       id="text4443"
+       sodipodi:linespacing="125%"
+       transform="translate(88.071426,290.69648)"><tspan
+         sodipodi:role="line"
+         id="tspan4445"
+         x="614.28571"
+         y="681.43427">Kernel CRC check time</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="702.35712"
+       y="1023.5593"
+       id="text4447"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4449"
+         x="702.35712"
+         y="1023.5593">Kernel <tspan
+   style="-inkscape-font-specification:Courier 10 Pitch;font-family:Courier 10 Pitch;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+   id="tspan3013">memmove</tspan> time</tspan></text>
+    <path
+       style="fill:none;stroke:#ff0000;stroke-width:3.9000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="M 608.57143,664.2914 560,664.2914 494.28571,392.86282"
+       id="path4476"
+       inkscape:connector-curvature="0"
+       transform="translate(88.071426,290.69648)"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;stroke:#ff0000;stroke-width:3.9000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="m 693.07314,1013.6532 -171.42858,0 -74.28571,-171.42864"
+       id="path4476-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+  </g>
+</svg>



More information about the training-materials-updates mailing list