SlideShare a Scribd company logo
Agnostic Device Drivers  ( ADD ) Concept, Design, and Implementation of a Slimline  Boot Firmware for Linux on Power Architecture IBM Deutschland Entwicklung GmbH Schoenaicherstr. 220 71032 Boeblingen
Contents Open Firmware Standard Existing Hardware Abstraction Concepts Agnostic Device Drivers (ADD) Further Opportunities
Is Hardware Abstraction necessary?
Open Firmware  Standard IEEE Standard IEEE Std. 1275-1994 Standard for Boot (Initialization Configuration) Firmware Device Interface User Interface Client Interface Device-Tree
Existing Hardware Abstraction Concepts (based on Open Firmware) Common Hardware Reference Platform: Apple:
Comparison - - High-Level Language Facilities: -- - Packaging: +/- - Flexibility: ++ - Performance: Platform Expert RTAS
Agnostic Device Drivers (ADD) – Concept and Basics
Agnostic Device Drivers (ADD) – Packaging Options 1: ADD byte-code program taken from Device-Tree Packaged with the Firmware Code. Additional Device-Tree properties can include control or execution information. 2: ADD byte-code program inserted during run-time (via user transaction) Fast development of ADD byte-code programs. Flexible packaging.
Agnostic Device Drivers (ADD) – Virtual Machine Front-End: Loads Byte-Code (from different sources) Virtual Machine: Executes ADD Byte-Code Back-End: Implements I2C and GPIO Binding to the Operating System
Agnostic Device Drivers (ADD) – Functionality Small footprint virtual machine Controlling of low-bandwidth devices (e.g. I2C or GPIO) is possible Controlling of the policy and the logic of a device is possible Control Structures Defining Words Extended Debug Facilities Virtual Machine runs in hosted mode Virtual Machine runs as kernel thread (root user can interrupt it) I2C Drivers can debugged via I2C Emulation Host Adapter Rebooting during development is not necessary Single execution is not difficult to implement
Agnostic Device Drivers (ADD) – Summary ++ ++ ++ ++ Agnostic Device Drivers - - High-Level Language Facilities: -- - Packaging: - - Flexibility: ++ - Performance: Platform Expert RTAS
Questions ???
Further Opportunities Real-Time / Performance ADD is an asynchronous interface / hardware abstraction. Functionality can implemented as primitive (for real-time applications). Scheduling Scheduling (once, every 5 sec., etc.) can controlled via a Device-Tree property. Thread Support is not difficult to implement (instruction pointer and token-table pointer must saved). Multi-OS Only vendor token-table entries changed. ADD Virtual Machine can integrated into the firmware ADD driver could then used in the firmware and the operating system. Extended Debug Facilities Realizes fast program development and debugging.
Agnostic Device Drivers (ADD) – Example: Byte Code
Agnostic Device Drivers (ADD) – Example: Linux Kernel I2C Interface I2C algorithm driver used by the I2C bus driver to talk to the I2C bus. I2C chip driver controls the process of talking to an individual I2C device that lives on an I2C bus.
Overview of available Options  – CHRP (Common Hardware Reference Platform) Based on Open Firmware RTAS (Run-Time Abstraction Service) Hides machine dependent operations behind a machine independent interface, which the operating system can call synchronous. System Firmware = LLFW + Open Firmware + RTAS
Overview of available Options  – RPA (RISC Platform Architecture) Based on CHRP Hypervisor partitions machine resources enables multiple operating systems space for hardware dependent patches only one Hypervisor instance exits for all operating systems Partition Firmware = Open Firmware + RTAS
LinuxBIOS
OpenBIOS Maintainer Stefan Reinauer and Patrick Mauritz Main Goal To get a 100% compliant Open Firmware boot firmware. Current Function OpenBIOS could be executed under a boot manager or LinuxBIOS. File System Support Support adopted from Grub and libhfs. PPC Support Rudimentary available from the Mac-On-Linux project.
Complete Boot Process - Phase 1
Complete Boot Process  - Phase 2
Complete Boot Process  -  Phase 3

More Related Content

PDF
Spi drivers
PPTX
Linux I2C
PDF
I2c drivers
PDF
Linux dma engine
PDF
GMSL in Linux
PDF
What is CANopen? | ElmoMC
PDF
ARM AAE - System Issues
PDF
4 bit lcd_interfacing_with_arm7_primer
Spi drivers
Linux I2C
I2c drivers
Linux dma engine
GMSL in Linux
What is CANopen? | ElmoMC
ARM AAE - System Issues
4 bit lcd_interfacing_with_arm7_primer

What's hot (20)

PDF
Unit 3 devices&buses
PDF
Interfacing using ِAtmega16/32
PPTX
Как «вправить» автомобилю «мозги»
PDF
AAME ARM Techcon2013 003v02 Software Development
PDF
AAME ARM Techcon2013 004v02 Debug and Optimization
PDF
Multi-Axis Position Control by EtherCAT | ElmoMC
PPT
Introduction to i.MX27 Multimedia Applications Processors
PDF
AAME ARM Techcon2013 002v02 Advanced Features
PDF
AAME ARM Techcon2013 006v02 Implementation Diversity
PPTX
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
PDF
AAME ARM Techcon2013 005v02 System Startup
PDF
ARM AAE - Developing Code for ARM
PDF
ARM AAE - Architecture
PDF
ARM AAE - Memory Systems
PDF
Laptop Chip level repairing(CPU section)
PPTX
Embedded systems design @ defcon 2015
PDF
Nexys2 rm
PDF
Programming pic microcontrollers
PDF
Embedded systems development Defcon 19
PPTX
Honeywell PLC ML-200R Communcation & Networking
Unit 3 devices&buses
Interfacing using ِAtmega16/32
Как «вправить» автомобилю «мозги»
AAME ARM Techcon2013 003v02 Software Development
AAME ARM Techcon2013 004v02 Debug and Optimization
Multi-Axis Position Control by EtherCAT | ElmoMC
Introduction to i.MX27 Multimedia Applications Processors
AAME ARM Techcon2013 002v02 Advanced Features
AAME ARM Techcon2013 006v02 Implementation Diversity
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
AAME ARM Techcon2013 005v02 System Startup
ARM AAE - Developing Code for ARM
ARM AAE - Architecture
ARM AAE - Memory Systems
Laptop Chip level repairing(CPU section)
Embedded systems design @ defcon 2015
Nexys2 rm
Programming pic microcontrollers
Embedded systems development Defcon 19
Honeywell PLC ML-200R Communcation & Networking
Ad

Similar to Agnostic Device Drivers (20)

PDF
DRIVE PX 2
DOCX
Resume
PPT
Slimline Open Firmware
PDF
Blackfin Device Drivers
ODP
Android porting for dummies @droidconin 2011
PPT
UNIT-III ES.ppt
PDF
Droidcon 2013 France - Android Platform Anatomy
PDF
Linux firmware for iRMC controller on Fujitsu Primergy servers
DOC
Eric Theis resume61.1
PPT
Choosing the right processor
PDF
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
PPTX
dpdk acceleration techniques ncdşs şdcnş
PPT
Xilinx track g
PDF
Audio Visual Control Systems
PPT
Embedded system design process
PPTX
Velocity-EHF for Android
PDF
Automated Out-of-Band management with Ansible and Redfish
PDF
DDGen Product Brief
PDF
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
PPTX
Security best practices for hyper v and server virtualisation [svr307]
DRIVE PX 2
Resume
Slimline Open Firmware
Blackfin Device Drivers
Android porting for dummies @droidconin 2011
UNIT-III ES.ppt
Droidcon 2013 France - Android Platform Anatomy
Linux firmware for iRMC controller on Fujitsu Primergy servers
Eric Theis resume61.1
Choosing the right processor
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
dpdk acceleration techniques ncdşs şdcnş
Xilinx track g
Audio Visual Control Systems
Embedded system design process
Velocity-EHF for Android
Automated Out-of-Band management with Ansible and Redfish
DDGen Product Brief
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Security best practices for hyper v and server virtualisation [svr307]
Ad

