Page 1 of 1

EFI (and virtual machines)

Posted: Thu Jan 12, 2006 5:27 am
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 ;)

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 5:55 am
by kataklinger
Everything is better then today's BIOSes :)

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 6:53 am
by Rob
That's probably true ;D

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 7:17 am
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.

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 7:44 am
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?

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 8:44 am
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.

Re:EFI (and virtual machines)

Posted: Thu Jan 12, 2006 9:01 am
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