From 5e6df53275c41ae995922b449b004dc151a7cf74 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Fri, 12 Aug 2011 18:43:30 +0200 Subject: Update --- slides/ecc2011-klauser.nios2-linux.tex | 139 ++++- slides/images/design-flow.dia | Bin 0 -> 3284 bytes slides/images/design-flow.dia~ | Bin 0 -> 3284 bytes slides/images/design-flow.pdf | Bin 0 -> 23142 bytes slides/images/design-flow.svg | 375 +++++++++++++ slides/images/ines-logo.png | Bin 0 -> 85366 bytes slides/images/tux.pdf | Bin 0 -> 119015 bytes slides/images/tux.svg | 973 +++++++++++++++++++++++++++++++++ 8 files changed, 1476 insertions(+), 11 deletions(-) create mode 100644 slides/images/design-flow.dia create mode 100644 slides/images/design-flow.dia~ create mode 100644 slides/images/design-flow.pdf create mode 100644 slides/images/design-flow.svg create mode 100644 slides/images/ines-logo.png create mode 100644 slides/images/tux.pdf create mode 100644 slides/images/tux.svg (limited to 'slides') diff --git a/slides/ecc2011-klauser.nios2-linux.tex b/slides/ecc2011-klauser.nios2-linux.tex index cd8697d..5903eef 100644 --- a/slides/ecc2011-klauser.nios2-linux.tex +++ b/slides/ecc2011-klauser.nios2-linux.tex @@ -7,6 +7,7 @@ \usetheme{Boadilla} +\usepackage{epstopdf} \usepackage{ngerman} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} @@ -32,7 +33,7 @@ % \setbeamercovered{dynamic} } -\logo{\includegraphics[width=2cm]{images/zhaw-logo.png}} +\logo{\includegraphics[width=2cm]{images/ines-logo.png}} \title{Linux auf dem Nios II Softcore Prozessor} \subtitle{} @@ -71,20 +72,19 @@ \section{Übersicht FPGA und Softcore Prozessoren} -\begin{frame} +\begin{frame}{FPGA und Softcore} \begin{itemize} \item Field Programmable Gate Array \begin{itemize} \item Chip-Logik (Gateware) wird in einer Beschreibungssprache (VHDL, Verilog) codiert - \item Änderungen am Design relativ einfach + \item Änderungen am Design relativ einfach, Custom Systems \item Parallelität - \item Custom Systems \end{itemize} \item Softcore \begin{itemize} \item Prozessor innerhalb des FPGA implementiert \item Fast immer Bestandteil eines System-on-a-Chip - \item Konfigurierbar (z.B. mit oder ohne MMU), erweiterbar (z.B. Custom Instructions) + \item Konfigurierbar (z.B. MMU), erweiterbar (z.B. Custom Instructions) \item Proprietär, herstellerabhängig: Nios II (Altera), MicroBlaze (Xilinx), Cortex M1 (ARM) \item Open-Source Softcores: Gaisler LEON, OpenRISC, LatticeMico32 @@ -92,13 +92,30 @@ \end{itemize} \end{frame} +\begin{frame}{Nios II} + \begin{itemize} + \item 32-bit RISC Softcore-Prozessorarchitektur für Altera FPGAs + \item 3 Basisvarianten: + \begin{itemize} + \item Economy (600-700 LEs) + \item Standard (1200-1400 LEs) + \item Fast (2600-3000 LEs) + \end{itemize} + \item Konfigurierbar mit oder ohne Memory Management Unit (MMU) + \item Optionale Hardware MUL/DIV Instruktionen, Custom Instructions + \item Peripherie (Timer, UART, Ethernet MAC, Flash Controller, \dots) als IP über SOPC + System konfigurierbar + \end{itemize} +\end{frame} + \section{Übersicht Linux} \begin{frame}{Wieso ein Betriebssystem?} \begin{itemize} \item Multi-Tasking, Multi-User \item Memory Management, Memory Protection (MMU benötigt) - \item TCP/IP + \item TCP/IP Stack + \item Filesysteme \item Bestehende Software und Treiber \end{itemize} \end{frame} @@ -109,26 +126,47 @@ Smartphones), Skalierbarkeit \item Umfangreiches Software-Ökosystem, grosse Community \item Einheitliche Entwicklungsumgebung (Unix-artig, POSIX-Standard) - \item Portierungen auf zahlreiche (~30) Prozessor-Architekturen - \item Niedrige Kosten + \item Portierungen auf zahlreiche ($\sim 30$) Prozessor-Architekturen + \item Niedrige Kosten, freie Lizenzen + \end{itemize} +\end{frame} + +\begin{frame}{Embedded Linux} + \begin{columns} + \column{8cm} + \begin{itemize} + \item Linux Kernel als Kernkomponente eines Linux Systems + \item Libraries und Applikationen werden zusätzlich benötigt, um ein + komplettes System zu erhalten + \item Minimale Voraussetzungen: + \begin{itemize} + \item 32-bit Prozessor (mit oder ohne MMU) + \item unterstützte Toolchain (GCC, binutils, \dots) + \item libc (uClibc, eglibc) + \end{itemize} \end{itemize} + \column{4.5cm} + \begin{center} + \includegraphics[width=0.8\textwidth]{images/tux.pdf} + \end{center} + \end{columns} \end{frame} \section{Linux auf dem Nios II} \begin{frame}{Linux/uClinux auf dem Nios II} \begin{itemize} - \item Nios II: 32-bit Softcore-Prozessorarchitektur für Altera FPGAs \item Linux unterstützt Nios II mit \emph{und} ohne MMU \begin{itemize} \item Erster Port von Microtronix für Nios II NOMMU \item Separater Port von Wind River für Nios II MMU \end{itemize} \item Open Source Nios II Linux + (\href{http://www.alterawiki.com/wiki/Linux}{alterawiki.com/wiki/Linux}) \begin{itemize} \item MMU und NOMMU Ports zusammengeführt \item Anpassungen an aktuelle Linux Kernel Versionen - \item Integration in Mainline (kernel.org) geplant + \item Integration in Mainline (\href{http://www.kernel.org}{kernel.org}) geplant \end{itemize} \item Kommerzielle Anbieter \begin{itemize} @@ -138,9 +176,88 @@ \end{itemize} \end{frame} +\begin{frame}{Development Workflow} + \begin{center} + \includegraphics[height=0.8\textheight]{images/design-flow.pdf} + \end{center} +\end{frame} + +\begin{frame}[containsverbatim]{Linux Image} + \begin{itemize} + \item Kernel Image als ELF-Binary + \item Device Tree: Strukturierte Beschreibung der Hardware + \begin{itemize} + \item Bestandteil des Kernel Images + \item Optional in Flash (bedingt Verwendung von u-boot Bootloader) + \end{itemize} + \item Root Filesystem in einem \verb|initramfs| an Kernel angehängt + \item Keine Persistenz über Reboot hinweg + \begin{itemize} + \item Alternative: Root FS separat in Flash speichern + \item NFS (Network Filesystem) verwenden + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[containsverbatim]{Bootprozess - RAM} + \begin{enumerate} + \item Laden des FPGA-Bitstreams via JTAG + \item Laden des Linux Images via JTAG + \item ... + \item Beim Booten wird das \verb|initramfs| durch den Kernel ins RAM entpackt und + verwendet + \end{enumerate} +\end{frame} + \section{Anwendungsbeispiele} -\begin{frame}{Danke} +\begin{frame}{Anwendungsbeispiel - Redundantes Kommunikationsnetzwerk} + \begin{columns} + \column{8cm} + \begin{itemize} + \item Ethernet-basiert, optional SHDSL + \item Parallel Redundancy Protocol + \item Software-Komponenten für SHDSL, Webserver, SNMP + \item Treiber für eigene IP-Komponenten + \end{itemize} + \column{4.5cm} + \begin{center} + \end{center} + \end{columns} +\end{frame} + +\begin{frame}{Anwendungsbeispiel - Übertragung von HD-Videodaten} + \begin{itemize} + \item Gigabit-Ethernet + \item USB Host- und Device-Controller + \item Software-Komponenten für Session-Setup, Webserver + \end{itemize} +\end{frame} + +\begin{frame}{Zusammenfassung} + \begin{columns}[t] + \column{0.5\textwidth} + \begin{itemize} + \item foo + \item bar + \item baz + \item quuz + \end{itemize} + \column{0.5\textwidth} + \begin{itemize} + \item foo + \item bar + \end{itemize} + \end{columns} +\end{frame} + +\begin{frame}{Danke für Ihre Aufmerksamkeit} +\begin{center} +Tobias Klauser\\ +Institute of Embedded Systems\\ +Zürcher Hochschule für Angewandte Wissenschaften\\ +\href{mailto:klto@zhaw.ch}{klto@zhaw.ch}\\ +\end{center} \end{frame} \end{document} diff --git a/slides/images/design-flow.dia b/slides/images/design-flow.dia new file mode 100644 index 0000000..b9d746f Binary files /dev/null and b/slides/images/design-flow.dia differ diff --git a/slides/images/design-flow.dia~ b/slides/images/design-flow.dia~ new file mode 100644 index 0000000..b9d746f Binary files /dev/null and b/slides/images/design-flow.dia~ differ diff --git a/slides/images/design-flow.pdf b/slides/images/design-flow.pdf new file mode 100644 index 0000000..741ce36 Binary files /dev/null and b/slides/images/design-flow.pdf differ diff --git a/slides/images/design-flow.svg b/slides/images/design-flow.svg new file mode 100644 index 0000000..55ae0c6 --- /dev/null +++ b/slides/images/design-flow.svg @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + + + + + + + FPGA Gateware + Design + + + + + + + + + + + + + + + + + + + Generate + device tree + + + + + + + + + + + + + + + + + + + FPGA + + + + + + + + + + + + + + + + + + + + + + + + Bitstream + + + + + + + + + + + + + + + + + + + + + + + + sopcinfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uClinux-dist + Build System + + + + + + + + + + + + + + + + + + + device tree + + + + + + + + + + + + + + + + + + + RAM + + + + + + + + + + + + + + + + + + + + + + + + + VHDL/Verilog + + + + + + + + + + + + + + + + + + + + + + + + SOPC/qsys + + + + + + + + + + + + + + + + + + + + + + + + Linux Kernel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Userspace/ + Libraries + + + + + + + + + + + + + + + + + + + Kernel Image + + + + + + + + + + + + + + + + + + + Root Filesystem + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flash + + + + + + + + + + + + + + diff --git a/slides/images/ines-logo.png b/slides/images/ines-logo.png new file mode 100644 index 0000000..3f90be2 Binary files /dev/null and b/slides/images/ines-logo.png differ diff --git a/slides/images/tux.pdf b/slides/images/tux.pdf new file mode 100644 index 0000000..1b5daae Binary files /dev/null and b/slides/images/tux.pdf differ diff --git a/slides/images/tux.svg b/slides/images/tux.svg new file mode 100644 index 0000000..da88bf1 --- /dev/null +++ b/slides/images/tux.svg @@ -0,0 +1,973 @@ + + + +Tux +For more information see: http://commons.wikimedia.org/wiki/Image:Tux.svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-54-g00ecf