http://sourceforge.net/project/shownotes.php?release_id=524148&group_id=91879
File Release Notes and Changelog
Release Name: 3.7
Notes:
*** THIS IS A BETA RELEASE INTEGRATING SUPPORT FOR X86_64 AHEAD OF ANY SIGNIFICANT TESTING, USE WITH CAUTION ***
SUBMIT BUG REPORTS HERE --> http://sourceforge.net/tracker/?group_id=91879&atid=598709
IMPORTANT NOTE FOR BUILDS ON ALL ARCHS:
-------------------------
You will need the following toolchain to build elilo with the 3.7 source tarball
(for all archs due to the new uefi call wrappers).
1. gnu-efi-3.0d or > .... http://sourceforge.net/project/showfiles.php?group_id=163609&package_id=185019&release_id=508306
2. gcc-4.1.1 or >
3. binutils-2.17.50.0.14 or > with Intel64 EFI support
*BuildNote: efi libraries are installed to /usr/local/lib
by the default gnu-efi source package. elilo expects them to
be in standard linux system location /usr/lib. efi includes
may be located in /usr/local/include/efi. elilo expects
them to be in standard linux system location /usr/include/efi.
likewise objcopy may be installed to /usr/local/bin by binutils,
elilo source expects it to be in /usr/bin. On distributions
using standard linux system conventions such
as Debian and Ubuntu this is corrected in the binutils and gnu-efi packages.
Implementation:
--------------
Calls to EFI services in x86_64 require a wrapper to pass the arguments
in the appropriate manner. This is implemented with efi wrapper.
For IA32 and IA64, the wrapper is a macro that merely calls the
EFI services directly. The elilo source has been modified to use the
efi wrapper implemented in gnu-efi-3.0d library.
elilo for x86_64 and its dependent libraries are built and the final
ELF image is converted into PE-COFF image using the objcopy supported
by binutils-2.17.50.0.14 or above with Intel64 EFI support.
On UEFI 2.0 firmware, only Graphics Output Protocol (GOP) is supported.
The x86_64 elilo first queries video information from GOP failing which
it queries for text mode support. The video information is passed to
Linux kernel via boot parameter. The GOP support requires
Linux kernel EFI framebuffer driver (kernel configuration option).
XIII/ Booting on EFI/x86_64 platforms
-----------------------------
To use elilo on x86_64, you can put it on a floppy and
on a FAT32 partition (msdos partition). You can also
netboot if your network adapter has support for UNDI/PXE.
Elilo/x86_64 requires efi64 enabled linux kernel (> 2.6.21).
You need to compile the kernel with CONFIG_EFI option.
x86_64 platforms with UEFI 2.0 firmware deprecate UGA protocol
and therefore only the Graphics Output Protocol (GOP) is supported. For
such platforms, the kernel must be configured with EFI_FB option. This
will enable early boot messages on the console. The elilo for x86_64
attempts to query the firmware for GOP and if it fails it defaults to
text mode.
The x86_64 implementation converts the EFI memory map into E820 map and
passes it in the bootparameter supplied to the kernel. For details on
bootparameter, see x86_64/sysdeps.h.
Changes:
2007-07-19 Jason Fleischli <[email protected]>
* Integrated x86_64 support patches from Chandramouli Narayanan
<[email protected]> changes summarized in following bullets.
* alloc.c -- adds patch contributors credit to copyright
* alloc.c -- adds uefi_call_wrapper around BS->function calls
* alloc.c -- adds call to Print on VERB_PRT
* alternate.c -- adds patch contributors credit around copyright
* alternate.c -- adds uefi_call_wrapper around RT->function calls
* simple.c -- adds patch contributors credit to copyright
* simple.c -- adds uefi_call_wrapper around ip->ReadKeyStroke
* textmenu.c -- adds patch contributors credit to copyright
* textmenu.c -- adds uefi_call_wrapper around ClearScreen &
SetTextAttr
* textmenu.c -- adds uefi_call_wrapper around ip->ReadKeyStroke
* elilo.c -- adds patch contributors credit to copyright
* elilo.c -- fixes version number for ELILO_VERSION macro to current
* elilo.c -- adds uefi_call_wrapper around BS->function calls
* elilo.c -- adds uefi_call_wrapper around RT->function calls
* fileops.c -- adds patch contributors credit to copyright
* fileops.c -- adds uefi_call_wrapper around BS->function calls
* fileops.c -- adds uefi_call_wrapper around RT->function calls
* fileops.c -- adds uefi_call_wrapper around blkio->function calls
* localfs.c -- adds patch contributors credit to copyright
* localfs.c -- changed EFI_HANDLE *dev declaration to non-pointer type
* localfs.c -- adds uefi_call_wrapper around lfs->volume->functions
* localfs.c -- adds uefi_call_wrapper around BS->function calls
* netfs.c -- adds patch contributors credit to copyright
* netfs.c -- adds uefi_call_wrapper around nfs->pxe->function calls
* netfs.c -- adds uefi_call_wrapper around BS->function calls
* getopt.c -- changed int to char in StrChr() function
* Make.defaults -- adds patch contributors credit to copyright
* Make.defaults -- adds cflag for efi function wrapper
* Makefile -- adds patch contributors credit to copyright
* Makefile -- x86_64 subdir and a new rule for .S
* util.c -- adds patch contributors credit to copyright
* util.c -- adds uefi_call_wrapper to systab->functions
* util.c -- adds uefi_call_wrapper to conin->functions
* util.c -- adds uefi_call_wrapper to BS->functions
* util.c -- doubles ELILO_MEMMAP_SIZE_DEFAULT in get_memmap() function
* bootparams.c -- uses ia32 params for x86_64 addition.. hmmmm?
* config.c -- adds patch contributors credit to copyright
* config.c -- adds define reference for x86_64.conf
* config.c -- in config_error() removes use of va_list which maps to
the gnu C-lib iface __gnuc_va_list. Replaces the use of _IPrint on
the va_list with direct use of IPrint(systab->ConOut, msg);
*maintainer note, this probably introduces a bug, in light of this
note from the patch submitter --> "On some x86_64 systems with
EFI1.10 firmware I tested, early boot messages did not appear on console.
However, I didn't encounter this behavior on x86_64 systems with UEFI2.0
firmware"
* elf.h -- adds #def for x86_64
* glue_netfs.c -- adds patch contributors credit to copyright
* glue_netfs.c -- adds define for x86_64.conf
* sysdeps.h -- adds patch contributors credit to copyright
* sysdeps.h -- add include reference for new x86_64 subdir
* x86_64/ -- new subdir - all based on elilo/ia32 subdir
* x86_64/bin_to_h.c -- new file, stream fed binary to hex converter
* x86_64/bzimage.c -- new file, binary compressed kernel support
* x86_64/gzip.c -- new file, embedded gzip
* x86_64/gzip_loader.c -- new file, embedded gzip
* x86_64/gzip.h -- new file, embedded gzip
* x86_64/inflate.c -- new file, a pkzip method 8 embedded decompressor
* x86_64/Makefile -- new file
* x86_64/plain_loader.c -- new file, for loading non-compressed kernels
* x86_64/private.h -- new file
* x86_64/rmswitch.S -- new file, RealMode assembly module
* x86_64/sysdeps.h -- new file, system stuff for x86_64, e820 mapping
added.
* x86_64/sysdeps.c -- new file, system stuff for x86_64
* elilo.txt -- documentation update, add Intel to copyright
* README.gnu-efi -- documentation update for x86_64
2006-01-27 Alex Williamson <[email protected]>
* Found a couple more places where vmcode isn't zeroed, causing the
option to get carried over to labels it shouldn't.