Browse Prior Art Database

Method for dynamically extending the runtime services of Extended Firmware Interface (EFI) using XML

IP.com Disclosure Number: IPCOM000029135D
Publication Date: 2004-Jun-16
Document File: 4 page(s) / 100K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for dynamically extending the runtime services of EFI using extensible markup language (XML). Benefits include improved interface between operating systems and platform. The interface would be able to expose additional advanced platform functionalities to the operating system.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 49% of the total text.

Method for dynamically extending the runtime services of Extended Firmware Interface (EFI) using XML

Disclosed is a method for dynamically extending the runtime services of EFI using extensible markup language (XML). Benefits include improved interface between operating systems and platform. The interface would be able to expose additional advanced platform functionalities to the operating system.

Background

      EFI is a specification that defines the interface between the platform firmware (commonly known as BIOS) and the operating system (OS). EFI-compliant platform firmware is expected to be adopted by all sizes of devices, including:

•             Desktops (& Laptops)

•             Servers

•             Hand-held computers

•             Personal digital assistants

      The interface between the OS and the platform firmware is a data structure known as the EFI system table, which contains pointers to the configuration table, boot services table, and runtime services table. The configuration table contains an array of globally unique identifier (GUID) and data pointer pairs. A GUID uniquely identifies the class of the information pointed to by the data pointer. The information could contain configuration data or an instance of an EFI protocol.

      EFI defines a protocol as an abstract specification of certain functionality. A protocol is defined as a data structure with function pointers and data members. An instance of a protocol refers to the implementation of a protocol, which means an instance of the protocol data structure with correctly instantiated members (data and function pointers).

      The OS has access to the entire protocol implementation via the configuration table entry data pointer. Protocol implementations are exposed to the OS to provide extended functionality. To utilize the extended functionality, the OS must understand the protocol and its data structure, function definitions, and usage. For example, the network interface identifier (NII) protocol implementation is conventionally exposed to the OS. NII can be implemented as a software universal network driver interface (UNDI) stack. The OS or its driver must understand the linkage between different data structures within the dotted block (see Figure 1). Additionally, UNDI is defined in the EFI specification, so operating systems can easily use it.

      One of the limitations of the existing approach is that if newer protocols were to be designed to expose advanced platform functionality to the OS, the EFI specification must be updated with the corresponding protocol definitions. Another limitation is that any extension of the existing protocol structures to add new functionality must be communicated to OS vendors (OSVs) in advance.

      Also, conventionally certain services may only apply to a specific platform. For example, a low battery power API would make sense only for platforms used by PDAs and laptops. Because the EFI specificat...