EFI (and virtual machines)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Rob

EFI (and virtual machines)

Post by Rob »

EFI, or Extensible Firmware Interface:
The EFI specification defines a new model for the interface between operating systems and platform firmware. The interface consists of data tables that contain platform-related information, plus boot and runtime service calls that are available to the operating system and its loader. Together, these provide a standard environment for booting an operating system and running pre-boot applications.
I knew this existed and with the announcement that (at least the current models) the intel Mac computers will boot using EFI I got a bit more interested. Anyone checked the specs and/or working on an implementing it for their OS?

The very fast search I did suggests that neither QEMU nor Bochs support EFI at the moment. Any chance your new BIOS will add that Brendan? (just wondering)

The latest specification + updates can be downloaded from:

ftp://download.intel.com/technology/efi/docs/EFI_110.zip
ftp://download.intel.com/technology/efi/docs/EFI_1-10_Update.zip

It seems AMD isn't in on the EFI game. At least a search on their site didn't turn up anything other then:
Unified EFI Update

This session provides an update on the Unified EFI Forum and an overview of AMD plans for the technology. The session begins with an update on the Unified EFI Forum: who is involved, what they are working on (and why), and how you can get involved.

This session also provides AMD's view of the Unified Extended Firmware Interface (UEFI) and how it is emerging as the preferred firmware model for server systems that will run Windows Longhorn. This session shows the broad support for UEFI in the server space and demonstrates the implementation of a "clean room" UEFI-compliant firmware model on 32-bit and 64-bit AMD systems.
It does seem AMD (and Intel!) are in the UEFI forum together though:

http://www.uefi.org/
http://www.uefi.org/index.php?pg=2

Also see a Powerpoint presentation from Microsoft:

http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWAR05018_WinHEC05.ppt

The most important thing from that presentation:

- EFI 1.10 specification contributed to the Forum by Intel and Microsoft to be used as a starting draft

- Forum will evolve, extend, and add any new functionality required to produce UEFI 1.0 specification

- No future EFI specifications

In other words, EFI was setup by Intel and has been handed over to UEFI forum which will develop the standard futher. Seems like all the big names are involved so hopefully there will only be one standard ;)
User avatar
kataklinger
Member
Member
Posts: 381
Joined: Fri Nov 04, 2005 12:00 am
Location: Serbia

Re:EFI (and virtual machines)

Post by kataklinger »

Everything is better then today's BIOSes :)
Rob

Re:EFI (and virtual machines)

Post by Rob »

That's probably true ;D
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:EFI (and virtual machines)

Post by Candy »

kataklinger wrote: Everything is better then today's BIOSes :)
As far as I read it, EFI was the basic framework to make the Fritz chip work, so that if your OS wasn't certified by them you wouldn't get access to the HD-DVD player to play movies at all. You would be cut off from those bits of hardware.

As such, no, I consider it not better.
User avatar
kataklinger
Member
Member
Posts: 381
Joined: Fri Nov 04, 2005 12:00 am
Location: Serbia

Re:EFI (and virtual machines)

Post by kataklinger »

The intent of this specification is to define a way for the OS and platform firmware to communicate
only information necessary to support the OS boot process. This is accomplished through a formal
and complete abstract specification of the software-visible interface presented to the OS by the
platform and firmware.
Well I haven't read whole spec (1084 pages), I read only few and haven't seen nothing about fritz chips. Can you quote or tell us where did you found that?

And after all they can make fritz chip works without EFI and BIOS replacement. Don't they?
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:EFI (and virtual machines)

Post by Candy »

kataklinger wrote: Well I haven't read whole spec (1084 pages), I read only few and haven't seen nothing about fritz chips. Can you quote or tell us where did you found that?

And after all they can make fritz chip works without EFI and BIOS replacement. Don't they?
Mainly the introductory logic. They claim that they offer virtual authentication in the BIOS where it checks the operating system code for a certain checksum (or hash or encryption signature...) before it is allowed access to the hardware virtual drivers. I don't have an official reference at the moment, sorry.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:EFI (and virtual machines)

Post by Brendan »

Hi,

I downloaded the EFI specifications when version 1.10 first came out, but I stopped reading when I found it'd still boot "legacy OSs" (thinking that I could research it properly when 80x86 BIOSs started supporting it), so my knowedge of EFI is very limited...

AFAIK Intel started EFI for Itanium systems (which all use EFI) and it has only been supported on some 80x86 systems so far (not many). This will probably change some time in the future though...

Also AFAIK, DRM and ACPI was added to EFI after it was first designed, and both of them weren't part of the original specification. I don't know if DRM works without EFI or not...
Rob wrote:The very fast search I did suggests that neither QEMU nor Bochs support EFI at the moment. Any chance your new BIOS will add that Brendan? (just wondering)
Both Bochs and Qemu don't support EFI, and probably won't for a long time.

More precisely, ACPI support would have a higher priority, but that will take at least 6 months (and probably more like 12 months before the bugs are fixed and it works properly). My BIOS already does the basic tables (RSDP, RSDT, XSDT, APIC, SRAT, SLIT), but there's heaps left that I need "hardware" support for (SMM, SMI, SCI, embedded controller, ACPI timer). At the moment I'm (meant to be) adding more basic features (hard drive, CD-ROM, etc).

On top of this the Bochs developers are talking of doing large improvements like dynamic translation before version 3.0 is released. For Qemu, Fabrice told me he intended to add full debugging (disassembly, single stepping, etc), but I'm not convinced, as Qemu supports many different guest processors/architectures which makes maintaining it and adding features many times more complex. I personally don't think either project will have enough spare developers/time to add support for EFI in the next 2 years.

For my part, by the time full ACPI support is working in Bochs my OS will be at the stage where a hypervisor can be implemented. At this time my BIOS will be "adjusted" to suit the hypervisor, and my support for Bochs/Qemu might be left for others to continue.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply