IT tutorials
 
Windows
 

Windows 8 : Navigating and Understanding Firmware Options

- Free product key for windows 10
- Free Product Key for Microsoft office 365
- Malwarebytes Premium 3.7.1 Serial Keys (LifeTime) 2019
2/7/2013 11:22:57 AM

The startup process involves firmware, firmware interfaces, and an operating system. During startup, firmware is the first code that runs. Firmware performs basic initialization of the computer and provides the services that allow a computer to start loading an operating system.

Platform firmware is implemented in motherboard-chipsets. All computers—whether tablets, desktops, or laptops—have motherboard-chipsets. There are many types of motherboard-chipsets, and although older motherboard-chipsets might not be updatable, most newer ones have updatable firmware. Chipset firmware is separate and different from the computer’s underlying firmware interface.

Windows for the ARM processor architecture, also called Windows On Arm (or simply WOA), is designed with platform firmware that is implemented in a motherboard chipset as well. With WOA though, the board is a series of silicon layers packaged together in a very small form factor called a System on Chip (SoC).

Firmware Interface Types and Boot Data

Every computer has firmware, yet it is the interface between that firmware and the operating system that handles the startup process. The way a firmware interface works and the tasks it performs depend on the type of firmware interface. Currently, the prevalent firmware interfaces are:

  • Basic input/output system (BIOS)

  • Extensible Firmware Interface (EFI)

  • Unified Extensible Firmware Interface (UEFI)

A computer’s BIOS, EFI, or UEFI provides the hardware-level interface between hardware components and software. Like chipsets themselves, BIOS, EFI, and UEFI can be updated. Most technical documentation refers to a computer’s firmware interface simply as firmware. For example, documentation may specify to make “such and such a change in firmware” or to “check firmware.” Technically, you make the change in the firmware interface, and the firmware interface makes the change in firmware.

UEFI is both a type of firmware interface and an industry standard. UEFI, as a firmware interface, is modular and does not necessarily serve the same purpose or provide the same functionality as BIOS or EFI. UEFI, as a standard, is designed to provide extensible and testable interfaces. For WOA, UEFI is the lowest layer of the system and as with other chip architectures, UEFI provides the services necessary to load the operating system. WOA also supports TPM for trusted boot and hardware-based drive encryption.

It is also important to understand that BIOS, EFI, and UEFI work in distinctly different ways. BIOS is based on x86, 16-bit, real-mode architecture and was originally designed to get a computer started after the computer was powered on. This is why BIOS performs firmware-to-operating-system interfacing and platform initialization.

Regardless of the firmware interface type, Windows 8 uses a pre–operating system boot environment. The boot environment is an extensible abstraction layer that allows the operating system to work with multiple types of firmware interfaces without requiring the operating system to be specifically written to work with these firmware interfaces. Within the boot environment, startup is controlled by using the parameters in the boot configuration data (BCD) store.

All computers running Windows Vista and later have a BCD store. The BCD store is contained in a file called the BCD registry. The location of this registry depends on the computer’s firmware as follows:

  • On BIOS-based operating systems, the BCD registry file is stored in the \Boot\Bcd directory of the active partition.

  • On EFI-based operating systems, the BCD registry file is stored on the EFI system partition.

Entries in the BCD store identify the boot manager to use during startup and the specific boot applications available. The default boot manager is the Windows Boot Manager. Windows Boot Manager controls the boot experience and enables you to choose which boot application is run. Boot applications load a specific operating system or operating system version. For example, the boot application for Windows 8 is the Windows Boot Loader. This allows you to boot BIOS-based and EFI-based computers in much the same way.

Typically, you can press F8 or F12 during startup of the operating system to access the Advanced Boot Options menu and then use this menu to select one of several advanced startup modes, including Safe Mode, Enable Boot Logging, and Disable Driver Signature Enforcement. These advanced modes temporarily modify the way the operating system starts to help you diagnose and resolve problems. However, they don’t make permanent changes to the boot configuration or to the BCD store.

Boot Services, Run-Time Services, and Beyond

BIOS manages the preboot data flow between the operating system and attached devices, such as the video adapter, keyboard, mouse, and hard disk. When BIOS initializes a computer, it first determines whether all attached devices are available and functioning, and then it begins to load the operating system.

Over the years, these basic features of BIOS were expanded to encompass the following:

  • Boot services Refers to the collection of interfaces and protocols that are present in the boot environment. The services at a minimum provide an operating system loader with access to platform capabilities required to complete the operating system boot. These services are also available to drivers and applications that need access to platform capabilities. Boot services are terminated after the operating system takes control of the computer.

  • Run-time services Refers to the interfaces that provide access to underlying platform-specific hardware, such as timers, that might be useful during operating system run time. These services are available during the boot process but also persist after the operating system loader terminates boot services.

  • Advanced Configuration and Power Interface (ACPI) Refers to a table-based interface to the system board that enables the operating system to implement operating system–directed power management and system configuration.

  • Services for System Management BIOS (SMBIOS) Refers to a table-based interface that is required by the Wired for Management Baseline (WMB) specification and used to relate platform-specific management information to the operating system or to an operating system–based management agent.

Generally, computers with BIOS use hard disks that have master boot record (MBR) partitions. To break free of the 16-bit roots of BIOS, Intel developed EFI as a firmware implementation for its 64-bit Itanium-based processors. EFI is based on x64, 64-bit, real-mode architecture. As with BIOS, EFI performs firmware-to-operating-system interfacing, platform initialization, and other functions. With the introduction of EFI, Intel also provided a new table architecture for hard disks, called the GUID partition table (GPT).

UEFI

As Intel began developing EFI, Intel developers and others around the world began to recognize the need to break the tie between firmware and processor architecture. This led to the development of UEFI. The UEFI 2.0 specification was finalized in January 2006 and revised in April 2011 as UEFI 2.3.1. The UEFI specifications define a model for the interface between operating systems and platform firmware. The interface consists of data tables that contain platform-related information, as well as boot and run-time service calls that are available to the operating system and its loader. The interface is independent of the processor architecture. Because UEFI abstracts the processor architecture, UEFI works with computers that have x86, x64, ARM, or an alternative architecture. As with EFI, computers with UEFI generally use hard disks that have GPT partitions. However, UEFI doesn’t replace all the functionality in either BIOS or EFI and can, in fact, be wrapped around BIOS or EFI.

Note

REAL WORLD The UEFI 2.3.1 specification is over 2,200 pages long. To save you a tremendous amount of reading, I’ve summarized its core capabilities here.

In UEFI, the system abstraction layer (SAL) is the firmware that abstracts platform implementation differences and provides the basic interface to all higher-level software. UEFI defines boot services and run-time services.

UEFI boot services include:

  • Event, timer, and task priority services that create, wait for, signal, check, and close events; set timers; and raise or restore the priority of tasks

  • Memory allocation services that allocate or free memory pages, get memory maps, and allocate or free pooled memory

  • Driver model boot services that handle protocol interfaces for devices, open and close protocol streams, and connect or disconnect from controllers

  • Image services that load, start, and unload images

  • Miscellaneous services that set watchdog timers, copy and set memory, install configuration tables, and perform cyclic redundancy checking (CRC) calculations

UEFI run-time services include:

  • Variable services that get, set, and query variables

  • Time services that get and set time and get and set wakeup time

  • Virtual memory services that set virtual address mapping and convert memory pointers

  • Miscellaneous services that reset the computer, return counters, and pass information to the firmware