More from Heiko Joerg Schick (18)

PDF
Da Vinci - A scaleable architecture for neural network computing (updated v4)
PDF
Huawei empowers healthcare industry with AI technology
PDF
The 2025 Huawei trend forecast gives you the lowdown on data centre facilitie...
PDF
The Smarter Car for Autonomous Driving
PDF
From edge computing to in-car computing
PDF
Need and value for various levels of autonomous driving
PPT
Petascale Analytics - The World of Big Data Requires Big Analytics
PPTX
Experiences in Application Specific Supercomputer Design - Reasons, Challenge...
PDF
Run-Time Reconfiguration for HyperTransport coupled FPGAs using ACCFS
PDF
Blue Gene Active Storage
PDF
Browser and Management App for Google's Person Finder
PDF
High Performance Computing - Challenges on the Road to Exascale Computing
PDF
IBM Corporate Service Corps - Helping Create Interactive Flood Maps
PDF
Real time Flood Simulation for Metro Manila and the Philippines
PPT
The Cell Processor
PPTX
directCell - Cell/B.E. tightly coupled via PCI Express
PDF
QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
PDF
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
Da Vinci - A scaleable architecture for neural network computing (updated v4)
Huawei empowers healthcare industry with AI technology
The 2025 Huawei trend forecast gives you the lowdown on data centre facilitie...
The Smarter Car for Autonomous Driving
From edge computing to in-car computing
Need and value for various levels of autonomous driving
Petascale Analytics - The World of Big Data Requires Big Analytics
Experiences in Application Specific Supercomputer Design - Reasons, Challenge...
Run-Time Reconfiguration for HyperTransport coupled FPGAs using ACCFS
Blue Gene Active Storage
Browser and Management App for Google's Person Finder
High Performance Computing - Challenges on the Road to Exascale Computing
IBM Corporate Service Corps - Helping Create Interactive Flood Maps
Real time Flood Simulation for Metro Manila and the Philippines
The Cell Processor
directCell - Cell/B.E. tightly coupled via PCI Express
QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
cuic standard and advanced reporting.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Spectral efficient network and resource selection model in 5G networks
20250228 LYD VKU AI Blended-Learning.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
cuic standard and advanced reporting.pdf
Modernizing your data center with Dell and AMD
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Spectral efficient network and resource selection model in 5G networks

Agnostic Device Drivers

  • 1. Agnostic Device Drivers ( ADD ) Concept, Design, and Implementation of a Slimline Boot Firmware for Linux on Power Architecture IBM Deutschland Entwicklung GmbH Schoenaicherstr. 220 71032 Boeblingen
  • 2. Contents Open Firmware Standard Existing Hardware Abstraction Concepts Agnostic Device Drivers (ADD) Further Opportunities
  • 4. Open Firmware Standard IEEE Standard IEEE Std. 1275-1994 Standard for Boot (Initialization Configuration) Firmware Device Interface User Interface Client Interface Device-Tree
  • 5. Existing Hardware Abstraction Concepts (based on Open Firmware) Common Hardware Reference Platform: Apple:
  • 6. Comparison - - High-Level Language Facilities: -- - Packaging: +/- - Flexibility: ++ - Performance: Platform Expert RTAS
  • 7. Agnostic Device Drivers (ADD) – Concept and Basics
  • 8. Agnostic Device Drivers (ADD) – Packaging Options 1: ADD byte-code program taken from Device-Tree Packaged with the Firmware Code. Additional Device-Tree properties can include control or execution information. 2: ADD byte-code program inserted during run-time (via user transaction) Fast development of ADD byte-code programs. Flexible packaging.
  • 9. Agnostic Device Drivers (ADD) – Virtual Machine Front-End: Loads Byte-Code (from different sources) Virtual Machine: Executes ADD Byte-Code Back-End: Implements I2C and GPIO Binding to the Operating System
  • 10. Agnostic Device Drivers (ADD) – Functionality Small footprint virtual machine Controlling of low-bandwidth devices (e.g. I2C or GPIO) is possible Controlling of the policy and the logic of a device is possible Control Structures Defining Words Extended Debug Facilities Virtual Machine runs in hosted mode Virtual Machine runs as kernel thread (root user can interrupt it) I2C Drivers can debugged via I2C Emulation Host Adapter Rebooting during development is not necessary Single execution is not difficult to implement
  • 11. Agnostic Device Drivers (ADD) – Summary ++ ++ ++ ++ Agnostic Device Drivers - - High-Level Language Facilities: -- - Packaging: - - Flexibility: ++ - Performance: Platform Expert RTAS
  • 13. Further Opportunities Real-Time / Performance ADD is an asynchronous interface / hardware abstraction. Functionality can implemented as primitive (for real-time applications). Scheduling Scheduling (once, every 5 sec., etc.) can controlled via a Device-Tree property. Thread Support is not difficult to implement (instruction pointer and token-table pointer must saved). Multi-OS Only vendor token-table entries changed. ADD Virtual Machine can integrated into the firmware ADD driver could then used in the firmware and the operating system. Extended Debug Facilities Realizes fast program development and debugging.
  • 14. Agnostic Device Drivers (ADD) – Example: Byte Code
  • 15. Agnostic Device Drivers (ADD) – Example: Linux Kernel I2C Interface I2C algorithm driver used by the I2C bus driver to talk to the I2C bus. I2C chip driver controls the process of talking to an individual I2C device that lives on an I2C bus.
  • 16. Overview of available Options – CHRP (Common Hardware Reference Platform) Based on Open Firmware RTAS (Run-Time Abstraction Service) Hides machine dependent operations behind a machine independent interface, which the operating system can call synchronous. System Firmware = LLFW + Open Firmware + RTAS
  • 17. Overview of available Options – RPA (RISC Platform Architecture) Based on CHRP Hypervisor partitions machine resources enables multiple operating systems space for hardware dependent patches only one Hypervisor instance exits for all operating systems Partition Firmware = Open Firmware + RTAS
  • 19. OpenBIOS Maintainer Stefan Reinauer and Patrick Mauritz Main Goal To get a 100% compliant Open Firmware boot firmware. Current Function OpenBIOS could be executed under a boot manager or LinuxBIOS. File System Support Support adopted from Grub and libhfs. PPC Support Rudimentary available from the Mac-On-Linux project.

Editor's Notes

  • #2: To replace the title / subtitle with your own: Click on the title block -> select all the text by pressing Ctrl+A -> press Delete key -> type your own text
  • #5: Device-Tree: The set of devices attached to the system, including permanently installed devices and plug-in devices, is described by an Open Firmware data structure known as device tree.
  • #6: RPA: - implements a Hypervisor - can run several Operating Systems - implements RTAS Apple: - doesn’t implement RTAS and a Hypervisor - has Platform Expert (Hardware and Operating System “Platform Expert” Code, which is copied from the firmware to the kernel of the Operating System, where it is executed)
  • #8: Agnostic Device Drivers (ADD) Concept and Basics (1): During the boot phases of the operating system, the Device-Tree (including ADD Byte-Code) is fetched over the client interface of Open Firmware. Device-Tree, with the Byte-Code included, is stored by the operating system and is available after lifetime of Open Firmware. (2): ADD Interpreter loads Byte-Code from the stored Device-Tree. (3): ADD Interpreter executes Byte-Code asynchronous.
  • #11: Control Structures: - Finite loop incrementing by 1 - Finite loop incrementing by <n> - Indefinite loop terminating when <f> is 'true‘ - Indefinite loop terminating when <f> is 'false‘ - Infinite loop - Two-branch conditional Defining Words: - Variables - Constants - Colon Definitions (Sub-Routines)