[bootlin/training-materials updates] kernel-update: kernel-agenda: Enhance the update proposal (afcffe60)
Miquel Raynal
miquel.raynal at bootlin.com
Mon Feb 28 10:51:50 CET 2022
Repository : https://github.com/bootlin/training-materials
On branch : kernel-update
Link : https://github.com/bootlin/training-materials/commit/afcffe60380a6dc463d0efbf1ea670a1ff38d5a3
>---------------------------------------------------------------
commit afcffe60380a6dc463d0efbf1ea670a1ff38d5a3
Author: Miquel Raynal <miquel.raynal at bootlin.com>
Date: Mon Feb 28 10:51:50 2022 +0100
kernel-agenda: Enhance the update proposal
Discussed with Clément Léger
Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
>---------------------------------------------------------------
afcffe60380a6dc463d0efbf1ea670a1ff38d5a3
agenda/linux-kernel-online-agenda.tex | 111 ++++++++++++++++++++++++----------
1 file changed, 78 insertions(+), 33 deletions(-)
diff --git a/agenda/linux-kernel-online-agenda.tex b/agenda/linux-kernel-online-agenda.tex
index b057c634..a99854b5 100644
--- a/agenda/linux-kernel-online-agenda.tex
+++ b/agenda/linux-kernel-online-agenda.tex
@@ -139,10 +139,8 @@
\begin{itemize}
\item Specifics of Linux kernel development
\item Coding standards
- \item Retrieving Linux kernel sources
+ \item Picking the right Linux kernel sources
\item Tour of the Linux kernel sources
- \item Kernel source code browsers: cscope,
- Elixir Cross Referencer, VS Code...
\end{itemize}
}
\\
@@ -155,7 +153,9 @@
and for other kinds of information.
\item Using the UNIX command line and then kernel source code
browsers.
- \end{itemize}
+ \item The release schedule and process: release candidates, stable
+ releases, long-term support, etc.
+ \end{itemize}
}
\section{Half day 2}
@@ -201,8 +201,6 @@
\end{itemize}
}
-\section{Half day 3}
-
\feagendatwocolumn
{Lecture - The device tree language}
{
@@ -217,14 +215,34 @@
\item Bindings
\end{itemize}
}
-{Lecture: Understanding the boot flow}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Demo - Device tree hacking}
+{
+ \begin{itemize}
+ \item Manage nodes: disable a controller
+ \item Manage properties: give user GPIOs other functions
+ \item Dive into the sysfs representation
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Understanding the boot flow}
{
\begin{itemize}
\item Arch initialization
\item SoC identification/initialization
- \item Firmware interaction (OPTEE, SMC, SCMI, PSCI)
\item Base initializations (clk, irq, memory)
\item Driver loading + of_platform_populate_dt() for the devices
+ \end{itemize}
+}
+{Demo - Display device tree parsing information}
+{
+ \begin{itemize}
+ \item Enable debug callsites to print the device tree parsing at boot time
+ \end{itemize}
}
\feagendatwocolumn
@@ -252,6 +270,8 @@
\end{itemize}
}
+\section{Half day 4}
+
\feagendaonecolumn
{Lecture - Introduction to the I2C API}
{
@@ -262,7 +282,6 @@
\end{itemize}
}
-\section{Half day 4}
\feagendatwocolumn
{Lecture - Pin muxing}
{
@@ -293,6 +312,10 @@
\item The principle of kernel frameworks
\end{itemize}
}
+
+\section{Half day 5}
+
+\feagendatwocolumn
{Lecture - The input subsystem}
{
\begin{itemize}
@@ -302,8 +325,6 @@
\item User space API offered by the {\em input} subsystem
\end{itemize}
}
-
-\feagendaonecolumn
{Demo - Expose the Nunchuk functionality to user space}
{
{\em Using the BeagleBone Black board}
@@ -314,7 +335,6 @@
\end{itemize}
}
-\section{Half day 5}
\feagendaonecolumn
{Lecture - Memory management}
{
@@ -348,14 +368,12 @@
\end{itemize}
}
-{Clocking}
+{Lecture - Clocking}
{
\begin{itemize}
\item Understanding the clock subsystem
\item Clocks user API explanation
\item Clock parenting
- \item Power domains
- \item Runtime PM
\end{itemize}
}
{Demo - Clock handling and register accesses}
@@ -365,9 +383,12 @@
\item Enable the clocks (if possible)
\item Enable runtime PM
\item Access device registers
+ \item Calculate prescalers using the clock rate
\item Send characters on the serial port.
}
+\section{Half day 6}
+
\feagendatwocolumn
{Lecture - The misc kernel subsystem}
{
@@ -389,7 +410,6 @@
\end{itemize}
}
-\section{Half day 6}
\feagendatwocolumn
{Lecture - Processes, scheduling, sleeping and interrupts}
{
@@ -412,33 +432,37 @@
\end{itemize}
}
+\section{Half day 7}
+
\feagendatwocolumn
{Lecture - DMA}
{
\begin{itemize}
- \item dmaengine abstraction
- \item DMA buffers
- \item Driver API
+ \item The concept of Direct Memory Accesses
+ \item DMA mappings
+ \item dmaengine abstraction
\end{itemize}
}
{Demo - DMA}
{
\begin{itemize}
- \item Transmit bytes using DMA
+ \item Transmit or receive bytes using DMA
\end{itemize}
}
\feagendatwocolumn
-{Lecture - MMAP}
+{Lecture - Alternative ways of interacting with a device}
{
\begin{itemize}
- \item MMAP
+ \item ioctl
+ \item MMAP
\end{itemize}
}
-{Demo - MMAP}
+{Demo - Side communication channels}
{
\begin{itemize}
- \item Expose the ring buffer to userspace
+ \item Access the internal counter with an ioctl
+ \item Expose the ring buffer to userspace with MMAP
\end{itemize}
}
@@ -462,7 +486,7 @@
\end{itemize}
}
-\section{Half day 7}
+\section{Half day 8}
\feagendatwocolumn
{Lecture - Driver debugging techniques}
{
@@ -470,6 +494,7 @@
\item Debugging with printing functions
\item Perf
\item Using Debugfs
+ \item Using kgdb, a kernel debugger
\item Analyzing a kernel oops
\end{itemize}
}
@@ -477,29 +502,50 @@
{
{\em Using the BeagleBone Black board}
\begin{itemize}
+ \item Configuring kgdb to trigger on a Oops
\item Studying a broken driver.
\item Analyzing a kernel fault message and locating the problem in the
source code.
\end{itemize}
}
-\feagendaonecolumn
-{Lecture - The Linux kernel development process}
+\feagendatwocolumn
+{Lecture - Saving power}
{
\begin{itemize}
- \item Organization of the kernel community
- \item The release schedule and process: release candidates, stable
- releases, long-term support, etc.
+ \item Power domains
+ \item Runtime PM
+ \item cpufreq, cpuidle
+ \end{itemize}
+}
+{Demo - Use runtime PM}
+{
+ \begin{itemize}
+ \item Get rid of the manual clock handling
+ \item Trace runtime PM calls
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Firmware interaction}
+{
+ \begin{itemize}
+ \item Trusted Execution Environments (OPTEE)
+ \item Secure services (SCMI, PSCI)
+ \item Secure Monitor Calls (SMC)
\end{itemize}
}
\feagendatwocolumn
-{Lecture - If time left}
+{If time left}
{
\begin{itemize}
- \item Overview of the power management features of the kernel
+ \item Final quiz
+ \item Quiz notation and discussion
\end{itemize}
}
+
+\feagendatwocolumn
{Questions and Answers}
{
\begin{itemize}
@@ -515,4 +561,3 @@
according to the time spent answering questions from participants.}
\end{document}
-
More information about the training-materials-updates
mailing list