Introduction to Embedded Bootloader Intel SSG/SSD/UEFI Legal Disclaimer

Introduction to Embedded Bootloader Intel SSG/SSD/UEFI Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm This document contains information on products in the design phase of development. All products, computer systems, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. Intel, Intel Atom, Intel Core, and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. * Other names and brands may be claimed as the property of others.

Copyright 2011, Intel Corporation. All rights reserved. Agenda Define embedded system Standard Boot Loader Embedded Boot Loader Stages of embedded boot loader Available embedded boot loader Non IA boot loaders Embedded, IA and Compute Continuum Reasons and Rational IA Boot Loader Components of a typical Embedded System Embedded is a specialized computing system. System BIOS Boot Sequence

Source: Gustavo Duarte Reset Vector BIOS is a layer between OS and hardware Every platform needs a specific BIOS. But an OS can load on any platform. BIOS provides low level hardware details through the OS by means of ACPI and MP tables besides Run time ISRs. BIOS knows platform in details Interrupt routing Code updateCode update Chipset workarounds Memory usage

System BIOS initializes low-level platform details. How Commercial BIOS Works? Power-ON/ Reset start at 0xFFFFFFF0 Initialize RAM, PCI, Video (real mode 16 bits) Execute POST Configure Interrupt Services Rese t Execute SETUP Ye s F1 / DEL?

N o MBR Important Important memory memory regions regions during during BIOS layout the memory regions for OS to operate properly. boot boot Possible BIOS Issues Redundant Modern Operating Systems initialize hardware by itself and dont use BIOS Interrupt services. Performance Commonly runs on real mode. Suboptimal Some commercial BIOS configure devices in a suboptimal way. Cost Expensive for embedded platforms. BUGs

Can not fix it yourself! BIOS has inherent constraints for embedded systems! Embedded Bootloaders Foundational component for embedded software. Possible requirements of embedded bootloader: Small Footprint Easy Portability Fast Boot, or Capability to support certain specific features. Development of a bootloader Write from scratch Tailor an existing open source bootloader to suit the need. Use 3rd party toBootloaders develop Embedded have diversified

requirements. Embedded Bootloader Architecture In general, bootloader architecture depends on: Processor family, Chipsets present on the hardware platform, Boot device, and OS running on the device. Effects of the processor family on bootloader architecture: Even when two platforms are based on similar processor cores, the bootloader architecture may differ based on the SoC. An x86 bootloader might need to switch to protected mode to load a kernel bigger than the 1MB real-mode limit. Non x86 embedded platforms cannot avail legacy BIOS services. A bootloader for a device designed around the StrongARM processor has to know whether it's booting the system or waking it up from sleep, because the processor starts execution from the top of its address space. Embedded Bootloaders require fixed functional characteristic. Embedded Bootloaded Features At the minimum, a bootloader is responsible for

Processor- and board-specific initializations, Loading a kernel, Initial ramdisk into memory, and Passing control to the kernel. In addition Might provide BIOS services (POST, firmware download, passing memory layout and configuration information to the kernel). Decryption for encrypted firmware images. Debug monitor to load and debug stand-alone code on to the target. Failure-recovery mechanism to recoup from kernel corruption. Require device-specific modifications. Embedded Bootloaders need such to beasextensible. Update capacity through interfaces UART, USB or Ethernet. Deployment Comparison of Boot Flows PC BIOS Flow

Bootloader Flow Bootloader FLASH FLASH Kernel BIOS (compressed) Rootdisk Bootstrap (compressed) Kernel Kernel RAM RAM

Rootdisk User Memory User Memory Embedded Bootloaders require specialized boot steps. Rootdisk Bootstrapping for Embedded Bootloader Bootstrapping is the mechanism to transfer a bootloader image from the host development system to the target's boot device. Bootstrapping is straightforward on PC-compatible systems. Embedded devices do not have a generic method for bootstrapping. The boot suite has to be architected into two steps, each loaded at a different address:

