Muutke küpsiste eelistusi

System Firmware: An Essential Guide to Open Source and Embedded Solutions 1st ed. [Pehme köide]

  • Formaat: Paperback / softback, 628 pages, kõrgus x laius: 235x155 mm, kaal: 997 g, 147 Illustrations, color; 62 Illustrations, black and white; XXX, 628 p. 209 illus., 147 illus. in color., 1 Paperback / softback
  • Ilmumisaeg: 01-Oct-2022
  • Kirjastus: APress
  • ISBN-10: 1484279387
  • ISBN-13: 9781484279380
  • Pehme köide
  • Hind: 57,96 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 68,19 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 628 pages, kõrgus x laius: 235x155 mm, kaal: 997 g, 147 Illustrations, color; 62 Illustrations, black and white; XXX, 628 p. 209 illus., 147 illus. in color., 1 Paperback / softback
  • Ilmumisaeg: 01-Oct-2022
  • Kirjastus: APress
  • ISBN-10: 1484279387
  • ISBN-13: 9781484279380
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 developyour 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.
About the Authors xi
About the Technical Reviewers xiii
Foreword xv
Jonathan Zhang
Preface xix
Acknowledgments xxi
Introduction xxiii
Chapter 1 Introduction
1(44)
Lack of Open System Design
3(1)
Misinterpretation of Firmware Definition
4(1)
Attract the Talent
5(1)
The Importance of Programming Knowledge
6(2)
Specialized Education
8(37)
The Origin of Firmware
10(4)
Firmware Evolution
14(26)
Distinction Between Firmware and Software
40(1)
Introduction of Non-Host Firmware
41(1)
Introduction to Device Firmware
42(1)
Open Source vs. Closed Source
43(1)
Summary
44(1)
Chapter 2 Knowing Your Hardware
45(100)
Computer Architecture
47(21)
Instruction Set Architecture
50(5)
Microarchitecture
55(7)
System Architecture
62(6)
CPU Internals
68(41)
Internals of x86 Processors
68(41)
System Memory Map
109(9)
Legacy Address Range
109(3)
Main Memory Address Range
112(2)
PCI Memory Address Range
114(2)
Main Memory Upper Address Range
116(2)
Bus Architecture
118(15)
Industry Standard Architecture (ISA) Bus
119(1)
Extended Industry Standard Architecture (EISA) Bus
120(1)
Peripheral Component Interconnect (PCI) Bus
121(8)
Peripheral Component Interconnect Express (PCIe) Bus
129(1)
Serial AT attachment (SATA) Bus
130(1)
Universal Serial Bus (USB)
130(2)
ARM Advanced Microcontroller Bus Architecture (AMBA)
132(1)
Platform Runtime Power Management
133(9)
ACPI Hardware/Registers
135(2)
ACPI System Description Tables
137(2)
ACPI Platform Firmware
139(2)
System Power States
141(1)
Summary
142(3)
Chapter 3 Understanding the BIOS and Minimalistic Design
145(68)
What Is the BIOS?
146(13)
Working Principle of BIOS
147(2)
Where Does the BIOS Reside?
149(2)
BIOS Work Model
151(3)
Types of BIOS
154(5)
Designing a Minimalistic Bootloader
159(52)
Minimalistic Bootloader Design on x86 Platform
160(37)
Minimalistic Bootloader Design on the ARM Platform
197(14)
Summary
211(2)
Chapter 4 System Firmware Architecture
213(102)
UEFI Architecture
215(45)
UEFI Specification
217(27)
Platform Initialization Specification
244(16)
Coreboot Architecture
260(31)
Platform Initialization
262(18)
Source Tree Structure
280(11)
Slim Bootloader Architecture
291(21)
Boot Stages
293(19)
Summary
312(3)
Chapter 5 Hybrid Firmware Architecture
315(70)
Understanding the System Firmware Development Model
319(5)
Generic
321(1)
Platform Initialization (PI)
321(3)
Understanding the System Firmware Supply Chain
324(3)
Platform Initialization
324(1)
Wrapper Layer
325(1)
Boot Firmware
326(1)
Spectrum of Open and Closed Source System Firmware
327(3)
Current Industry Trends with Hybrid Firmware
330(7)
Challenges Seen by Silicon Vendors with Open Sourcing
337(6)
Datasheet Dependency
338(1)
Third-Party IP Restrictions
339(1)
Silicon Reference Code Development Without Compatibility
339(1)
Early Platform Enabling with Non-PRQ'ed Silicon
340(1)
Distinguished Product Features
340(1)
Limited Customer Demand
340(1)
Closed-Source Mindset
341(1)
Documentation Is an Afterthought
342(1)
Importance of a Specific System Firmware Architecture
342(1)
Challenges Faced by the Open Community with Closed Sourcing
343(3)
Security
343(1)
Platform Enabling
344(1)
Motivation Is Lagging
344(1)
Hard to Debug
344(1)
Ungoverned Growth for Closed Source Blobs
345(1)
Hybrid Firmware Architecture
346(23)
Ground Rules
346(2)
Firmware Development Using Hybrid Firmware Architecture
348(3)
Conventional Closed Source Firmware in the Hybrid Work Model
351(18)
Application of Hybrid Firmware Architecture
369(13)
Summary
382(3)
Chapter 6 Payload
385(80)
Depthcharge
390(23)
Depthcharge Architecture
391(16)
Depthcharge Boot Flow
407(2)
Depthcharge Code Structure
409(2)
Value-Added Services
411(2)
UEFI Payload
413(14)
UEFI Payload Architecture
415(7)
UEFI Payload Boot Flow
422(2)
UEFI Payload Code Structure
424(2)
Value-Added Services
426(1)
LinuxBoot
427(20)
LinuxBoot Architecture
429(10)
LinuxBoot Boot Flow
439(2)
LinuxBoot Code Structure
441(2)
Value-Added Services
443(4)
Universal Payload Layer (UPL)
447(14)
Universal Payload Image Format
452(3)
Universal Payload Interface
455(3)
Implementation of Universal Payload Layer
458(3)
Summary
461(4)
Chapter 7 Case Studies
465(114)
Reduce FW Booting Time Using Multi-Threaded Environment
467(24)
Coreboot
469(1)
Bootstrap Processor
470(1)
Application Processor
470(1)
Multithreading
470(1)
ChromeOS
471(1)
Crosh
471(1)
Depthcharge
471(1)
Goal and Motivation
472(1)
Implementation Schema
472(4)
Setting Up the Board
476(2)
Boot Time Measurement with existing System Firmware Design
478(3)
Detailed Implementation
481(9)
Firmware Boot Time Optimization for Capsule Update
490(1)
Firmware Boot Time Optimization Conclusion
490(1)
Supporting New CPU Architecture Migration with UEFI
491(26)
Goal and Motivation
497(1)
Implementation Schema
498(4)
Setting Up the Code Base
502(4)
Detailed Implementation
506(11)
Porting a New CPU Architecture (Elixir) Conclusion
517(1)
Reducing the System Firmware Boundary with LinuxBoot
517(22)
Goal and Motivation
522(1)
Implementation Schema
523(4)
Setting Up the Board
527(4)
Detailed Implementation
531(8)
LinuxBoot Conclusion
539(1)
Adopting a Hybrid Firmware Development Model
539(38)
Goal and Motivation
543(1)
Implementation Schema
543(7)
Setting Up the Board
550(4)
Detailed Implementation
554(23)
Hybrid Firmware Development Model Conclusion
577(1)
Summary
577(2)
Appendix A Postcodes 579(6)
Appendix B Data Types 585(4)
Glossary 589(6)
Reference 595(1)
Websites 595(3)
References for the
Chapter 1
598(1)
Books 598(1)
Conferences, Journals, and Papers 598(1)
Specifications and Guidelines 599(1)
Websites 599(2)
References for
Chapter 5
601(2)
Index 603
Subrata Banik is a Firmware Engineer with more than a decade being spent in the computer industry and acquired experiences in system firmware design, development and debugging across various firmware architectures like UEFI, coreboot, Slim bootloader etc. for x86 and ARM platforms. Subrata has profound experience on platform enablement that leads into working for all the leading PC-makers products. Subrata is an active member of open-source firmware (OSF) development across different projects like coreboot, oreboot, flashrom, EDKII etc., where he is one of the leading contributors in the open firmware (coreboot) development. Subrata has received multiple US Patents and is very passionate about learning new technology and sharing knowledge among enthusiast engineers. Subrata has presented his technical talks at industry events such as Open Source Firmware conference, Institute for Security and Technology, Intel Developer Forum etc.





When not writing or working, he can be found enjoying watching sports (especially football) or spending time with his daughter. A fun fact about Subrata is, he is a strong believer of Time travel existence.





Vincent Zimmer has been working on embedded firmware for the last 30 years. Vincent has contributed to or created firmware spanning various firmware initiatives, including the Extensible Firmware Interface, where Vincent presently leads the Security subteam in the UEFI Forum. Vincent has also co-authored various papers and books, along with being a named co-inventor on over 450 US patents.