System Firmware: An Essential Guide to Open Source and Embedded Solutions
Subrata / Zimmer Banik
Résumé
Find the right bootloader solution or combination of firmware required to boot a platform considering its security, product features, and optimized boot solutions. This book covers system boot firmware, focusing on real-world firmware migration from closed source to open source adaptation.
The book provides an architectural overview of popular boot firmware. This includes both closed sourced and/or open source in nature, such as Unified Extensible Firmware Interface (UEFI), coreboot, and Slim Bootloader and their applicable market segments based on product development and deployment requirements.
Traditional system firmware is often complex and closed sourced whereas modern firmware is still a kind of hybrid between closed and open source. But what might a future firmware model look like? The most simplistic boot firmware solution uses open source firmware development. This book helps you decide how to choose the right boot firmware for your products and develop your own boot firmware using open source. Coverage includes:
- Why open source firmware is used over closed source
- The pros and cons of closed and open source firmware
- A hybrid work model: for faster bring-up activity using closed source, binary integrated with open source firmware
What You Will Learn
- Understand the architecture of standard and popular boot firmware
- Pick the correct bootloader for your required target hardware
- Design a hybrid workflow model for the latest chipset platform
- Understand popular payload architectures and offerings for embedded systems
- Select the right payload for your bootloader solution to boot to the operating system
- Optimize the system firmware boot time based on your target hardware requirement
- Know the product development cycle using open source firmware development
Who This Book Is For
Embedded firmware and software engineers migrating the product development from closed source firmware to open source firmware for product adaptation needs as well as engineers working for open source firmware development. A secondary audience includes engineers working on various bootloaders such as open source firmware, UEFI, and Slim Bootloader development, as well as undergraduate and graduate students working on developing firmware skill sets.
Preface: This section to capture the author's personal experience about the current available bootloader solutions for target hardware and why authors think this book might be helpful for the target audience.
Acknowledgement : This section acknowledges the contribution of domain expert(s) who has contributed into this book apart from the authors.
Chapter 1: Introduction about the book : System Firmware: An Essential Guide to Open Source and Embedded Solutions book is a handbook for target audience to learn about the basics of system boot firmware, understand various different types of solutions available while designing system firmware for target embedded system. This book will help its reader to understand the minimal knowledge required to start the firmware journey, understanding the different system firmware architecture and find the right bootloader solution or combinations of firmware's required to boot the platform.
This section would cover:
- Motivation for this book
- Who is the Reader?
- Top reasons to migrate to open source firmware solution from close source
- What are the contents?
Chapter 2 : Starter : To provide the historical introduction about the boot firmware, its origin, what all different solutions available like closed soured boot firmware and open source boot firmware. Define the goals for readers to create their own open source boot firmware for target hardware, create hybrid work model if case SoC vendors still has some proprietary close source firmware to work with open source firmware to develop the target hardware along with non-goals like understanding the architecture of all possible bootloaders, payloads and firmware offerings, understand the bootloader security aspect while developing the product, scope of improving the quality of service for boot firmware using multi core environment, learn from the case study about optimizing boot firmware boot prints and boot time by introducing various concepts.
Chapter 3 : Knowing your Hardware : This section provides detailed understanding of hardware interfaces that firmware needs to manage prior to boot to an operating system. This is a very basic understanding section of system boot firmware without which one really can't make progress further into their bootloader journey. A good understanding of hardware interfaces and how to program those interfaces is a minimum expectation from any BIOS engineer while working on any hardware project. Idea here is to provide ample details on any sample motherboard design and required programmable hardware interface at boot time, for example: UART, SPI, USB, SATA, Display etc.
Chapter 4 : Understanding Bootloader and its minimum requirements : There are many different types of firmware that exist based on underlying hardware requirements like system boot firmware, device firmware, platform security firmware, manageability firmware. Each firmware has its minimum requirements to complete its assigned task to initialize the underlying hardware and/or abstract the hardware to higher level applications. This section is to focus on system boot firmware and provide details about what is a bootloader, what are the basic characteristics a firmware must call it bootloader, finally understanding the minimum requirement to design a bootloader. This book would be like a handbook for the reader where the reader would be in a comfortable position to design its own bootloader at the end of this session. It won't be possible to do so unless the reader has understood the basic expectation from the bootloader and upcoming chapters would guide readers to choose the appropriate bootloader for the target hardware.
Chapter 5: Different types of bootloaders : BIOS as acronym suggest is responsible for Basic Input/ Output System . The BIOS in modern PCs initializes and tests the system hardware components and loads an operating system from a mass memory device. If a developer wants to write their own bootloader on any architecture, (ARM, IA, RISC etc.) then they must gather the appropriate documents (which aren't always known), hence Chapter 3 is to provide those specific details about designing their own bootloader. And this section is to provide the architectural details about the popular or market leading bootloaders along with its applicable market segments because of its characteristics: idea here is to understand the Pros and Cons of each offering.
- EFI came during early development of the first Intel-HP Itanium systems in the mid-1990s. Then transform into UEFI and become widely used bootloaders for consumer electronic products in the modern era. UEFI has several implementations, with the EFI Developer Kit II (EDKII) being the most prominent.
- coreboot , formerly known as LinuxBIOS , is an open software project aimed at replacing proprietary firmware (BIOS or UEFI). So far widely used over specific areas like Chrome platforms like Chromebook, Chromebox, Chrome tablets/ slates, Govt. projects etc. Interestingly in the last few years coreboot has seen a major adaptation by several industry leaders for their product lines.
- Slim Bootloader is an open-source boot firmware, built from the ground up to be small, secure and optimized running on Intel x86 architecture.
Chapter 6: Hybrid Work Model : Open source bootloader development has enormous dependency over SoC vendors for providing the documentation and reference code for CPU, memory and chipset initialization. A real desire to have an entire product developed with an open source concept, be it like SoC, hardware schematics, firmware and software. But the majority of silicon vendors are yet to adopt the open source development model for their products, resulting in sharing SoC reference code as part of license agreement among a small group typically known as Independent BIOS Vendors (IBVs). This section defines the possible hybrid work model where users can still build their open source bootloader solution while working with closed or restricted SoC, hardware platform.
- Firmware Support Package (FSP) - A new industry specification to work with all sorts of possible closed source SoC, CPU and/or hardware design using standard APIs to communicate with any bootloader. Over the last few years, industry has shown great adaptation towards FSP and this eventually helped many SoC vendors to migrate their reference code solutions from closed source code sharing among specific groups to API based open source binary blobs for interoperability with any bootloader.
Chapter 7: Picking the correct payload : As salt is a very important ingredient for preparing good food, the same is also applicable for bootloaders as well, for any bootloader the payload is like salt. There are few bootloaders where payload is already integrated into it by default and one can't likely replace it with other payload offerings. There is some boot firmware to allow selection of payload as per product need. The payload is a very essential entity in boot firmware due to various reasons like, an efficient payload can eventually reduce the boot firmware boot print and allow smooth transitions towards operating system, also provide early interactive interface or test framework to execute various utilities to measure hardware health. This section provides architecture details of all popular payloads and its current offerings to help users to choose the correct payload for their product.
- Tianocore - Mostly integrated with UEFI bootloader by default and widely used payload solution.
- Linuxboot - Perfect payload for simple bootloader like coreboot and allowing more runway for Linux like payload to load compatible operating system,
- Depthcharge - Payload with specific product requirements like Chromebooks.
An idea to share the design principle for future proof concepts like Universal Payload where these payloads are getting mutual benefit from each other and define unified APIs expectations from boot firmware.
Chapter 8: Case Studies : This section to capture the case study done on real hardware on below topics. This real-life example will help users to think through more innovation while designing their own open source boot firmware
* Reduce Firmware boot time : To demonstrate the boot optimization done on a real hardware platform using open source firmware development model.
* Supporting new CPU architecture migration with UEFI: Demonstrate an efficient evaluation board hardware design based on ARM SoC in a vision to reduce the firmware boundary. * Reducing the system firmware boundary with LinuxBoot: Highlighting the value of LinuxBoot in the future system firmware design, not only helps to shrink the firmware space but also brings the value of the boot kernel into firmware to do more powerful operation with ease.* Adopting Hybrid Firmware Development Model: Real life example from product development journey based on latest IA chipset platform to demonstrate hybrid firmware development model combining open source bootloader, payload solutions and closed source binary blobs.
Glossary and Index as applicable for connecting back the main topics.
Subrata Banik is a Firmware Engineer with Intel Corporation and has been involved in firmware development across UEFI, coreboot for IA, and ARM platforms over the course of his career. He has experience working for all leading PC makers. Subrata is active in open source firmware development across different projects such as coreboot, EDKII, etc., and he has more than 600 patches in the open firmware community, and he is one of the top 10 open source firmware contributors. Subrata has 15 patents and is very passionate about learning new technology and sharing knowledge among enthusiast engineers. He has presented at industry events such as the Open Source Firmware Conference, Institute for Security and Technology, Intel Developer Forum, and others.
Vincent Zimmer is a Senior Principal Engineer in the Architecture, Graphics, and Software Group of the Intel corporation. He has been engaged in firmware development for over 25 years and leads the UEFI Security sub-team. Vincent has presented at industry events such as the Open Source Firmware Conference, Linux Fest Northwest, Intel Developer Forum, UEFI Plugfest, Open Compute Project Summit, BlackHat Las Vegas, BSides Seattle, Toorcon, and Cansecwest. In addition to collaborating on many white papers, Vincent has co-authored several books on firmware, papers, and over 400 issued US patents.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Apress |
Auteur(s) | Subrata / Zimmer Banik |
Parution | 30/09/2022 |
Nb. de pages | 628 |
EAN13 | 9781484279380 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse