2008 Essential Linux Device Drivers; Sreekrishnan Venkateswaran

Total Page:16

File Type:pdf, Size:1020Kb

2008 Essential Linux Device Drivers; Sreekrishnan Venkateswaran Essential Linux Device Drivers by Sreekrishnan Venkateswaran Publisher: Prentice Hall Pub Date: March 27, 2008 Print ISBN-10: 0-13-239655-6 Print ISBN-13: 978-0-13-239655-4 Pages: 744 Table of Contents | Index Overview "Probably the most wide ranging and complete Linux device driver book I've read." --Alan Cox, Linux Guru and Key Kernel Developer "Very comprehensive and detailed, covering almost every single Linux device driver type." --Theodore Ts'o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation The Most Practical Guide to Writing Linux Device Drivers Linux now offers an exceptionally robust environment for driver development: with today's kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world's most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today's fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example. • Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory • Demystifies essential kernel services and facilities, including kernel threads and helper interfaces • Teaches polling, asynchronous notification, and I/O control • Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers • Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework • Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking • Describes the entire driver development lifecycle, through debugging and maintenance • Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files Essential Linux Device Drivers by Sreekrishnan Venkateswaran Publisher: Prentice Hall Pub Date: March 27, 2008 Print ISBN-10: 0-13-239655-6 Print ISBN-13: 978-0-13-239655-4 Pages: 744 Table of Contents | Index Copyright Prentice Hall Open Source Software Development Series Foreword Preface Acknowledgments About the Author Chapter 1. Introduction Evolution The GNU Copyleft Kernel.org Mailing Lists and Forums Linux Distributions Looking at the Sources Building the Kernel Loadable Modules Before Starting Chapter 2. A Peek Inside the Kernel Booting Up Kernel Mode and User Mode Process Context and Interrupt Context Kernel Timers Concurrency in the Kernel Process Filesystem Allocating Memory Looking at the Sources Chapter 3. Kernel Facilities Kernel Threads Helper Interfaces Looking at the Sources Chapter 4. Laying the Groundwork Introducing Devices and Drivers Interrupt Handling The Linux Device Model Memory Barriers Power Management Looking at the Sources Chapter 5. Character Drivers Char Driver Basics Device Example: System CMOS Sensing Data Availability Talking to the Parallel Port RTC Subsystem Pseudo Char Drivers Misc Drivers Character Caveats Looking at the Sources Chapter 6. Serial Drivers Layered Architecture UART Drivers TTY Drivers Line Disciplines Looking at the Sources Chapter 7. Input Drivers Input Event Drivers Input Device Drivers Debugging Looking at the Sources Chapter 8. The Inter-Integrated Circuit Protocol What's I2C/SMBus? I2C Core Bus Transactions Device Example: EEPROM Device Example: Real Time Clock I2C-dev Hardware Monitoring Using LM-Sensors The Serial Peripheral Interface Bus The 1-Wire Bus Debugging Looking at the Sources Chapter 9. PCMCIA and Compact Flash What's PCMCIA/CF? Linux-PCMCIA Subsystem Host Controller Drivers PCMCIA Core Driver Services Client Drivers Tying the Pieces Together PCMCIA Storage Serial PCMCIA Debugging Looking at the Sources Chapter 10. Peripheral Component Interconnect The PCI Family Addressing and Identification Accessing PCI Regions Direct Memory Access Device Example: Ethernet-Modem Card Debugging Looking at the Sources Chapter 11. Universal Serial Bus USB Architecture Linux-USB Subsystem Driver Data Structures Enumeration Device Example: Telemetry Card Class Drivers Gadget Drivers Debugging Looking at the Sources Chapter 12. Video Drivers Display Architecture Linux-Video Subsystem Display Parameters The Frame Buffer API Frame Buffer Drivers Console Drivers Debugging Looking at the Sources Chapter 13. Audio Drivers Audio Architecture Linux-Sound Subsystem Device Example: MP3 Player Debugging Looking at the Sources Chapter 14. Block Drivers Storage Technologies Linux Block I/O Layer I/O Schedulers Block Driver Data Structures and Methods Device Example: Simple Storage Controller Advanced Topics Debugging Looking at the Sources Chapter 15. Network Interface Cards Driver Data Structures Talking with Protocol Layers Buffer Management and Concurrency Control Device Example: Ethernet NIC ISA Network Drivers Asynchronous Transfer Mode Network Throughput Looking at the Sources Chapter 16. Linux Without Wires Bluetooth Infrared WiFi Cellular Networking Current Trends Chapter 17. Memory Technology Devices What's Flash Memory? Linux-MTD Subsystem Map Drivers NOR Chip Drivers NAND Chip Drivers User Modules MTD-Utils Configuring MTD eXecute In Place The Firmware Hub Debugging Looking at the Sources Chapter 18. Embedding Linux Challenges Component Selection Tool Chains Embedded Bootloaders Memory Layout Kernel Porting Embedded Drivers The Root Filesystem Test Infrastructure Debugging Chapter 19. Drivers in User Space Process Scheduling and Response Times Accessing I/O Regions Accessing Memory Regions User Mode SCSI User Mode USB User Mode I2C UIO Looking at the Sources Chapter 20. More Devices and Drivers ECC Reporting Frequency Scaling Embedded Controllers ACPI ISA and MCA FireWire Intelligent Input/Output Amateur Radio Voice over IP High-Speed Interconnects Chapter 21. Debugging Device Drivers Kernel Debuggers Kernel Probes Kexec and Kdump Profiling Tracing Linux Test Project User Mode Linux Diagnostic Tools Kernel Hacking Config Options Test Equipment Chapter 22. Maintenance and Delivery Coding Style Change Markers Version Control Consistent Checksums Build Scripts Portable Code Chapter 23. Shutting Down Checklist What Next? Appendix A. Linux Assembly Debugging Appendix B. Linux and the BIOS Real Mode Calls Protected Mode Calls BIOS and Legacy Drivers Appendix C. Seq Files The Seq File Advantage Updating the NVRAM Driver Looking at the Sources Index Copyright Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 [email protected] For sales outside the United States please contact: International Sales [email protected] Visit us on the Web: www.informit.com/ph Library of Congress Cataloging-in-Publication Data: Venkateswaran, Sreekrishnan, 1972- Essential Linux device drivers / Sreekrishnan Venkateswaran.-- 1st ed. p. cm. ISBN 0-13-239655-6 (hardback : alk. paper) 1. Linux device drivers (Computer programs) I. Title. QA76.76.D49V35 2008 005.4'32--dc22 2008000249 Copyright © 2008 Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to: Pearson Education, Inc Rights and Contracts Department 501 Boylston Street, Suite 900 Boston, MA 02116 Fax (617) 671 3447 This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). ISBN-13: 978-0-132-39655-4 Text printed in the United States on recycled paper at RR Donnelly in Crawfordsville, IN. First printing March
Recommended publications
  • FAI.Me a Build Service for Installation Images and Cloud Images
    FAI.me A Build Service for Installation Images and Cloud Images Thomas Lange, Debian Developer and sysadmin at the University of Cologne [email protected] MiniDebConf Hamburg 2018 1/19 finger Mrfai@localhost ◮ whoami ◮ Sysadmin for more than two and a half decades ◮ Debian developer since 2000 ◮ Diploma in computer science, University of Bonn, Germany ◮ SunOS 4.1.1 on SPARC hardware, then Solaris Jumpstart ◮ Started FAI in 1999 for my first cluster (16× Dual PII 400 MHz) ◮ Several talks and tutorials: Linux Kongress, Linuxtag, DebConf, SANE, LCA, FOSDEM, CeBit, OSDC, UKUUG, FrOSCon, Chemnitzer Linuxtag ◮ FAI trainings 2/19 Motivation ◮ Debian installer is not that easy for beginners ◮ Also FAI is not for beginners ◮ How to make FAI usable for beginners? 3/19 The idea ◮ An installer should cover the most usual installations ◮ Ignore the special cases ◮ Do only ask the really important questions ◮ Ask everything at the beginning ◮ Create a customized installation media ◮ Boot this installation media and get yourself a coffee ◮ Ready! 4/19 FAI ◮ FAI = Fully Automatic Installation ◮ FAI is a tool for experienced sysadmins ◮ You have to adjust the config files to your local needs ◮ How to make FAI usable for beginners? FAI.me 5/19 FAI.me 6/19 FAI.me ◮ Easy creation of the installation media (CD/USB stick) ◮ Customizations are easy to do (clicks on a web page) ◮ Lanuage, user name and pw, root pw ◮ Select one of the common desktops ◮ Additional packages ◮ Distributions: stable, stable+backports, testing 7/19 Some more advanced features ◮ A couple of different partitioning variants ◮ SSH key for root login ◮ Use your github account (ssh pub key) for the root login ◮ Add one public available repository 8/19 FAI.me for the cloud ◮ Cloud Images ◮ Get your customized cloud image by just a few clicks ◮ Disk size ◮ Disk image format (raw.xz, raw.zst, qcow2, vmdk,...) ◮ Hostname 9/19 FAI.me more ideas ◮ Make web page dynamic: easy mode Thanks Juri! ◮ Images for non-amd64 archs ◮ Other distributions (e.g.
    [Show full text]
  • Linux Kernel and Driver Development Training Slides
    Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • The Linux Graphics Stack Attributions
    I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions Introduction to GPUs and to the Linux Graphics Stack Martin Peres CC By-SA 3.0 Nouveau developer Ph.D. student at LaBRI November 26, 2012 1 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview Outline 1 I - Hardware : Anatomy of a GPU General overview Driving screens Host < − > GPU communication 2 II - Host : The Linux graphics stack General overview DRM and libdrm Mesa X11 Wayland X11 vs Wayland 3 Attributions Attributions 2 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview General overview of a modern GPU's functions Display content on a screen Accelerate 2D operations Accelerate 3D operations Decode videos Accelerate scientific calculations 3 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview CPU Clock Front-side Graphics Generator bus card slot Chipset Memory Slots High-speed graphics bus (AGP or PCI Northbridge Memory Express) bus (memory controller hub) Internal Bus PCI Bus Onboard Southbridge graphics PCI (I/O controller controller Bus hub) IDE SATA USB Cables and Ethernet ports leading Audio Codec CMOS Memory off-board PCI Slots LPC Bus Super I/O Serial Port Parallel Port Flash ROM Floppy Disk Keyboard (BIOS) Mouse 4 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview Hardware architecture GPU: Where all the calculations are made VRAM: Stores
    [Show full text]
  • Freiesmagazin 07/2009
    freiesMagazin Juli 2009 Topthemen dieser Ausgabe ZevenOS – Linux goes BeOS Seite 4 Ein biologisches Phänomen hat längst Einzug in die Linux-Welt gehalten: Mimikry. Das bedeu- tet, dass eine Spezies wegen bestimmter Vorteile eine andere Spezies nachahmt, z. B. legt sich eine harmlose Fliegenart das Aussehen von Wespen zu. Einer der neueren Fälle in der Linux-Welt ist ZevenOS, eine Linux-Distribution, die auf Ubuntu aufbaut. Das Besondere: Sie will im Aussehen und in der Benutzung etwas vom Feeling des legendären und leider im Nebel der Geschichte verschwundenen Betriebssystems BeOS vermitteln. (weiterlesen) easyVDR – The easy VDR Distribution Seite 12 Die Distribution easyVDR ist eine unter der GNU General Public License (GPL) veröffentlichte Distribution, die sich den Themen Video und TV widmet. Hat man noch ausgemusterte Rech- ner zuhause, lassen sich diese mit der Hilfe von easyVDR als digitaler Videorekorder nutzen – mit dem Vorteil, in vielen Belangen anpassbar zu sein; ein digitaler Selbstbaukasten sozusa- gen. (weiterlesen) Was bieten freie CRM-Lösungen? – Im Vergleich: SugarCRM und vtiger CRM Seite 34 CRM steht für Customer Relationship Management und beschreibt die Verwaltung von Kunden- daten und Kundenbeziehungen. Anhand eines konkreten Anwendungsfalls der fiktiven Firma EVENTO, einer Veranstaltungsagentur mit dem Schwerpunkt auf außergewöhnliche Orte, wer- den zwei CRM-Lösungen verglichen. Aus der Vielzahl an frei verfügbaren Programmen wurden die zwei populären Vertreter SugarCRM Version 5.2.0c und vtiger CRM Version 5.0.4 ausge- wählt. (weiterlesen) © freiesMagazin GNU FDL Ausgabe 07/2009 ISSN 1867-7991 MAGAZIN Editorial Anleitung: Wie verprellt man eine Community? Wir befinden uns im Jahre 2009 n. Chr. Die ganze ten [5].
    [Show full text]
  • Developing and Benchmarking Native Linux Applications on Android
    Developing and Benchmarking Native Linux Applications on Android Leonid Batyuk, Aubrey-Derrick Schmidt, Hans-Gunther Schmidt, Ahmet Camtepe, and Sahin Albayrak Technische Universit¨at Berlin, 10587 Berlin, Germany {aubrey.schmidt,leonid.batyuk,hans-gunther.schmidt,ahmet.camtepe, sahin.albayrak}@dai-labor.de http://www.dai-labor.de Abstract. Smartphones get increasingly popular where more and more smartphone platforms emerge. Special attention was gained by the open source platform Android which was presented by the Open Handset Al- liance (OHA) hosting members like Google, Motorola, and HTC. An- droid uses a Linux kernel and a stripped-down userland with a custom Java VM set on top. The resulting system joins the advantages of both environments, while third-parties are intended to develop only Java ap- plications at the moment. In this work, we present the benefit of using native applications in Android. Android includes a fully functional Linux, and using it for heavy computational tasks when developing applications can bring in substantional performance increase. We present how to develop native applications and software components, as well as how to let Linux appli- cations and components communicate with Java programs. Additionally, we present performance measurements of native and Java applications executing identical tasks. The results show that native C applications can be up to 30 times as fast as an identical algorithm running in Dalvik VM. Java applications can become a speed-up of up to 10 times if utilizing JNI. Keywords: software, performance, smartphones, android, C, Java. 1 Introduction With the growing customer interest in smartphones the number of available platforms increases steadily.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • Armadillo-640 製品マニュアル
    Armadillo-640 製品マニュアル A6400-U00Z A6400-D00Z A6400-B00Z Version 1.14.0 2020/07/13 株式会社アットマークテクノ [https://www.atmark-techno.com] Armadillo サイト [https://armadillo.atmark-techno.com] Armadillo-640 製品マニュアル 株式会社アットマークテクノ 製作著作 © 2018-2020 Atmark Techno, Inc. Version 1.14.0 2020/07/13 Armadillo-640 製品マニュアル Armadillo-640 製品マニュアル 目次 1. はじめに ........................................................................................................................................ 15 1.1. 本書で扱うこと扱わないこと ............................................................................................. 15 1.1.1. 扱うこと .................................................................................................................. 15 1.1.2. 扱わないこと ........................................................................................................... 15 1.2. 本書で必要となる知識と想定する読者 ............................................................................... 15 1.3. ユーザー限定コンテンツ .................................................................................................... 16 1.4. 本書および関連ファイルのバージョンについて ................................................................. 16 1.5. 本書の構成 ......................................................................................................................... 16 1.6. 表記について ...................................................................................................................... 17 1.6.1. フォント .................................................................................................................
    [Show full text]
  • Linux, Yocto and Fpgas
    Embedded Open Source Experts Linux, Yocto and FPGAs Integrating Linux and Yocto builds into different SoCs From a Linux software perspective: ➤ Increased demand for Linux on FPGAs ➤ Many things to mange, both technical and practical ➤ FPGAs with integrated CPU cores – very similar many other SoCs Here are some experiences and observations... © Codiax 2019 ● Page 2 Why use Linux? ➤ De-facto standard ➤ Huge HW support ➤ FOSS ➤ Flexible ➤ Adaptable ➤ Stable ➤ Scalable ➤ Royalty free ➤ Vendor independent ➤ Large community ➤ Long lifetime Why not Linux? ➤ Too big ➤ Real-time requirements ➤ Certification ➤ Boot time ➤ Licensing ➤ Too open? Desktop Shells: Desktop Display server: Display BrailleDisplay Touch-Screen Mouse & Keyboard Wayland Compositor Wayland + development tools = a lot code!of source Linux system example weston, clayton,mutter,KWin evdev libinput GNOME Shell D radeon nouveau lima etna_viv freedreno tegra-re lima nouveau radeon freedreno etna_viv e libwayland-server libwayland-server s Cinnamon k t o kms p Linux kernel, Linux kernel, Plasma 2 w i (Kernel Mode Setting) Mode (Kernel d g Cairo-Dock e t s drm (Direct Rendering Manager) Rendering (Direct drm cache coherent L2-Caches L2-Caches cache coherent CPU &GPU Enlight. DR19 System libraries: System oflibraries): form (in the Toolkits Interface User µClibc Pango glibc glibc main memory possibly adaptations to Wayland/Mir libwayland / COGL libwayland Cairo Cairo (Xr) GTK+ Clutter 2D Application 2D GModule GThread GThread GLib GObject Glib GIO ATK devicedrivers other& modules System
    [Show full text]
  • Zynq Ultrascale+ Mpsoc TRD User Guide (UG1221)
    Zynq UltraScale+ MPSoC Base Targeted Reference Design User Guide UG1221 (v2016.4) March 22, 2017 Revision History The following table shows the revision history for this document. Date Version Revision 03/22/2017 2016.4 Released with Vivado Design Suite 2016.4 with no changes from previous version. 12/15/2016 2016.3 Updated for Vivado Design Suite 2016.3: Updated Reference Design Overview. Replaced Chapter 2, Reference Design. Updated Figure 3-1 and the following paragraph. Updated Figure 4-1 and perfapm library descriptions in Chapter 4, RPU-1 Software Stack (Bare-metal). Updated Figure 6-1, Figure 6-2, and DDR region descriptions under Memories in Chapter 6. Updated Figure 7-1, Figure 7-4, and Figure 7-5. Added X11 section, deleted first paragraph under EGLFS QPA, and modified “Evdev” section to “Libinput” in Chapter 7, APU Software Platform. Updated Table 8-2 and clock descriptions under Clocks, Resets and Interrupts in Chapter 8. 07/22/2016 2016.2 Updated for Vivado Design Suite 2016.2: Added “GPU” to hardware interfaces and IP under Key Features. Changed link under Design Modules from the wiki site to the HeadStart Lounge and updated link under Tutorials to the Base TRD wiki site. Deleted steps 2 and 4 under Tutorials and added reference tutorial (last bullet). Added second to last sentence to second paragraph under Boot Process. Added “Load PMU FW” component to Figure 6-1. Clarified Message Passing section (text only). Changed “PCA9546” to PCA9548” in Figure 8-7. 06/29/2016 2016.1 Initial Xilinx release. Zynq UltraScale+ MPSoC Base TRD www.xilinx.com Send Feedback 2 UG1221 (v2016.4) March 22, 2017 Table of Contents Revision History .
    [Show full text]
  • The Pulseaudio Sound Server Linux.Conf.Au 2007
    Introduction What is PulseAudio? Usage Internals Recipes Outlook The PulseAudio Sound Server linux.conf.au 2007 Lennart Poettering [email protected] Universit¨atHamburg, Department Informatik University of Hamburg, Department of Informatics Hamburg, Germany January 17th, 2007 Lennart Poettering The PulseAudio Sound Server 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction Lennart Poettering The PulseAudio Sound Server 3 Usage 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? Lennart Poettering The PulseAudio Sound Server 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage Lennart Poettering The PulseAudio Sound Server 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals Lennart Poettering The PulseAudio Sound Server 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes 6 Outlook Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Who Am I? Student (Computer Science) from Hamburg, Germany Core Developer of PulseAudio, Avahi and a few other Free Software projects http://0pointer.de/lennart/ [email protected] IRC: mezcalero Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Introduction Lennart Poettering The PulseAudio Sound Server It’s a mess! There are just too many widely adopted but competing and incompatible sound systems.
    [Show full text]
  • Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance
    Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem and Damien Carver, Sorbonne University, LIP6, Inria; Jean-Pierre Lozi, Oracle Labs; Julien Sopena, Sorbonne University, LIP6, Inria; Baptiste Lepers and Willy Zwaenepoel, University of Sydney; Nicolas Palix, Université Grenoble Alpes; Julia Lawall and Gilles Muller, Inria, Sorbonne University, LIP6 https://www.usenix.org/conference/atc20/presentation/gouicern This paper is included in the Proceedings of the 2020 USENIX Annual Technical Conference. July 15–17, 2020 978-1-939133-14-4 Open access to the Proceedings of the 2020 USENIX Annual Technical Conference is sponsored by USENIX. Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem, Damien Carver Jean-Pierre Lozi Julien Sopena Sorbonne University, LIP6, Inria Oracle Labs Sorbonne University, LIP6, Inria Baptiste Lepers, Willy Zwaenepoel Nicolas Palix University of Sydney Université Grenoble Alpes Julia Lawall, Gilles Muller Inria, Sorbonne University, LIP6 Abstract One source of challenges in managing core frequencies is the Frequency Transition Latency (FTL). Indeed, transitioning In modern server CPUs, individual cores can run at different a core from a low to a high frequency, or conversely, has an frequencies, which allows for fine-grained control of the per- FTL of dozens to hundreds of milliseconds. FTL leads to a formance/energy tradeoff. Adjusting the frequency, however, problem of frequency inversion in scenarios that are typical incurs a high latency. We find that this can lead to a problem of the use of the standard POSIX fork() and wait() system of frequency inversion, whereby the Linux scheduler places calls on process creation, or of synchronization between a newly active thread on an idle core that takes dozens to hun- lightweight threads in a producer-consumer application.
    [Show full text]
  • A Brief Overview of the Re-Implementation of the Android Push Event Stream Model
    ANDROID PUSH EVENT MODEL 1 A Brief Overview of the Re-Implementation of the Android Push Event Stream Model Dustin McAfee and Brad Vander Zanden E-mail: [email protected], [email protected] F 1 INTRODUCTION The work described, here, is an ongoing attempt to 2 METHODS re-implement an existing model, the Android Event Push Stream Model (ESM), put forth in a number of papers by The Android input stack is comprised of multiple layers Drs. Marz, Vander Zanden, and Gao at the University of for polling input and demultiplexing it to the user processes Tennessee, Knoxville, [1], [2], [3]. This re-implementation (applications). The polling interface to the Linux kernel that differs from Marz’s original implementation in that it at- the Android operating system uses is epoll (see ”frame- tempts to implement only the event push model in the works/native/services/inputflinger/EventHub.cpp” in the Android kernel while Marz’s implementation implemented Android source code, and ”fs/eventpoll.c” in the Linux the event push model in the Android kernel, moved the kernel source code). The Linux kernel running inside of display system into the kernel, and implemented a GUI Android uses the evdev input event interface (see ”driver- scheduler to better manage different GUI tasks. At this point s/input/evdev.c” in the Linux kernel source code). After an we are only re-implementing the event push model so that input event fires an interrupt in the Linux kernel, evdev is we can examine its ability to reduce the power consumption responsible for directing the input event to the correct input of apps using sensor events.
    [Show full text]