{"product_id":"system-firmware-9781484279380","title":"System Firmware","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eIntermediate user level\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003ePreface: \u003c\/b\u003eThis 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.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eAcknowledgement\u003c\/b\u003e: This section acknowledges the contribution of domain expert(s) who has contributed into this book apart from the authors.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 1: Introduction about the book\u003c\/b\u003e: \u003cb\u003e\u003ci\u003eSystem Firmware: An Essential Guide to Open Source and Embedded Solutions \u003c\/i\u003e\u003c\/b\u003ebook 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.\u003c\/p\u003e  \u003cp\u003eThis section would cover:\u003c\/p\u003e  \u003cul\u003e\n\u003cli\u003eMotivation for this book\u003c\/li\u003e\n\u003cli\u003eWho is the Reader?\u003c\/li\u003e\n\u003cli\u003eTop reasons to migrate to open      source firmware solution from close source\u003c\/li\u003e\n\u003cli\u003e  What are the contents?\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003e\u003cb\u003eChapter 2\u003c\/b\u003e: \u003cb\u003eStarter\u003c\/b\u003e: 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.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 3\u003c\/b\u003e: \u003cb\u003eKnowing your Hardware\u003c\/b\u003e: 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.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 4\u003c\/b\u003e: \u003cb\u003eUnderstanding\u003c\/b\u003e \u003cb\u003eBootloader and its minimum requirements\u003c\/b\u003e: 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.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 5: Different types of bootloaders\u003c\/b\u003e: BIOS as acronym suggest is responsible for \u003cb\u003eBasic Input\/ Output System\u003c\/b\u003e. 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.\u003c\/p\u003e  \u003cp\u003e \u003c\/p\u003e  \u003cul\u003e\n\u003cli\u003e\n\u003cb\u003eEFI\u003c\/b\u003e came during early development of      the first Intel–HP Itanium systems in the mid-1990s. Then      transform into \u003cb\u003eUEFI\u003c\/b\u003e 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.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003ecoreboot\u003c\/b\u003e, formerly known as \u003cb\u003eLinuxBIOS\u003c\/b\u003e, 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.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eSlim Bootloader\u003c\/b\u003e is an open-source boot firmware,      built from the ground up to be small, secure and optimized running on      Intel x86 architecture.\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003e\u003cb\u003eChapter 6: Hybrid Work Model\u003c\/b\u003e: 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.\u003c\/p\u003e   \u003cp\u003e\u003c\/p\u003e  \u003cul\u003e\u003cli\u003e\n\u003cb\u003eFirmware Support Package (FSP)\u003c\/b\u003e - 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.\u003c\/li\u003e\u003c\/ul\u003e \u003cp\u003e\u003cb\u003eChapter 7: Picking the correct payload\u003c\/b\u003e: 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.\u003c\/p\u003e  \u003cp\u003e \u003c\/p\u003e  \u003cul\u003e\n\u003cli\u003e\n\u003cb\u003eTianocore\u003c\/b\u003e – Mostly integrated with UEFI      bootloader by default and widely used payload solution.\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eLinuxboot\u003c\/b\u003e – Perfect payload for simple      bootloader like coreboot and allowing more runway for Linux like payload      to load compatible operating system,\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eDepthcharge\u003c\/b\u003e – Payload with specific product      requirements like Chromebooks.\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003eAn 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.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 8: Case Studies\u003c\/b\u003e: 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\u003c\/p\u003e  \u003cp\u003e \u003c\/p\u003e  \u003cp\u003e·       \u003cb\u003eReduce Firmware boot time\u003c\/b\u003e: To demonstrate the boot optimization done on a real hardware platform using open source firmware development model.\u003c\/p\u003e  ·       Supporting new CPU architecture migration with UEFI: \u003cb\u003eDemonstrate an efficient evaluation board hardware design based on ARM SoC in a vision to reduce the firmware boundary.\u003c\/b\u003e ·       Reducing the system firmware boundary with LinuxBoot: \u003cb\u003eHighlighting 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.\u003c\/b\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e \u003cp\u003e·       \u003cb\u003eAdopting Hybrid Firmware Development Model: \u003c\/b\u003eReal 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.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e  Apart from this \u003cb\u003eAppendix\u003c\/b\u003e sections for source code references based on Chapter 8 Case Study.\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eGlossary\u003c\/b\u003e and \u003cb\u003eIndex\u003c\/b\u003e as applicable for connecting back the main topics.\u003c\/p\u003e","brand":"Apress","offers":[{"title":"Default Title","offer_id":52084962656599,"sku":"9781484279380","price":46.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484279380.jpg?v=1762207739","url":"https:\/\/bookcurl.com\/products\/system-firmware-9781484279380","provider":"Book Curl","version":"1.0","type":"link"}