Embedded Firmware Solutions : : Development Best Practices for the Internet of Things.

Saved in:
Bibliographic Details
:
TeilnehmendeR:
Place / Publishing House:Berkeley, CA : : Apress L. P.,, 2015.
©2015.
Year of Publication:2015
Edition:1st ed.
Language:English
Online Access:
Physical Description:1 online resource (215 pages)
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Intro
  • Contents at a Glance
  • Contents
  • About the Authors
  • About the Technical Reviewers
  • Acknowledgments
  • Foreword
  • Introduction
  • Chapter 1: Introduction
  • What Is Embedded Firmware?
  • Where Is Firmware?
  • What Do Firmware Engineers Do?
  • Firmware Preparation for New Hardware
  • The Mystery of Bits
  • Programming Guides
  • The Intel® Firmware Support Package
  • The Uniqueness of Embedded Firmware
  • The Choice of Firmware Stacks
  • Welcome to the Era of the Internet of Things
  • Technical Coverage in This Book
  • The Future of Firmware
  • Chapter 2: Firmware Stacks for Embedded Systems
  • Is a One-Size-Fits-All Solution Possible?
  • Microkernel
  • Real-Time Operating S ystem (RTOS)
  • Legacy BIOS
  • Implementations of the UEFI Framework
  • Open Source Firmware Stacks
  • Proprietary Firmware Stacks
  • Make o r Buy
  • The Advantages of Outsourcing
  • The Disadvantages of Outsourcing
  • In-House Development
  • Summary
  • Chapter 3: Intel® Firmware Support Package (Intel® FSP)
  • The Intel FSP Philosophy
  • What Is in Intel FSP?
  • Intel FSP Binary Format
  • Sample Boot Flow
  • Locating the Entries of Intel FSP
  • The Hard Way to Find Intel FSP APIs: Use Data Structure
  • The Easy Way to Find FSP APIs: Use Hard-Coded Constants
  • Programming Interface: The APIs of Intel FSP
  • TempRamInit
  • FspInitEntry
  • NotifyPhase
  • Intel FSP Output
  • API Execution Status
  • Temporary Memory Data HOB
  • Non-Volatile Storage HOB
  • Sample Code for Parsing HOBs
  • Customization of Intel FSP
  • Downloading Intel FSP
  • Microcode Patches
  • Relocating Intel FSP
  • Integration and Build
  • The Future of Intel FSP
  • What Is Coming in the Following Chapters
  • Chapter 4: Building coreboot with Intel FSP
  • The Introduction of coreboot
  • The Philosophy of coreboot
  • A Brief History
  • v1: 1999-2000
  • v2: 2000-2005
  • v2+: 2005-2008.
  • v3: 2006-2008
  • 2008 LinuxBIOS Renamed "coreboot"
  • v4: 2009-2012
  • v4+: 2012-2014
  • Further Reading
  • Prerequisites for Working with coreboot
  • Community Organization
  • Git and Gerrit
  • Git Commit Messages
  • coreboot Sign-off Procedure
  • Developer's Certificate of Origin 1.1
  • Adding Your Sign-off
  • Working with the coreboot Community
  • coreboot Do's
  • coreboot Don'ts
  • Nonsource Binaries in coreboot
  • A Hands-on Example: Building coreboot for the MinnowBoard MAX Mainboard
  • Environment
  • Hardware: MinnowBoard MAX
  • MinnowBoard MAX Platform Details
  • Development Directory
  • Downloading Intel FSP
  • Installing Intel FSP
  • Downloading the coreboot Source
  • coreboot Toolchain
  • coreboot Commit Hooks
  • Creating a coreboot Development Branch
  • Building the Mainboard
  • On the Menuconfig Menu
  • On the Chipset Menu
  • On the Devices Menu
  • Build
  • Summary of Commands
  • Flashing the ROM
  • Preparing the Flash Programmer
  • Flashing the ROM Image
  • coreboot Internals
  • Boot Stages
  • Additional Files
  • CBFS
  • An Example of CBFS
  • CBFS Size
  • Special Binaries
  • Boot Flow Using Intel FSP
  • Reset Vector and Bootblock
  • romstage
  • ramstage
  • Payload
  • coreboot Source
  • coreboot Device Tree
  • Chips and Devices
  • Device Tree Variables
  • A Device Tree Example
  • Chip Operations
  • Device Operations
  • coreboot Hardwaremain State Machine
  • State Machine States
  • State Machine Callbacks
  • Mainboard
  • The Chipset Driver
  • Chipset FSP UPD Options
  • The FSP Driver
  • Kconfig
  • xcompile
  • Payloads
  • SeaBIOS
  • GRUB 2
  • FILO
  • iPXE
  • TianoCore
  • Depthcharge
  • U- Boot
  • Memtest86+
  • libpayload
  • coreboot Troubleshooting and Debugging
  • Postcodes
  • Serial Debug
  • EHCI USB Debug
  • Summary
  • Chapter 5: Chrome book Firmware Internals
  • About Chrome book and Chrome OS
  • Chrome OS Firmware Overview.
  • Chrome OS Security Philosophy
  • Chrome OS Security Guiding Principles
  • Power wash
  • Chrome OS Boot Modes
  • Verified (Normal) Mode
  • Recovery Mode
  • Developer Mode
  • Chrome OS Coreboot
  • x86
  • ARM
  • Depth charge Payload
  • libpayload
  • Verified Boot
  • Verified Boot and Kernel Security
  • Chrome OS Firmware Boot Log
  • Boot Times Log
  • Chrome OS Firmware Event Log
  • Google SMI Linux Kernel Driver
  • Chrome OS Extensions to the Firmware Image
  • FMAP
  • BOOT_STUB FMAP Section
  • Chrome OS Firmware RW FMAP Sections
  • An fmap.dts (RW_SECTION_A) Example
  • Google Binary Block (GBB)
  • GBB: HWID v3
  • GBB: Firmware Bitmaps
  • GBB: Firmware Keys
  • GBB: Boot Flags
  • Vital Product Data ( VPD)
  • Firmware TPM Usage
  • Chrome OS Firmware Update
  • Chrome OS Utilities
  • flashrom
  • gbb_utility
  • GBB Flags Utility Script: set_gbb_flags.sh
  • crossystem
  • mosys
  • Google Embedded Controller
  • Power Sequencing
  • Battery Charging
  • Thermal Management
  • Keyboard Controller
  • Other Peripheral Controls
  • Chrome EC Software Sync
  • Software Sync Steps
  • Summary
  • Chapter 6: Intel FSP and UEFI Integration
  • Introduction to EFI
  • Introduction to FSP
  • Introduction to EDK II
  • Summary
  • FSP Components
  • FSP Wrapper Boot Flow
  • Generic FSP Wrapper Boot Flow
  • Normal Boot
  • Boot Flow
  • Memory Layout for a Normal Boot Flow
  • FSP Normal Boot Data Structure
  • S3 Boot
  • Boot Flow
  • S3 Memory Layout
  • S3 NV Data Passing
  • Capsule Flash Update
  • Boot Flow
  • Capsule Update Memory Layout
  • Recovery Boot Flow
  • FSP Recovery Memory Layout
  • coreboot Payload Based upon EDK II
  • Building Minnow and MinnowMax with FSP
  • Future of the Intel FSP
  • Conclusion
  • Chapter 7: Building Firmware for Quark Processors
  • Overview of UEFI and PI
  • History of Implementations and Specifications
  • Introduction to EDK II Building Blocks.
  • PKG: Packaging
  • MdePkg
  • MdeModulePkg
  • IntelFrameworkPkg
  • IntelFrameworkModulePkg
  • Packages
  • PCD: Platform Configuration Database
  • Syntax
  • DEC: Platform Declaration File
  • Syntax
  • DSC: Platform Description File
  • FDF: Flash Description File
  • Syntax
  • Build: The EDK II Build Command
  • INF: INF File
  • More Information
  • Introduction to the EDK II Subset
  • Introduction to Quark
  • ROM Flash Image Size Optimization
  • Fixed Resource
  • DRAM/SMRAM
  • Remove Features
  • Reduce Features
  • Compiler Options
  • Build Options
  • Results of the TinyQuark Optimization
  • RAM Footprint Optimization
  • Optimization
  • Result of Memory Usage Optimization
  • Conclusion
  • Chapter 8: Putting It All Together
  • RTOS and Intel FSP
  • Intel FSP and Open Source Philosophy
  • Customization and Production of Intel FSP
  • It Is a Community Effort After All
  • Appendix A: Sample Boot Setting File (BSF)
  • Index.