Mark said:
..., to answer your question directly, I _think_ I need EFI
capability for a complex reason.
1) I use a real PC as a sort of test bed, namely to run
Vista and Vista app's BEFORE I install them on my Mac.
Well, my direct answer to your question is that I don't know how to tell
if a new computer uses EFI or BIOS, but at the present time you will
*not* be booting an EFI computer with Vista. From earlier findings we
know that many if not most new run of the mill motherboards are EFI
ready. In the context of Microsoft newsgroups, and speaking of
Microsoft operating systems, if you are not booting Server 2003
Enterprise Itanium or Server 2003 Datacenter Itanium you are not booting
an EFI computer.
As mentioned earlier, EFI was initially developed by Intel Corporation
and published in the EFI 1.0 specification. EFI has been used as the
only supported firmware on Intel Itanium-based systems. As of early
2007, Itanium is supported by Windows Server 2003, multiple
distributions of Linux (including Debian, Red Hat and Novell SuSE,) and
HP-UX, OpenVMS, and NonStop from HP, all natively.
Intel sums up EFI and BIOS as follows:
[Quote, Intel]
The main purpose of Extensible Firmware Interface (EFI) is to abstract
the firmware and hardware layers from the operating system layer so that
the operating system vendors and developers do not have to battle with
the cumbersome 16-bit real-mode BIOS interfaces and constantly changing
hardware configurations. This interface became even more important when
the 64-bit CPU architecture was revealed because the legacy BIOS, which
is tightly coupled with the 32-bit CPU technology, could no longer work
for it. That is why EFI was first introduced in the 64-bit Itanium
architecture.
There has been rapid evolution of the personal computer platform since
the 1980s. These advances have included orderof-magnitude increases in
performance, ease-of-use, storage capacity, and connectivity. But there
is one element of the PC that has not changed for the past 23 years,
namely the BIOS (basic input/output system).
The task of boot firmware (whether the BIOS or firmware based on the
Framework) is to make a collection of hardware before the boot look like
a complete system after the boot.
To begin, let’s review the role of the BIOS in today’s system. The BIOS
is stored in some nonvolatile storage on the platform and commences
execution upon restart of the system. The BIOS is responsible for the
initialization of the system. This is typically referred to as power-on
self test (POST).
The POST for BIOS is typically written in some monolithic, statically
linked 16-bit, real-mode assembly language and relegated to a small
region of code space for execution. The assembly language construction
and lack of consistent system services, such as a modern memory manager,
coupled with the restricted execution space, impedes algorithm and
feature development.
Beyond POST, there is the operating system (OS) invocation and ability
to provide services to the OS. Herein, the operating system services
are provided by 16-bit software interrupts. These software interrupts
include Interrupt 13h for access to the Disk, Interrupt 10h for access
to the Video, and Interrupt 16h for access to the Keyboard. Operating
system loads rely on the existence of these services. The limitations
of these BIOS services include difficulty in extending new services,
limited parameter passing through registers, and restrictions of
real-mode. The Extensible Firmware Interface provides an opportunity to
have a common operating system loader across different platform
architectures, such as IA32 and Intel® Itanium® processor-based
platforms. Today’s legacy OS loader is relegated to the IA32 PC world.
[end Intel quote]
The Unified EFI committee is the industry group that is now responsible
for developing, managing and promoting the ongoing evolution of the UEFI
specification. One of the implementation criteria of UEFI is that it be
specific to the bits of the operating system, that is that 32-bit UEFI
be capable of booting 32-bit operating systems only and that 64-bit UEFI
be capable of booting 64-bit operating systems only. This important
implementation criteria is responsible for certain decisions made by
Microsoft with regards to UEFI and its operating systems.
[Quote, Microsoft]
The UEFI committee decided that UEFI firmware and the operating system
must match bit-wise; that is, the maximum number of address bits used by
the operating system must match the maximum number of address bits used
by firmware. For example, 32-bit UEFI implementations have the ability
to boot 32-bit operating systems, but not 64-bit operating systems.
Likewise, a 64-bit UEFI firmware implementation has the ability to
natively boot a 64-bit operating system, but does not support natively
booting a 32-bit operating system. This restriction was reached for
technical reasons related to runtime UEFI support. The UEFI
specification also allows firmware vendors to add flexible support for
booting operating systems that are designed to boot on traditional BIOS.
For this, the UEFI vendor will integrate a firmware interface layer
that performs the compatibility functionality while presenting the
BIOS-type interface to an operating system that expects BIOS-type
interfaces to boot.
Thus, any UEFI implementation can be written to provide boot support for
native 32-bit, native 64-bit, and legacy BIOS-based operating systems.
However, supporting all three of these options requires a very large
firmware image which would not fit on a traditional PROM, adding to the
cost of the bill of materials (BOM). This also adds to the validation
costs for a platform, which in turn adds to the non-recoverable
engineering (NRE) cost for the system manufacturer. However, it is
practical to support both a native UEFI firmware implementation along
with the BIOS firmware interface layer.
Microsoft expects that most UEFI platforms in the near future will
choose native 64 bit support along with a BIOS compatibility module so
that these platforms can run earlier versions of Windows that support
boot only through a BIOS. Nearly all new processors in the Windows
Vista timeframe will be 64-bit capable. Microsoft would like to use the
advent of mainstream 64-bit computing as a transition point to enable a
move toward EFI boot. Although a platform vendor could choose to have
UEFI 32-bit support, this has a short life and diminishing returns. In
the near future, OEMs won't need large, multipurpose firmware images.
Given the advent of mainstream 64-bit computing and the platform costs
previously discussed, Microsoft determined that vendors would not have
any interest in producing native UEFI 32-bit firmware. Microsoft has
therefore chosen to not ship support for 32-bit UEFI implementations.
Windows 2003 Server supports EFI 1.10 on Intel Itanium platforms.
Microsoft Windows Server codename "Longhorn" supports EFI 1.10 on Intel
Itanium platforms, and also introduces support for native UEFI boot on
x64 64-bit platforms. Although the initial release of Windows Vista
will not include UEFI x64 64-bit support, a subsequent Windows Vista
release will support UEFI.
[end Microsoft quote]
So there you go, at the present time unless you have an Itanium computer
you are not booting an EFI computer using any Microsoft operating
systems. If you are using a 32-bit computer you will never boot using
EFI with any Microsoft operating system. If you think you need an
Itanium computer then the following from Wikipedia will be of interest:
"As of 2007, several manufacturers offer Itanium 2 based systems,
including HP, SGI, NEC, Fujitsu, Unisys, Hitachi, and Groupe Bull. In
addition, Intel offers a chassis[20] that can be used by system
integrators to build Itanium systems. HP, the only one of the
industry's top four server manufacturers to offer Itanium-based systems
today, manufactures at least 80% of all Itanium 2 systems. HP sold 7200
systems in the first quarter of 2006.[21] The bulk of the sales are of
enterprise servers and machines for large-scale technical computing,
with an average selling price per system in excess of US $200,000. A
typical system uses eight or more Itanium processors."
Of course, the above information is in regards to Microsoft operating
systems. How other operating systems implement booting with EFI is an
other matter altogether. Intel Macs only support booting via EFI, and
Linux supports EFI.
John
Sources:
http://www.intel.com/technology/efi/
http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/itanium/optimization/43666.htm?page=1
http://www.intel.com/technology/magazine/systems/it01043.pdf
http://www.intel.com/technology/magazine/computing/dt05041.pdf
http://www.microsoft.com/whdc/system/platform/firmware/efibrief.mspx
http://www.intel.com/products/processor/itanium2/index.htm
http://www.intel.com/design/servers/platforms/SR9000MK4U/index.htm
http://en.wikipedia.org/wiki/Itanium
http://www.microsoft.com/technet/windowsserver/evaluate/features/compare.mspx
Windows XP 64 does not support IA64
http://download.microsoft.com/downl..._XP_Professional_x64_Edition_Right_for_Me.doc