CE Boot Framework (Compact 2013)

3/26/2014

The CE Boot boot loader framework provides a customizable production-quality boot loader that was initially released with Compact 2013. It can be used by BSPs that are based on the x86 CPU architecture and the ARM architecture. This section describes the implementation of CE Boot for the x86 CPU architecture.

This newer boot loader uses the CE Boot framework, which consists of the following:

  • Core code, which controls the flow of execution, memory mapping, and memory allocation
  • Boot drivers, which provide access to hardware devices
  • A boot driver factory, which creates boot drivers
  • Notification and logging functions, which inform of boot events
  • Boot scenarios, which are a particular combination of drivers

The architecture of CE Boot enables you to reuse code by separating the non-hardware-specific core functions from the hardware-specific boot driver code. By encapsulating boot driver implementation details and only allowing drivers to be accessed through a well-defined, common interface, the boot loader does not need to handle the hardware-specific details in order to use the drivers. CE Boot is also extensible because you can create different boot scenarios by assembling particular combinations of drivers. Another capability of CE Boot is that you can use memory on the heap, so you only allocate the memory that you need.

Although you can create your own boot drivers, the Compact 2013 implementation of CE Boot provides sample boot drivers, including drivers for a boot block (access to persistent storage), terminal, display, download, file system, and transport. You can use the sample drivers as they are, or you can extend them with your own functionality. With these options, you can create various boot scenarios to meet different design goals.

The CE Boot framework was created with the following goals in mind:

  • Reusability. You can reuse the core boot loader code for different devices because the hardware-specific operations are encapsulated by the boot driver code.
  • Extensibility. You can create different boot scenarios by assembling various combinations of drivers, because the drivers are initialized and accessed through a well-defined generic interface.
  • Dynamic memory allocation. CE Boot can use memory on the heap.

In This Section

  • Boot Sequence States
    Describes the states that CE Boot cycles through to transition from device power-up to starting the OS image.
  • CE Boot Code
    Discusses the main APIs in the core, notification and logging, boot driver, and boot driver factory code.
  • Boot Driver Examples
    Provides examples of the boot drivers that are included with Windows Embedded Compact 2013.

See Also

Concepts

BSP Boot Loader Frameworks
BSP Development