[bootlin/training-materials updates] master: Kernel slides: stop mentioning port I/O (1a738469)
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Fri Oct 29 10:46:38 CEST 2021
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/1a738469f244c011fbe63cdb0612b6a952448016
>---------------------------------------------------------------
commit 1a738469f244c011fbe63cdb0612b6a952448016
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Mon May 10 23:27:06 2021 +0200
Kernel slides: stop mentioning port I/O
- Only on x86 and legacy devices
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
1a738469f244c011fbe63cdb0612b6a952448016
agenda/linux-kernel-agenda.tex | 6 +-
agenda/linux-kernel-fr-agenda.tex | 4 +-
agenda/linux-kernel-online-agenda.tex | 4 +-
agenda/linux-kernel-online-fr-agenda.tex | 4 +-
.../ioremap.dia | 525 +++++++++------------
.../kernel-driver-development-io-memory.tex | 107 +----
.../mmio-vs-pio.dia | 174 ++-----
7 files changed, 294 insertions(+), 530 deletions(-)
diff --git a/agenda/linux-kernel-agenda.tex b/agenda/linux-kernel-agenda.tex
index e4c6d648..79036e85 100644
--- a/agenda/linux-kernel-agenda.tex
+++ b/agenda/linux-kernel-agenda.tex
@@ -347,11 +347,11 @@ Embedded Linux kernel and driver development training\\
\item Allocating with \code{vmalloc()}.
\end{itemize}
}
-{Lecture - I/O memory and ports}
+{Lecture - I/O memory}
{
\begin{itemize}
- \item I/O register and memory range registration.
- \item I/O register and memory access.
+ \item I/O memory range registration.
+ \item I/O memory access.
\item Read / write memory barriers.
\end{itemize}
}
diff --git a/agenda/linux-kernel-fr-agenda.tex b/agenda/linux-kernel-fr-agenda.tex
index d89b231b..2cc9a681 100644
--- a/agenda/linux-kernel-fr-agenda.tex
+++ b/agenda/linux-kernel-fr-agenda.tex
@@ -368,8 +368,8 @@ Session de 5 jours
{Cours - Entrées-sorties avec le matériel}
{
\begin{itemize}
- \item Enregistrement des plages de ports d'E/S et de mémoire d'E/S.
- \item Accès aux plages de ports d'E/S et de mémoire d'E/S.
+ \item Enregistrement des plages de mémoire d'E/S.
+ \item Accès aux plages de mémoire d'E/S.
\item Barrières mémoire.
\end{itemize}
}
diff --git a/agenda/linux-kernel-online-agenda.tex b/agenda/linux-kernel-online-agenda.tex
index 93704b90..b3c05aee 100644
--- a/agenda/linux-kernel-online-agenda.tex
+++ b/agenda/linux-kernel-online-agenda.tex
@@ -333,8 +333,8 @@ On-line seminar
{Lecture - I/O memory and ports}
{
\begin{itemize}
- \item I/O register and memory range registration.
- \item I/O register and memory access.
+ \item I/O memory range registration.
+ \item I/O memory access.
\item Read / write memory barriers.
\end{itemize}
}
diff --git a/agenda/linux-kernel-online-fr-agenda.tex b/agenda/linux-kernel-online-fr-agenda.tex
index 6465c31b..710b25f3 100644
--- a/agenda/linux-kernel-online-fr-agenda.tex
+++ b/agenda/linux-kernel-online-fr-agenda.tex
@@ -351,8 +351,8 @@ Séminaire de formation en ligne
{Cours - Entrées-sorties avec le matériel}
{
\begin{itemize}
- \item Enregistrement des plages de ports d'E/S et de mémoire d'E/S.
- \item Accès aux plages de ports d'E/S et de mémoire d'E/S.
+ \item Enregistrement des plages de mémoire d'E/S.
+ \item Accès aux plages de mémoire d'E/S.
\item Barrières mémoire.
\end{itemize}
}
diff --git a/slides/kernel-driver-development-io-memory/ioremap.dia b/slides/kernel-driver-development-io-memory/ioremap.dia
index f333cff3..49925a58 100644
--- a/slides/kernel-driver-development-io-memory/ioremap.dia
+++ b/slides/kernel-driver-development-io-memory/ioremap.dia
@@ -87,13 +87,13 @@
<dia:layer name="Arrière-plan" visible="true" connectable="true" active="true">
<dia:object type="Standard - Line" version="0" id="O0">
<dia:attribute name="obj_pos">
- <dia:point val="16,10.5"/>
+ <dia:point val="16,9.5"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="15.935,4.42451;31.065,10.565"/>
+ <dia:rectangle val="15.9368,4.38559;31.0632,9.56325"/>
</dia:attribute>
<dia:attribute name="conn_endpoints">
- <dia:point val="16,10.5"/>
+ <dia:point val="16,9.5"/>
<dia:point val="31,4.5"/>
</dia:attribute>
<dia:attribute name="numcp">
@@ -109,8 +109,8 @@
<dia:real val="0.5"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="0" to="O10" connection="4"/>
- <dia:connection handle="1" to="O12" connection="3"/>
+ <dia:connection handle="0" to="O8" connection="4"/>
+ <dia:connection handle="1" to="O10" connection="3"/>
</dia:connections>
</dia:object>
<dia:object type="Standard - Line" version="0" id="O1">
@@ -134,8 +134,8 @@
<dia:real val="0.50000000000000011"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="0" to="O6" connection="2"/>
- <dia:connection handle="1" to="O13" connection="0"/>
+ <dia:connection handle="0" to="O5" connection="2"/>
+ <dia:connection handle="1" to="O11" connection="0"/>
</dia:connections>
</dia:object>
<dia:object type="Standard - Line" version="0" id="O2">
@@ -159,275 +159,202 @@
<dia:real val="0.50000000000000011"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="0" to="O6" connection="7"/>
- <dia:connection handle="1" to="O13" connection="5"/>
+ <dia:connection handle="0" to="O5" connection="7"/>
+ <dia:connection handle="1" to="O11" connection="5"/>
</dia:connections>
</dia:object>
- <dia:group>
- <dia:attribute name="meta">
- <dia:composite type="dict"/>
+ <dia:object type="Standard - Box" version="0" id="O3">
+ <dia:attribute name="obj_pos">
+ <dia:point val="9,5"/>
</dia:attribute>
- <dia:attribute name="matrix"/>
- <dia:object type="Standard - Box" version="0" id="O3">
- <dia:attribute name="obj_pos">
- <dia:point val="9,5"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="8.95,4.95;16.05,21.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="9,5"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="7"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="16"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#5cacffff"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#add8e6ff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- </dia:object>
- <dia:object type="Standard - Box" version="0" id="O4">
- <dia:attribute name="obj_pos">
- <dia:point val="9,7"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="8.95,6.95;16.05,10.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="9,7"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="7"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="3"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#a34804ff"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#ffd192ff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- </dia:object>
- <dia:object type="Standard - Box" version="0" id="O5">
- <dia:attribute name="obj_pos">
- <dia:point val="9,11"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="8.95,10.95;16.05,14.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="9,11"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="7"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="3"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#868686ff"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#e5e5e5ff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- <dia:connections>
- <dia:connection handle="0" to="O4" connection="8"/>
- </dia:connections>
- </dia:object>
- <dia:object type="Standard - Box" version="0" id="O6">
- <dia:attribute name="obj_pos">
- <dia:point val="9,16"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="8.95,15.95;16.05,19.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="9,16"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="7"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="3"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#d9cb2fff"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#fff8a8ff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- <dia:connections>
- <dia:connection handle="0" to="O5" connection="8"/>
- </dia:connections>
- </dia:object>
- <dia:object type="Standard - Text" version="1" id="O7">
- <dia:attribute name="obj_pos">
- <dia:point val="12.5,8.5"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="11.095,7.75625;13.905,9.24375"/>
- </dia:attribute>
- <dia:attribute name="text">
- <dia:composite type="text">
- <dia:attribute name="string">
- <dia:string>#MMIO#</dia:string>
- </dia:attribute>
- <dia:attribute name="font">
- <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
- </dia:attribute>
- <dia:attribute name="height">
- <dia:real val="1.2699999511241913"/>
- </dia:attribute>
- <dia:attribute name="pos">
- <dia:point val="12.5,8.92875"/>
- </dia:attribute>
- <dia:attribute name="color">
- <dia:color val="#000000ff"/>
- </dia:attribute>
- <dia:attribute name="alignment">
- <dia:enum val="1"/>
- </dia:attribute>
- </dia:composite>
- </dia:attribute>
- <dia:attribute name="valign">
- <dia:enum val="2"/>
- </dia:attribute>
- <dia:connections>
- <dia:connection handle="0" to="O6" connection="8"/>
- </dia:connections>
- </dia:object>
- <dia:object type="Standard - Text" version="1" id="O8">
- <dia:attribute name="obj_pos">
- <dia:point val="12.5,12.5"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="10.7538,11.7562;14.2462,13.2438"/>
- </dia:attribute>
- <dia:attribute name="text">
- <dia:composite type="text">
- <dia:attribute name="string">
- <dia:string>#registers#</dia:string>
- </dia:attribute>
- <dia:attribute name="font">
- <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
- </dia:attribute>
- <dia:attribute name="height">
- <dia:real val="1.2699999511241913"/>
- </dia:attribute>
- <dia:attribute name="pos">
- <dia:point val="12.5,12.9287"/>
- </dia:attribute>
- <dia:attribute name="color">
- <dia:color val="#000000ff"/>
- </dia:attribute>
- <dia:attribute name="alignment">
- <dia:enum val="1"/>
- </dia:attribute>
- </dia:composite>
- </dia:attribute>
- <dia:attribute name="valign">
- <dia:enum val="2"/>
- </dia:attribute>
- </dia:object>
- <dia:object type="Standard - Text" version="1" id="O9">
- <dia:attribute name="obj_pos">
- <dia:point val="12.5,17.5"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="11.3875,16.7563;13.6125,18.2438"/>
- </dia:attribute>
- <dia:attribute name="text">
- <dia:composite type="text">
- <dia:attribute name="string">
- <dia:string>#RAM#</dia:string>
- </dia:attribute>
- <dia:attribute name="font">
- <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
- </dia:attribute>
- <dia:attribute name="height">
- <dia:real val="1.2699999511241913"/>
- </dia:attribute>
- <dia:attribute name="pos">
- <dia:point val="12.5,17.9288"/>
- </dia:attribute>
- <dia:attribute name="color">
- <dia:color val="#000000ff"/>
- </dia:attribute>
- <dia:attribute name="alignment">
- <dia:enum val="1"/>
- </dia:attribute>
- </dia:composite>
- </dia:attribute>
- <dia:attribute name="valign">
- <dia:enum val="2"/>
- </dia:attribute>
- </dia:object>
- <dia:object type="Standard - Box" version="0" id="O10">
- <dia:attribute name="obj_pos">
- <dia:point val="9,10"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="8.95,9.95;16.05,11.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="9,10"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="7"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="1"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#2f004aff"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#efb9ffff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- </dia:object>
- </dia:group>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="8.95,4.95;16.05,21.05"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="9,5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="16"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#5cacffff"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#add8e6ff"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O4">
+ <dia:attribute name="obj_pos">
+ <dia:point val="9,7"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="8.95,6.95;16.05,13.6"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="9,7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="6.5500000000000007"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#a34804ff"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#ffd192ff"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O5">
+ <dia:attribute name="obj_pos">
+ <dia:point val="9,16"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="8.95,15.95;16.05,19.05"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="9,16"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#d9cb2fff"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#fff8a8ff"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O6">
+ <dia:attribute name="obj_pos">
+ <dia:point val="12.5,11.675"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="10.7538,10.2968;14.2462,13.0532"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#MMIO
+registers#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.2699999511241913"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="12.5,11.4693"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000ff"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O7">
+ <dia:attribute name="obj_pos">
+ <dia:point val="12.5,17.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="11.3875,16.7568;13.6125,18.2432"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#RAM#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.2699999511241913"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="12.5,17.9293"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000ff"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O5" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O8">
+ <dia:attribute name="obj_pos">
+ <dia:point val="9,9"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="8.95,8.95;16.05,10.05"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="9,9"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#2f004aff"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#efb9ffff"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
<dia:group>
<dia:attribute name="meta">
<dia:composite type="dict"/>
</dia:attribute>
<dia:attribute name="matrix"/>
- <dia:object type="Standard - Box" version="0" id="O11">
+ <dia:object type="Standard - Box" version="0" id="O9">
<dia:attribute name="obj_pos">
<dia:point val="31,2"/>
</dia:attribute>
@@ -456,7 +383,7 @@
<dia:boolean val="true"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Box" version="0" id="O12">
+ <dia:object type="Standard - Box" version="0" id="O10">
<dia:attribute name="obj_pos">
<dia:point val="31,4"/>
</dia:attribute>
@@ -485,7 +412,7 @@
<dia:boolean val="true"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Box" version="0" id="O13">
+ <dia:object type="Standard - Box" version="0" id="O11">
<dia:attribute name="obj_pos">
<dia:point val="31,7"/>
</dia:attribute>
@@ -514,12 +441,12 @@
<dia:boolean val="true"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O14">
+ <dia:object type="Standard - Text" version="1" id="O12">
<dia:attribute name="obj_pos">
<dia:point val="41,6"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="39.64,5.25625;42.36,6.74375"/>
+ <dia:rectangle val="39.64,5.2568;42.36,6.7432"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -533,7 +460,7 @@
<dia:real val="1.2699999511241913"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="41,6.42875"/>
+ <dia:point val="41,6.42926"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -547,12 +474,12 @@
<dia:enum val="2"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O15">
+ <dia:object type="Standard - Text" version="1" id="O13">
<dia:attribute name="obj_pos">
<dia:point val="41,17"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="40.0562,16.2563;41.9438,17.7438"/>
+ <dia:rectangle val="40.0562,16.2568;41.9438,17.7432"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -566,7 +493,7 @@
<dia:real val="1.2699999511241913"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="41,17.4288"/>
+ <dia:point val="41,17.4293"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -580,7 +507,7 @@
<dia:enum val="2"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Box" version="0" id="O16">
+ <dia:object type="Standard - Box" version="0" id="O14">
<dia:attribute name="obj_pos">
<dia:point val="31,10"/>
</dia:attribute>
@@ -609,10 +536,10 @@
<dia:boolean val="true"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="0" to="O13" connection="8"/>
+ <dia:connection handle="0" to="O11" connection="8"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Line" version="0" id="O17">
+ <dia:object type="Standard - Line" version="0" id="O15">
<dia:attribute name="obj_pos">
<dia:point val="30,10"/>
</dia:attribute>
@@ -630,12 +557,12 @@
<dia:color val="#cc1f1aff"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O18">
+ <dia:object type="Standard - Text" version="1" id="O16">
<dia:attribute name="obj_pos">
<dia:point val="34.5,8.5"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="33.3875,7.75625;35.6125,9.24375"/>
+ <dia:rectangle val="33.3875,7.7568;35.6125,9.2432"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -649,7 +576,7 @@
<dia:real val="1.2699999511241913"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="34.5,8.92875"/>
+ <dia:point val="34.5,8.92926"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -664,12 +591,12 @@
</dia:attribute>
</dia:object>
</dia:group>
- <dia:object type="Standard - Text" version="1" id="O19">
+ <dia:object type="Standard - Text" version="1" id="O17">
<dia:attribute name="obj_pos">
<dia:point val="18,7"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="18,6.1525;22.1625,7.2275"/>
+ <dia:rectangle val="18,6.15322;22.1625,7.22674"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -697,16 +624,16 @@
<dia:enum val="3"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Line" version="0" id="O20">
+ <dia:object type="Standard - Line" version="0" id="O18">
<dia:attribute name="obj_pos">
<dia:point val="18,7"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="15.9318,6.93178;18.0682,10.5682"/>
+ <dia:rectangle val="15.9297,6.92972;18.0703,9.57028"/>
</dia:attribute>
<dia:attribute name="conn_endpoints">
<dia:point val="18,7"/>
- <dia:point val="16,10.5"/>
+ <dia:point val="16,9.5"/>
</dia:attribute>
<dia:attribute name="numcp">
<dia:int val="1"/>
@@ -721,15 +648,15 @@
<dia:real val="0.5"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="1" to="O10" connection="4"/>
+ <dia:connection handle="1" to="O8" connection="4"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O21">
+ <dia:object type="Standard - Text" version="1" id="O19">
<dia:attribute name="obj_pos">
<dia:point val="24,3"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="19.9075,2.1525;24,3.2275"/>
+ <dia:rectangle val="19.9075,2.15322;24,3.22674"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -757,7 +684,7 @@
<dia:enum val="3"/>
</dia:attribute>
</dia:object>
- <dia:object type="Standard - Line" version="0" id="O22">
+ <dia:object type="Standard - Line" version="0" id="O20">
<dia:attribute name="obj_pos">
<dia:point val="24,3"/>
</dia:attribute>
@@ -781,15 +708,15 @@
<dia:real val="0.5"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="1" to="O12" connection="3"/>
+ <dia:connection handle="1" to="O10" connection="3"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O23">
+ <dia:object type="Standard - Text" version="1" id="O21">
<dia:attribute name="obj_pos">
<dia:point val="12.5,21"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="9.485,21;15.515,23.2983"/>
+ <dia:rectangle val="9.485,21;15.515,23.297"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -804,7 +731,7 @@ Address Space#</dia:string>
<dia:real val="1.0583332926034927"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="12.5,21.9775"/>
+ <dia:point val="12.5,21.9771"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -821,12 +748,12 @@ Address Space#</dia:string>
<dia:connection handle="0" to="O3" connection="6"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O24">
+ <dia:object type="Standard - Text" version="1" id="O22">
<dia:attribute name="obj_pos">
<dia:point val="34.5,25"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="31.72,25;37.28,27.2983"/>
+ <dia:rectangle val="31.72,25;37.28,27.297"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -841,7 +768,7 @@ Address Space#</dia:string>
<dia:real val="1.0583332926034927"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="34.5,25.9775"/>
+ <dia:point val="34.5,25.9771"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -855,7 +782,7 @@ Address Space#</dia:string>
<dia:enum val="0"/>
</dia:attribute>
<dia:connections>
- <dia:connection handle="0" to="O11" connection="6"/>
+ <dia:connection handle="0" to="O9" connection="6"/>
</dia:connections>
</dia:object>
</dia:layer>
diff --git a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
index ac0fc8be..63ded5d5 100644
--- a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
+++ b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
@@ -1,109 +1,24 @@
-\section{I/O Memory and Ports}
+\section{I/O Memory}
\begin{frame}
- \frametitle{Port I/O vs. Memory-Mapped I/O}
+ \frametitle{Memory-Mapped I/O}
+ \begin{columns}
+ \column{0.75\textwidth}
\begin{itemize}
- \item Memory-Mapped I/O (MMIO)
- \begin{itemize}
- \item Same address bus to address memory and I/O devices
- \item Access to the I/O devices using regular instructions
+ \item Same address bus to address memory and I/O device registers
+ \item Access to the I/O device registers using regular instructions
\item Most widely used I/O method across the different
architectures supported by Linux
- \end{itemize}
- \item Port I/O (PIO)
- \begin{itemize}
- \item Different address spaces for memory and I/O devices
- \item Uses a special class of CPU instructions to access I/O
- devices
- \item Example on x86: IN and OUT instructions
- \end{itemize}
\end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{MMIO vs PIO}
- \begin{center}
+ \column{0.25\textwidth}
\includegraphics[width=\textwidth]{slides/kernel-driver-development-io-memory/mmio-vs-pio.pdf}
- \end{center}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Requesting I/O ports}
- \begin{itemize}
- \item Tells the kernel which driver is using which I/O ports
- \item Allows to prevent other drivers from using the same I/O ports,
- but is purely voluntary.
- \item
-\begin{minted}{c}
-struct resource *request_region(unsigned long start,
- unsigned long len, char *name);
-\end{minted}
- \item Tries to reserve the given region and returns \code{NULL} if unsuccessful.
- \item \mint{c}+request_region(0x0170, 8, "ide1");+
- \item
-\begin{minted}{c}
-void release_region(unsigned long start, unsigned long len);
-\end{minted}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{/proc/ioports example (x86)}
-{\small
-\begin{verbatim}
-0000-001f : dma1
-0020-0021 : pic1
-0040-0043 : timer0
-0050-0053 : timer1
-0070-0077 : rtc
-0080-008f : dma page reg
-00a0-00a1 : pic2
-00c0-00df : dma2
-00f0-00ff : fpu
-0170-0177 : ide1
-01f0-01f7 : ide0
-0376-0376 : ide1
-03f6-03f6 : ide0
-03f8-03ff : serial
-0800-087f : 0000:00:1f.0
-...
-\end{verbatim}
-}
-\end{frame}
-
-\begin{frame}[fragile]
- \frametitle{Accessing I/O ports}
- \begin{itemize}
- \item Functions to read/write bytes (\code{b}), word (\code{w}) and longs (\code{l}) to I/O ports:
- \begin{itemize}
- \item \mint{c}+unsigned in[bwl](unsigned long port)+
- \item \mint{c}+void out[bwl](value, unsigned long port)+
- \end{itemize}
- \item And the strings variants: often more efficient than the
- corresponding C loop, if the processor supports such operations!
- \begin{itemize}
- \item \mint{c}+void ins[bwl](unsigned port, void *addr, unsigned long count)+
- \item \mint{c}+void outs[bwl](unsigned port, void *addr, unsigned long count)+
- \end{itemize}
- \item Examples
- \begin{itemize}
- \item read 8 bits
- \begin{itemize}
- \item \mint{c}|oldlcr = inb(baseio + UART_LCR)|
- \end{itemize}
- \item write 8 bits
- \begin{itemize}
- \item \mint{c}|outb(MOXA_MUST_ENTER_ENCHANCE, baseio + UART_LCR)|
- \end{itemize}
- \end{itemize}
- \end{itemize}
+ \end{columns}
\end{frame}
\begin{frame}[fragile]
\frametitle{Requesting I/O memory}
\begin{itemize}
- \item Functions equivalent to \kfunc{request_region} and
- \kfunc{release_region}, but for I/O memory.
+ \item Tells the kernel which driver is using which I/O registers
\item
\begin{minted}{c}
struct resource *request_mem_region(unsigned long start,
@@ -113,6 +28,8 @@ struct resource *request_mem_region(unsigned long start,
\begin{minted}{c}
void release_mem_region(unsigned long start, unsigned long len);
\end{minted}
+ \item Allows to prevent other drivers requesting the same I/O registers,
+ but is purely voluntary.
\end{itemize}
\end{frame}
@@ -249,7 +166,7 @@ writel(c & 0xff, port->membase + 4);
\begin{frame}
\frametitle{Avoiding I/O access issues}
\begin{itemize}
- \item Caching on I/O ports or memory already disabled
+ \item Caching on I/O memory already disabled
\item Use the \kfunc{writel}/\kfunc{readl} macros,
they do the right thing for your architecture
\item The compiler and/or CPU can reorder memory accesses, which
diff --git a/slides/kernel-driver-development-io-memory/mmio-vs-pio.dia b/slides/kernel-driver-development-io-memory/mmio-vs-pio.dia
index 6cba206e..1a1829d6 100644
--- a/slides/kernel-driver-development-io-memory/mmio-vs-pio.dia
+++ b/slides/kernel-driver-development-io-memory/mmio-vs-pio.dia
@@ -2,10 +2,10 @@
<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
<dia:diagramdata>
<dia:attribute name="background">
- <dia:color val="#ffffff"/>
+ <dia:color val="#ffffffff"/>
</dia:attribute>
<dia:attribute name="pagebreak">
- <dia:color val="#000099"/>
+ <dia:color val="#000099ff"/>
</dia:attribute>
<dia:attribute name="paper">
<dia:composite type="paper">
@@ -37,6 +37,9 @@
</dia:attribute>
<dia:attribute name="grid">
<dia:composite type="grid">
+ <dia:attribute name="dynamic">
+ <dia:boolean val="true"/>
+ </dia:attribute>
<dia:attribute name="width_x">
<dia:real val="1"/>
</dia:attribute>
@@ -53,7 +56,7 @@
</dia:composite>
</dia:attribute>
<dia:attribute name="color">
- <dia:color val="#d8e5e5"/>
+ <dia:color val="#d8e5e5ff"/>
</dia:attribute>
<dia:attribute name="guides">
<dia:composite type="guides">
@@ -61,8 +64,27 @@
<dia:attribute name="vguides"/>
</dia:composite>
</dia:attribute>
+ <dia:attribute name="display">
+ <dia:composite type="display">
+ <dia:attribute name="antialiased">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="snap-to-grid">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="snap-to-object">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="show-grid">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="show-connection-points">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
</dia:diagramdata>
- <dia:layer name="Arrière-plan" visible="true" active="true">
+ <dia:layer name="Arrière-plan" visible="true" connectable="true" active="true">
<dia:object type="Standard - Box" version="0" id="O0">
<dia:attribute name="obj_pos">
<dia:point val="7,3"/>
@@ -83,10 +105,10 @@
<dia:real val="0.10000000149011612"/>
</dia:attribute>
<dia:attribute name="border_color">
- <dia:color val="#a34804"/>
+ <dia:color val="#a34804ff"/>
</dia:attribute>
<dia:attribute name="inner_color">
- <dia:color val="#ffd192"/>
+ <dia:color val="#ffd192ff"/>
</dia:attribute>
<dia:attribute name="show_background">
<dia:boolean val="true"/>
@@ -94,28 +116,28 @@
</dia:object>
<dia:object type="Standard - Box" version="0" id="O1">
<dia:attribute name="obj_pos">
- <dia:point val="7,4"/>
+ <dia:point val="7,3.45"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="6.95,3.95;13.05,6.05"/>
+ <dia:rectangle val="6.95,3.4;13.05,7.6"/>
</dia:attribute>
<dia:attribute name="elem_corner">
- <dia:point val="7,4"/>
+ <dia:point val="7,3.45"/>
</dia:attribute>
<dia:attribute name="elem_width">
<dia:real val="6"/>
</dia:attribute>
<dia:attribute name="elem_height">
- <dia:real val="2"/>
+ <dia:real val="4.1000000000000005"/>
</dia:attribute>
<dia:attribute name="border_width">
<dia:real val="0.10000000149011612"/>
</dia:attribute>
<dia:attribute name="border_color">
- <dia:color val="#6a8954"/>
+ <dia:color val="#6a8954ff"/>
</dia:attribute>
<dia:attribute name="inner_color">
- <dia:color val="#c5e387"/>
+ <dia:color val="#c5e387ff"/>
</dia:attribute>
<dia:attribute name="show_background">
<dia:boolean val="true"/>
@@ -141,10 +163,10 @@
<dia:real val="0.10000000149011612"/>
</dia:attribute>
<dia:attribute name="border_color">
- <dia:color val="#5cacff"/>
+ <dia:color val="#5cacffff"/>
</dia:attribute>
<dia:attribute name="inner_color">
- <dia:color val="#add8e6"/>
+ <dia:color val="#add8e6ff"/>
</dia:attribute>
<dia:attribute name="show_background">
<dia:boolean val="true"/>
@@ -152,10 +174,10 @@
</dia:object>
<dia:object type="Standard - Text" version="1" id="O3">
<dia:attribute name="obj_pos">
- <dia:point val="10,5"/>
+ <dia:point val="10,5.5"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="7.51375,4.62625;12.4863,5.37375"/>
+ <dia:rectangle val="7.8125,5.03184;12.1875,5.96816"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -169,10 +191,10 @@
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="10,5.22125"/>
+ <dia:point val="10,5.7704"/>
</dia:attribute>
<dia:attribute name="color">
- <dia:color val="#000000"/>
+ <dia:color val="#000000ff"/>
</dia:attribute>
<dia:attribute name="alignment">
<dia:enum val="1"/>
@@ -191,7 +213,7 @@
<dia:point val="10,9"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="9.295,8.62625;10.705,9.37375"/>
+ <dia:rectangle val="9.3,8.53184;10.7,9.46816"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -205,10 +227,10 @@
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="10,9.22125"/>
+ <dia:point val="10,9.2704"/>
</dia:attribute>
<dia:attribute name="color">
- <dia:color val="#000000"/>
+ <dia:color val="#000000ff"/>
</dia:attribute>
<dia:attribute name="alignment">
<dia:enum val="1"/>
@@ -222,77 +244,12 @@
<dia:connection handle="0" to="O2" connection="8"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Box" version="0" id="O5">
- <dia:attribute name="obj_pos">
- <dia:point val="21,8"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="20.95,7.95;27.05,11.05"/>
- </dia:attribute>
- <dia:attribute name="elem_corner">
- <dia:point val="21,8"/>
- </dia:attribute>
- <dia:attribute name="elem_width">
- <dia:real val="6"/>
- </dia:attribute>
- <dia:attribute name="elem_height">
- <dia:real val="3"/>
- </dia:attribute>
- <dia:attribute name="border_width">
- <dia:real val="0.10000000149011612"/>
- </dia:attribute>
- <dia:attribute name="border_color">
- <dia:color val="#2f004a"/>
- </dia:attribute>
- <dia:attribute name="inner_color">
- <dia:color val="#efb9ff"/>
- </dia:attribute>
- <dia:attribute name="show_background">
- <dia:boolean val="true"/>
- </dia:attribute>
- </dia:object>
- <dia:object type="Standard - Text" version="1" id="O6">
- <dia:attribute name="obj_pos">
- <dia:point val="24,9.5"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="21.8738,9.12625;26.1262,9.87375"/>
- </dia:attribute>
- <dia:attribute name="text">
- <dia:composite type="text">
- <dia:attribute name="string">
- <dia:string>#PIO Registers#</dia:string>
- </dia:attribute>
- <dia:attribute name="font">
- <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
- </dia:attribute>
- <dia:attribute name="height">
- <dia:real val="0.80000000000000004"/>
- </dia:attribute>
- <dia:attribute name="pos">
- <dia:point val="24,9.72125"/>
- </dia:attribute>
- <dia:attribute name="color">
- <dia:color val="#000000"/>
- </dia:attribute>
- <dia:attribute name="alignment">
- <dia:enum val="1"/>
- </dia:attribute>
- </dia:composite>
- </dia:attribute>
- <dia:attribute name="valign">
- <dia:enum val="2"/>
- </dia:attribute>
- <dia:connections>
- <dia:connection handle="0" to="O5" connection="8"/>
- </dia:connections>
- </dia:object>
- <dia:object type="Standard - Text" version="1" id="O7">
+ <dia:object type="Standard - Text" version="1" id="O5">
<dia:attribute name="obj_pos">
<dia:point val="10,11"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="5.20375,11;14.7963,13.3475"/>
+ <dia:rectangle val="5.98625,11;14.0137,13.5363"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -308,10 +265,10 @@ normal load/store instructions#</dia:string>
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="10,11.595"/>
+ <dia:point val="10,11.7386"/>
</dia:attribute>
<dia:attribute name="color">
- <dia:color val="#000000"/>
+ <dia:color val="#000000ff"/>
</dia:attribute>
<dia:attribute name="alignment">
<dia:enum val="1"/>
@@ -325,42 +282,5 @@ normal load/store instructions#</dia:string>
<dia:connection handle="0" to="O0" connection="6"/>
</dia:connections>
</dia:object>
- <dia:object type="Standard - Text" version="1" id="O8">
- <dia:attribute name="obj_pos">
- <dia:point val="24,11"/>
- </dia:attribute>
- <dia:attribute name="obj_bb">
- <dia:rectangle val="18.4575,11;29.5425,12.5475"/>
- </dia:attribute>
- <dia:attribute name="text">
- <dia:composite type="text">
- <dia:attribute name="string">
- <dia:string>#Separate I/O address space,
-accessed with specific instructions#</dia:string>
- </dia:attribute>
- <dia:attribute name="font">
- <dia:font family="Latin Modern Sans" style="0" name="Courier"/>
- </dia:attribute>
- <dia:attribute name="height">
- <dia:real val="0.80000000000000004"/>
- </dia:attribute>
- <dia:attribute name="pos">
- <dia:point val="24,11.595"/>
- </dia:attribute>
- <dia:attribute name="color">
- <dia:color val="#000000"/>
- </dia:attribute>
- <dia:attribute name="alignment">
- <dia:enum val="1"/>
- </dia:attribute>
- </dia:composite>
- </dia:attribute>
- <dia:attribute name="valign">
- <dia:enum val="0"/>
- </dia:attribute>
- <dia:connections>
- <dia:connection handle="0" to="O5" connection="6"/>
- </dia:connections>
- </dia:object>
</dia:layer>
</dia:diagram>
More information about the training-materials-updates
mailing list