The first step (the 128-byte image) is part of processor firmware. Note: Processor-resident microcode (the first step) cannot function as the bootstrapper because a bootstrapper needs to have the capability to program flash memory. Many types of flash chips can be used with a processor, the bootstrapper code needs to be board-specific. The second step lives in the on-chip SRAM, so it can be up to 2KB. This is the bootstrapper. The bootstrapper downloads the actual bootloader image from an external host to the top of flash memory. The bootloader gets control when the processor powers on in normal operation mode. Many embedded controller chips do not support a bootstrap mode. Instead, the bootloader is written to flash via a JTAG interface. Primarily Embedded Bootloaders do not follow exact steps of System BIOS. Developing Embedded Bootloader Understand the hardware environment Memory mapping, I/O mapping, and Interrupt Vectors. Understanding program loader:

the transition of control from ROM to RAM, initializing the RAM, and loading "C" code in RAM then transferring the control to "C" code. Necessary programming and debugging tools. Make sure programming and debugging tools are compatible with the hardware environment. Board design meets the proper spec. Perform some simple tests to verify that the hardware is working. Proper board design is very important for functional embedded bootloader. How Typical Embedded Bootloader Works? Power-ON/ Reset start at 0xFFFFFFF0 Switch to Protected Mode 32-bits Execute payload Initialize chipsets, SIO

(Linux, LILO, etherboot) Configure serial for debug Initialize DRAM Basic Bootloader Architecture/Flow Linux Boot in a nutshell Power-ON/ Reset Bootloader System startup First Stage bootloader or Initial Boot Loader (IPL) Master Boot Record Second Stage bootloader or Secondary Program Loader (SPL) LILO, GRUB, etc

Kernel Init Linux User space Functional Application Operation Multi-stage bootloader brings flexibility! Source: Trego Ltd. WinCE and Bootloader Source: Microsoft From performance scenario (projected): (loadcepc boot time 30-40 sec]) > (BIOS_load_image boot time 20-30 sec) >> (IPL < 10 sec) Todays WinCE has specific bootloader steps.

Available Bootloaders (relative list, not a comprehensive one) Bootloa Video Suppor der t LILO GRUB Loadlin No No No Architectures Description The main disk bootloader for Linux* GNU's successor to LILO Loads Linux from DOS Loader to boot systems through Ethernet cards Etherbo ot

No CoreBoo t blob PMON shboot No Linux-based BIOS (LinuxBIOS) replacement No Yes Loader from the LART hardware project Loader used in Agenda VR3 No Main loader of the LinuxSH project U-Boot

Yes RedBoot Yes Universal loader based on PPCBoot and ARMBoot eCos-based loader x86 ARM PowerP Super m68 MIPS C H k X X X X

X X X X X X X X X X Need a flexible and extensible x86 bootloader. X X X