UEFI defines architecture-independent models for EFI-loaded images, device paths, device drivers, driver signing, and secure boot. It also defines the following:

  • Console support, which allows simple text and graphics output.

  • Human Interface Infrastructure support, which describes the basic mechanisms for managing user input and provides definitions for related protocols, functions, and type definitions that can help abstract user input.

  • Media support, which allows I/O access to file systems, files, and media devices.

  • Peripheral Component Interconnect (PCI), small computer system interface (SCSI), and Internet small computer system interface (iSCSI) bus support, which allows I/O access across a PCI, SCSI, or iSCSI bus, as well as SCSI or iSCSI boot.

  • Universal serial bus (USB) support, which allows I/O access over USB host controllers, USB buses, and USB devices.

  • Compression support, which provides algorithms for compressing and decompressing data.

  • ACPI table support, which allows installation or removal of an ACPI table.

  • EFI byte code virtual machine support, which allows loading and executing EFI device drivers.

  • Network protocol support, which defines the Simple Network Protocol (SNP), Preboot Execution Environment (PXE), and Boot Integrity Services (BIS) protocols. SNP provides a packet-level interface to network adapters. PXE is used for network access and network booting. BIS is used to check the digital signature of a data block against a digital certificate for the purpose of checking integrity and authorization. PXE uses BIS to check downloaded network boot images before executing them.

  • Managed network protocol support, which defines the Managed Network Service Binding Protocol (MNSBP) and the Managed Network Protocol (MNP). These services allow multiple event-driven drivers and applications to access and use network interfaces simultaneously. MNSBP is used to locate communication devices that are supported by an MNP drive and manage instances of protocol drivers. MNP is used by drivers and applications to perform raw asynchronous network-packet I/O.

  • Network addressing protocol support, which defines the following protocols: Address Resolution Protocol Service Binding Protocol (ARPSBP), Address Resolution Protocol (ARP), DHCPv4, DHCPv4 service binding, DHCPv6, and DHCPv6 service binding.

  • Miscellaneous network protocol support, which defines the following protocols: virtual local area network (LAN) configuration, EAP/EAP management, TCPv4, TCPv4 service binding, TCPv6, TCPv6 service binding, IPv4, IPv4 service binding and configuration, IPv6, IPv6 service binding and configuration, IPSec and IPSec2 configuration, FTPv4, FTPv4 service binding, UDPv4, UDPv4 service binding, UDPv6, UDPv6 service binding, Multicast TFTPv4, and Multicast TFTPv6.

Note

With WOA, ACPI is used for plug and play enumeration of devices (touch controller, display, and so on) during boot and for power management of devices outside of the SoC. Otherwise, there is no device tree or ability to discover what is connected to a SoC or determine how the SoC is connected.

To be clear, UEFI is not designed to replace either BIOS or EFI. Although UEFI uses a different interface for boot services and run-time services, some platform firmware must perform the functions that BIOS and EFI need for system configuration and setup because UEFI does not do this. For this reason, UEFI is often implemented on top of traditional BIOS and EFI, in which case UEFI takes the place of the initialization entry points into BIOS or EFI.

 
Others
 
- Windows Vista : Secure Your Networked PC (part 3) - Scan Your System for Open Ports
- Windows Vista : Secure Your Networked PC (part 2) - Set Up the Windows Firewall
- Windows Vista : Secure Your Networked PC (part 1) - Close Vista's Backdoors, The Security Center and the Firewall
- Windows 8 : Touch and Gestures - Touch Mice
- Windows 8 : Touch and Gestures - Touch Keyboards
- Using Windows 7 Hardware Troubleshooting Tools : Troubleshooting RAM with Windows Memory Diagnostic
- Using Windows 7 Hardware Troubleshooting Tools : Troubleshooting with Event Viewer, Troubleshooting Startup Failures with Startup Repair
- Windows 8 : Touch and Gestures - Edge Gestures
- Windows 8 : Touch and Gestures - Corner Hotspots
- Windows Home Server 2011 : Connecting via the Internet (part 3) - Working with Windows Home Server Shares in the Web Browser
 
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
Technology FAQ
- Is possible to just to use a wireless router to extend wireless access to wireless access points?
- Ruby - Insert Struct to MySql
- how to find my Symantec pcAnywhere serial number
- About direct X / Open GL issue
- How to determine eclipse version?
- What SAN cert Exchange 2010 for UM, OA?
- How do I populate a SQL Express table from Excel file?
- code for express check out with Paypal.
- Problem with Templated User Control
- ShellExecute SW_HIDE
programming4us programming4us