Skip to contentSkip to conversation

New gnu-efi package and new boot loader available

Linux-ia64 Stephane Eranian 2 participants 4 messages Apr 5, 2001 – Apr 6, 2001

lore
Share & tools
lore
#0 lore raw

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                    |                          |
+--------------------------------------------------------------------+
#1 lore raw

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
#2 lore raw
In reply to Stephane Eranian

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
#3 lore raw

Re: [Linux-ia64] New gnu-efi package and new boot loader availabl e

In reply to Stephane Eranian
Quoted 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