Available Bootloaders for Linux Bootloaders for Multiple Architectures U-Boot (http://sourceforge.net/projects/u-boot/) or ( http://www.denx.de/wiki/U-Boot/WebHome) Universal Boot Loader supports PPC, ARM, and others RedBoot (http://www.redhat.com/services/custom/embedded/redboot/) RedHat Embedded Debug and Bootstrap Based on the eCos HAL, RedHat. Capable of flash and network booting of Linux* kernel. Supports ARM, MIPS, PowerPC, and x86 Smart Firmware (http://www.codegen.com/SmartFirmware/) Written entirely in ANSI C. Designed to be very easy and fast to port. Supports PowerPC, ARM, x86, MIPS, Sparc, M68k Available Bootloaders for Linux Bootloaders for x86 Architectures

LILO (Linux* LOader) (http://lilo.alioth.debian.org/) GRUB (GRand Unified Bootloader) ( http://www.gnu.org/software/grub) (planned for ARM) ( http://arm-grub.sourceforge.net/) Etherboot (http://etherboot.org/wiki/) Open source network bootloader and substitute of proprietary PXE. CoreBoot (http://www.coreboot.org/) Based on LinuxBIOS (http://www.acl.lanl.gov/linuxbios/index.html) Replacing the normal BIOS with fast boot from a cold start. Available Bootloaders for Linux Bootloaders for ARM* Architectures Blob (http://sourceforge.net/projects/blob/) Boot Loader Object for StrongARM based platforms. Bootloaders for PPC* Architectures Yaboot (http://yaboot.ozlabs.org/) It works on New class PowerMacs (iMac and later) only.

Embedded, IA and Compute Continuum Embedded Solutions SoC derivatives from different form factors Architectural Migration BIOS IA Customized Boot Loaders (3rd Party or Open Source) Other Architectures Boot Loaders

Primarily Fixed Functionality Generic Functionality Compute Continuum IA Boot Loader is a natural progression for Embedded Solutions. IA Bootloader Distribution and Scalability OS Handoff Unprotec ted Boot Device Device Enumeration Chipset Init Intel Restricted Secret Arch.

Memory Init (MRC) Cache Init uCode Patch Initial HW State Issues related to IA based bootloader development: IA is complex with superior feature set IA has inherent IP concerns IA initialization is relatively complex RS-NDA is required for customer to have access source to modify reference FW for Customer boards Intel is addressing the embedded bootloader need. Reasons and Rational BIOS BIOS has inherent constraints for embedded systems No common framework for embedded framework to take advantages.. Such as OS

Linux, WinCE, and other embedded OSes. Embedded Bootloaders have diversified requirements. Embedde Embedded Bootloaders require fixed functional character Embedded Bootloaders need to be extensible. d IA Need a flexible and extensible x86 bootloader. IA IA Boot Loader is a natural progression for Embedded Solu Bootload Focus is to connect the flexible BIOS and embedded er bootloader, and target the generic IA architecture to meet the end-to-end solution for embedded! Intel & Embedded Bootloader Display Memory Reset

Bus ROM Update Legacy Compatibility Network OS Services Storage Simple I/O Peripheral Drivers Security Power Management System Management Dynamic Setup

Virtualization BIOS Intel BLDK Intel BLDK Provides Flexibility to Scale System Initialization for Embedded Systems

Recently Viewed Presentations

  • Starting System Fundamentals - Cengage

    Starting System Fundamentals - Cengage

    Starting System Fundamentals Chapter 28 Objectives Explain electric motor principles Describe starter parts Understand the operation of a solenoid Discuss starter drive operation Introduction Starter system Important part of the automotive electrical system Without a starter Car would have to...
  • University of Ni Faculty of Mechanical Engineering SEMIGROUPS

    University of Ni Faculty of Mechanical Engineering SEMIGROUPS

    Bishop: Every theorem of classical . mathematics presents a . challenge: find a . constructive version with . a constructive proof. This constructive version can be obtained by. strengthening the conditions or weakening the. conclusion of the theorem. BISH -...
  • CF

    CF

    The epidemiology of HIV infection among persons from HIV-endemic countries in Ontario Robert S. Remis MD Department of Public Health Sciences University of Toronto
  • Anglo Saxon Period 449 - 1066

    Anglo Saxon Period 449 - 1066

    Arial Lucida Sans Book Antiqua Wingdings 2 Wingdings Wingdings 3 Calibri Arial Black Bradley Hand ITC Apex Anglo Saxon Period 449 - 1066 BEOWULF: AN EPIC HERO Literary Characteristics of Anglo-Saxon period THE ELEGY Medieval Period 1066-1485 Canterbury Tales (cont)...
  • Authenticity of Hadith - Islam Ahmadiyya

    Authenticity of Hadith - Islam Ahmadiyya

    Types of Ahadith; according to the qualities of narrators. Adapted from HadiqatusSaliheen Page 8-9. Maqbool ( accepted) Murdood(rejected) Sahih ( sound and authenticated) Hassan ( good) Dhaeef (weak) Mauzoo (fabricated) Many pious, truthful narrators with good memory. Many pious, ruthful...
  • Farm Management - Department of Agricultural Economics

    Farm Management - Department of Agricultural Economics

    Farm Management Chapter 2 Management and Decision Making Chapter Outline Functions of Management Strategic Farm Management Tactical Decision Making Characteristics of Decisions The Decision-Making Environment in Agriculture Chapter Objectives To understand the functions of management To present the steps in...
  • Battlefield stories - Professional Underwriters

    Battlefield stories - Professional Underwriters

    Engineer's review and approval of Shop Drawings and other submittals (except design calculations and design drawings) will be only for the purpose stated in Paragraph 6.17.D.1. E. Contractor shall not be responsible for the adequacy of the performance or design...
  • Huge Tower Proposed!  Up to a 60-foot tower

    Huge Tower Proposed! Up to a 60-foot tower

    Alternatives exist for City radio signal. The City did not disclose visual impacts or evaluate alternatives. Quality of life and property value impacts! SaveOldRocky.org. Butcher Road - City may not be able to stop this here!!! From Summit of Old...