New gnu-efi package and new boot loader available
Hi,
I have uploaded to the HPLabs FTP site a new version of the gnu-efi package. It is available at:
ftp://ftp.hpl.hp.com/pub/linux-ia64/gnu-efi-2.0.tar.gz
This loader is *REQUIRED* if you want to boot the new 2.4.3 Linux/ia64 kernel from David. Also the other loaders be it ELI or LILO (from gnu-efi-1.1 or older) won't be able to boot 2.4.3 either. This new loader will not boot kernels prior to 2.4.3.
Many changes have happened in this version on both the EFI library and also on the bootloader sides.
This version of the gnu-efi package includes a new version of the boot loader which represents the merge of ELI and LILO into ELILO.
Most features of each have been merged. This means that ELI's config file (a la LILO/ia-32) is supported, for instance.
Support and development on the bootloader will now focus on this new version.
At this point, this is still an alpha version of the merged code. Many pieces have to be tested some more also some new features are not quite there yet (like netbooting or IA-32 support). In a future release the new loader will most likely be released separately.
Here are the major changes to the package:
- The EFI lib and header files have been updated to EFI Toolkit 1.02
- The IA-32 support has been fixed (David Mosberger/HP and Michael Johnston/INTEL)
- lilo has disappeared and is replaced by elilo
New features of elilo:
- all features found on lilo, except alternate kernel file at this point
- the config file support from eli
- support for loading compressed kernel (gzip, new make compressed target).
- support for uncompress kernel is still present.
- Autodetection of kernel formats
- fixed support for FPSWA driver installation
Why is it needed for 2.4.3 ?
- Major changes in the way the kernel is launched have occured:
* kernel expects to be started in physical mode now
* the boot paramaters (ia64_boot_param) do not use the ZERO_PAGE anymore. They are stored in EFI runtime memory.
* Those changes allowed a major cleanup in the loader but also in the kernel. The loader is no more dependent of the memory layout of the kernel and on kernel headers. The SMP initialization is now symetric, i.e. the same init path is used (smpboot.c is gone).
- Only elilo has support for those options
Requirements:
- you need a recent set of binutils, that's important for the BFD library and objcopy in particular. Possibly the version coming from the CVS repository or the upcoming version 2.11.
We have experienced some problems on binaries generated with the compiler provided by the latest Redhat Fisher release with IA-64. The problems are not systematic.
If EFI has problems loading a generated binary and complains about MaxAddress > 0xff.... or you get a 'command not found' then it is likely a development tool problem.
- to make it easier we have included a pre-compiled version of the loader. The file is elilo/elilo.efi
Enjoy,
+--------------------------------------------------------------------+ | Ste'phane ERANIAN | Email [email protected] | | Hewlett-Packard Laboratories | | | 1501, Page Mill Road MS 1U-15 | | | Palo Alto, CA 94303-096 | | | USA | | | Tel : (650) 857-7174 | | | Fax : (650) 857-5548 | | +--------------------------------------------------------------------+
Stephane Eranian <[email protected]> writes:
|> Hi, |> |> I have uploaded to the HPLabs FTP site a new version of the gnu-efi |> package. It is available at: |> |> ftp://ftp.hpl.hp.com/pub/linux-ia64/gnu-efi-2.0.tar.gz
Here is a patch to make `elilo -C' working:
elilo.c +1 -1
@@ -605,7 +605,7 @@ argc =argify (info->LoadOptions,info->LoadOptionsSize, argv); -while ((c=Getopt (argc, argv,W2U (L"Cadqht:i:vVf" ))) !=-1 ) { +while ((c=Getopt (argc, argv,W2U (L"C:adqht:i:vVf" ))) !=-1 ) {switch (c) {case 'a' : elilo_opt.always_alt=1 ;
Andreas.
Signature · 5 lines
Andreas Schwab "And now for something SuSE Labs completely different." [email protected] SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
Stephane Eranian <[email protected]> writes:
|> Hi, |> |> I have uploaded to the HPLabs FTP site a new version of the gnu-efi |> package. It is available at: |> |> ftp://ftp.hpl.hp.com/pub/linux-ia64/gnu-efi-2.0.tar.gz
Another patch to improve the usefullness of the config file:
config.c +7 -6
@@ -46,6 +46,7 @@ } boot_image_t;boot_image_t *image_head, *default_image; +static CHAR16 *root;/* * XXX: needs to be cleaned up seriously
@@ -167,12 +168,12 @@ }else if (strncmpa (p1,"vga" ,3 ) =0 ) {/* FIXME: I think we can actually do this */ }else if (strncmpa (p1,"timeout" ,7 ) =0 ) { -//timeout = Atoi(aToU(p2)); + elilo_opt.timeout =Atoi (aToU (p2)); }else if (strncmpa (p1,"root" ,4 ) =0 ) {if (image) image->root =StrDuplicate (aToU (p2)); -//else -//root = StrDuplicate(aToU(p2)); +else + root =StrDuplicate (aToU (p2)); }else if (strncmpa (p1,"initrd" ,6 ) =0 ) {if (image) image->initrd =StrDuplicate (aToU (p2));
@@ -271,16 +272,16 @@ options[0 ] =0 ; -if (img->root) { +if (img->root || root) {StrCat (options,W2U (L"root=" )); -StrCat (options, img->root); +StrCat (options, img->root ? img->root : root); }/* XXX: check max length */ if (img->options) {StrCat (options,W2U (L" " ));StrCat (options, img->options); } -if (img->readonly) { +if (img->readonly !=-1 ? img->readonly : elilo_opt.readonly) {StrCat (options,W2U (L" ro" )); }if (img->initrd)StrCpy (initrd, img->initrd);
Andreas.
Signature · 5 lines
Andreas Schwab "And now for something SuSE Labs completely different." [email protected] SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
Re: [Linux-ia64] New gnu-efi package and new boot loader availabl e
In reply to Stephane EranianQuoted 3 lines · Don
Where do I get the recent binutils. My new kernel has trouble booting on RedHat Fisher.
Looks like the new binutils are available at the Redhat FTP site:
ftp://sources.redhat.com/pub/binutils/releases/binutils-2.11.tar.bz2
Note that the new ELILO will NOT boot the kernel that comes with Redhat fisher.
--
-Stephane