1 2007-07-19 Jason Fleischli <jason.fleischli@hp.com>
2 * Integrated x86_64 support patches from Chandramouli Narayanan
3 <mouli@linux.intel.com> changes summarized in following bullets.
4 * alloc.c -- adds patch contributors credit to copyright
5 * alloc.c -- adds uefi_call_wrapper around BS->function calls
6 * alloc.c -- adds call to Print on VERB_PRT
7 * alternate.c -- adds patch contributors credit around copyright
8 * alternate.c -- adds uefi_call_wrapper around RT->function calls
9 * simple.c -- adds patch contributors credit to copyright
10 * simple.c -- adds uefi_call_wrapper around ip->ReadKeyStroke
11 * textmenu.c -- adds patch contributors credit to copyright
12 * textmenu.c -- adds uefi_call_wrapper around ClearScreen &
14 * textmenu.c -- adds uefi_call_wrapper around ip->ReadKeyStroke
15 * elilo.c -- adds patch contributors credit to copyright
16 * elilo.c -- fixes version number for ELILO_VERSION macro to current
17 * elilo.c -- adds uefi_call_wrapper around BS->function calls
18 * elilo.c -- adds uefi_call_wrapper around RT->function calls
19 * fileops.c -- adds patch contributors credit to copyright
20 * fileops.c -- adds uefi_call_wrapper around BS->function calls
21 * fileops.c -- adds uefi_call_wrapper around RT->function calls
22 * fileops.c -- adds uefi_call_wrapper around blkio->function calls
23 * localfs.c -- adds patch contributors credit to copyright
24 * localfs.c -- changed EFI_HANDLE *dev declaration to non-pointer type
25 * localfs.c -- adds uefi_call_wrapper around lfs->volume->functions
26 * localfs.c -- adds uefi_call_wrapper around BS->function calls
27 * netfs.c -- adds patch contributors credit to copyright
28 * netfs.c -- adds uefi_call_wrapper around nfs->pxe->function calls
29 * netfs.c -- adds uefi_call_wrapper around BS->function calls
30 * getopt.c -- changed int to char in StrChr() function
31 * Make.defaults -- adds patch contributors credit to copyright
32 * Make.defaults -- adds cflag for efi function wrapper
33 * Makefile -- adds patch contributors credit to copyright
34 * Makefile -- x86_64 subdir and a new rule for .S
35 * util.c -- adds patch contributors credit to copyright
36 * util.c -- adds uefi_call_wrapper to systab->functions
37 * util.c -- adds uefi_call_wrapper to conin->functions
38 * util.c -- adds uefi_call_wrapper to BS->functions
39 * util.c -- doubles ELILO_MEMMAP_SIZE_DEFAULT in get_memmap() function
40 * bootparams.c -- uses ia32 params for x86_64 addition.. hmmmm?
41 * config.c -- adds patch contributors credit to copyright
42 * config.c -- adds define reference for x86_64.conf
43 * config.c -- in config_error() removes use of va_list which maps to
44 the gnu C-lib iface __gnuc_va_list. Replaces the use of _IPrint on
45 the va_list with direct use of IPrint(systab->ConOut, msg);
46 *maintainer note, this probably introduces a bug, in light of this
47 note from the patch submitter --> "On some x86_64 systems with
48 EFI1.10 firmware I tested, early boot messages did not appear on console.
49 However, I didn't encounter this behavior on x86_64 systems with UEFI2.0
51 * elf.h -- adds #def for x86_64
52 * glue_netfs.c -- adds patch contributors credit to copyright
53 * glue_netfs.c -- adds define for x86_64.conf
54 * sysdeps.h -- adds patch contributors credit to copyright
55 * sysdeps.h -- add include reference for new x86_64 subdir
56 * x86_64/ -- new subdir - all based on elilo/ia32 subdir
57 * x86_64/bin_to_h.c -- new file, stream fed binary to hex converter
58 * x86_64/bzimage.c -- new file, binary compressed kernel support
59 * x86_64/gzip.c -- new file, embedded gzip
60 * x86_64/gzip_loader.c -- new file, embedded gzip
61 * x86_64/gzip.h -- new file, embedded gzip
62 * x86_64/inflate.c -- new file, a pkzip method 8 embedded decompressor
63 * x86_64/Makefile -- new file
64 * x86_64/plain_loader.c -- new file, for loading non-compressed kernels
65 * x86_64/private.h -- new file
66 * x86_64/rmswitch.S -- new file, RealMode assembly module
67 * x86_64/sysdeps.h -- new file, system stuff for x86_64, e820 mapping
69 * x86_64/sysdeps.c -- new file, system stuff for x86_64
70 * elilo.txt -- documentation update, add Intel to copyright
71 * README.gnu-efi -- documentation update for x86_64
72 2006-01-27 Alex Williamson <alex.williamson@hp.com>
73 * Found a couple more places where vmcode isn't zeroed, causing the
74 option to get carried over to labels it shouldn't.
75 2006-01-09 Brett Johnson <brett@hp.com>
77 2005-12-22 Alex Williamson <alex.williamson@hp.com>
78 * Fixed vmcode_name initialization in textmenu chooser
79 2005-12-01 Alex Williamson <alex.williamson@hp.com>
80 * Applied patch from Fred Yang <fred.yang@intel.com> to support the
81 vmm= boot option. This option specifies the kernel image for a
82 virtual machine monitor (aka hypervisor). The vmm= and image=
83 options are used together to load both the hypervisor kernel and
84 the guest domain kernel into memory. If a vmm= option is not
85 specified, elilo defaults to the old behavior of loading and booting
87 * Added support for compressed image= files when used with the vmm=
88 option. If the image= file is detected to be gzip compressed, the
89 image will be uncompressed into memory before it is provided to the
90 hypervisor. Any combination of compressed and uncompressed images
91 can be used for the image and vmm options.
92 2005-09-15 Brett Johnson <brett@hp.com>
93 * Applied patch from Tristan Gingold to add dcache flush and sync with
94 icache to gzip and plain loaders. This ommision was just noticed now
95 due to the much larger caches in Montecito, and the smaller size of
96 Xen (as compared to the linux kernel).
97 2004-09-27 Brett Johnson <brett@hp.com>
98 * Increase the hardcoded size of the texmenu chooser menu from 16 to 64
99 2004-09-23 Brett Johnson <brett@hp.com>
100 * Fix for 924147. Thanks to Stephanie Schaaf <sas@sgi.com> for a patch
101 that the fix is based on.
102 2004-02-19 Brett Johnson <brett@hp.com>
103 * Fixed bug where default image initrd would carry over to another
104 image that was selected interactively (iff the newly selected image
105 did not have an initrd).
106 * Added support for subnet-specific config files in netfs.
107 2004-02-17 Brett Johnson <brett@hp.com>
108 * integrated ia32 compressed kernel support from Matt Tolentino
109 <matthew.e.tolentino@intel.com>
110 2003-08-20 Stephane Eranian <eranian@hpl.hp.com>
112 2003-08-19 Stephane Eranian <eranian@hpl.hp.com>
113 * integrated ia32 updates from Matt
114 Tolentino <matthew.e.tolentino@intel.com>
115 2003-08-13 Stephane Eranian <eranian@hpl.hp.com>
116 * updated elilo.txt and netbooting.txt
117 * fix a bug in choosers/simple.c:print_infos().
118 it needs to check if config file path is absolute
119 when printing filename.
120 * move definitions of CHAR_SLASH CHAR_BACKSLASH to elilo.h
121 * fix a bug in read_config() where it would try other
122 filename even when the user explicitely specified one
123 via -C, now it fails it that file cannot be opened.
124 * updated simple chooser set of builtin command keys
125 * command keys are only valid if first on the line
126 * increase default buffer size and increment when netbooting
127 2003-06-04 Stephane Eranian <eranian@hpl.hp.com>
128 * fix fs/netfs.c to work with recent version
129 of EFI (14.61 or higher) which do not have the
130 TFTP problem anymore. fix submitted by Guy Laborde
131 2003-04-21 Stephane Eranian <eranian@hpl.hp.com>
132 * ext2fs support is turned off by default to avoid
133 problems with ext3-formatted partitions.
134 * added gcc version check. MUST use 3.0 or higher
135 2003-03-03 Stephane Eranian <eranian@hpl.hp.com>
136 * added check on dev_tab in fs/*fs.c:*_uninstall()
137 2003-02-07 Stephane Eranian <eranian@hpl.hp.com>
138 * clean up in glue_localfs.c w.r.t. CHAR16 in set_default_path()
139 * added support for extracting basename of bootloader path
140 when using BOOTP (DHCP) only. The prefix is then used for all files
141 open via netfs. Suggestion and initial patch by Guy Laborde from HP.
142 2003-01-28 Stephane Eranian <eranian@hpl.hp.com>
143 * fix the set_default_path() routine in glue_localfs.c. It would not
144 correctly get the basename of the devpath. This caused the
145 elilo.conf not to be found sometimes.
146 2003-01-21 Stephane Eranian <eranian@hpl.hp.com>
147 * fix bug in glue_netfs.c convert_ip2decstr() which caused some IP
148 addresses to be incorrectly converted to strings.
149 2002-11-01 Stephane Eranian <eranian@hpl.hp.com>
150 * fix bug in -r option for IA64. There is no argument to this option.
151 2002-10-15 Stephane Eranian <eranian@hpl.hp.com>
152 * fixed a double free bug for the kernel memory in case of abort.
153 (bug spotted by Levent Akyl from Intel)
155 2002-09-14 Stephane Eranian <eranian@hpl.hp.com>
156 * applied patch from Andreas Schwab <schwab@suse.de> to eliloalt.c.
157 eliloalt dynamically selects a variable in /proc/efi/vars.
158 2002-09-12 Stephane Eranian <eranian@hpl.hp.com>
159 * removed extra free() from fs/ext2fs.c:ext2fs_init_state().
160 Bug report and fix by NOMURA Jun'ichi <j-nomura@ce.jp.nec.com>
161 * rewrote fs/ext2fs.c:read_bytes() to large memory stack buffer which
162 was bigger than the 128KB limit of EFI causing some weird fimrware
163 errors. bug reported by OMURA Jun'ichi <j-nomura@ce.jp.nec.com>
164 * on IA-64 forbid the use of f32-f127 by the compiler (EFI spec)
165 2002-09-10 Stephane Eranian <eranian@hpl.hp.com>
166 * fix a bug in argify() that was causing an EFI assertion
167 when aborting at the elilo prompt when netbooted.
168 2002-08-26 Stephane Eranian <eranian@hpl.hp.com>
169 * fixed devschemes/simple.c to use SPrint() instead of its own buggy
170 conversion code (spotted by Richard Hirst).
171 * fix bug in argify() when there was no NULL character in the string.
173 2002-08-19 Stephane Eranian <eranian@hpl.hp.com>
174 * added fpswa.txt in the docs directory
176 2002-08-15 Stephane Eranian <eranian@hpl.hp.com>
177 * added -F file option for IA-64 to allow a specific fpswa driver to be loaded
178 * fixed fpswa.c to try and load the driver from all accessible partitions
179 * added support to load (plain or gzipped) big-endian ELF/ia64 binaries using p_paddr.
180 * fixed problem in fs/netfs.c causing large (>4MB) binaries to fail the Mftp() call
181 2002-06-13 Stephane Eranian <eranian@hpl.hp.com>
182 * Changed the despecialization character for the variables from \\ to &
183 to avoid conflicts with \\ as a path separator
184 2002-06-11 Stephane Eranian <eranian@hpl.hp.com>
185 * fixed the return value in efi_main(). elilo was always returning
186 success even in case of failure. Bug reported by Egan Ford <egan@sense.net>
187 * applied patch from Richard Hirst <rhirst@linuxcare.com> to fix an
188 initialization bug in choosers/textmenu.c
189 * applied patch from Richard Hirst <rhirst@linuxcare.com> to make elilo
190 compliant with EFI spec with regards to where it looks for files.
191 With this patch, elilo will look in the directory it was loaded
192 from, not on the root of the partition anymore.
193 2002-03-04 Stephane Eranian <eranian@hpl.hp.com>
194 * released version 3.2
195 * cleanup some GNU extension in fs/ext2fs.c (variable size array)
196 * updated all documentation. Added netbooting.txt, simple_chooser.txt,
197 eliloalt.txt, elilovar.txt
198 2002-02-21 Stephane Eranian <eranian@hpl.hp.com>
199 * added a Linux utility program (elilovar in tools) to set/read/delete
200 the EliloAlt EFI variable used to specify an alternate kernel to boot.
201 * rename DBG_PRINT() to DBG_PRT, PRINT_ERR() to ERR_PRT()
202 * added support for hostname,domain name extraction in fs/netfs.c
203 * fixed all known bugs in alternate.c
204 * integrated patch from SGI to fix load offset for relocatable kernels (Jack Steiner, Brent Casavant)
205 2002-02-21 Michael Johnston <michael.johnston@intel.com> and Chris Ahna <christopher.j.ahna@intel.com>
206 * major update to ia32 support: can now boot 2.4.x, and 2.2.x kernels
207 2002-02-20 Stephane Eranian <eranian@hpl.hp.com>
208 * fixed missing netfs_fd_free() in case of file not found in netfs.c
209 2002-02-19 Stephane Eranian <eranian@hpl.hp.com>
210 * added support for substitution variables (vars.c)
211 * changed the bootparam structure size back to 4kB
212 * added support to simple to print final command line option with tab key
213 * got rid of all the \r characters in strings use only \n (adjust emulator)
214 * added EFICRT0 variable in Makefile to indicate location of loader script+crt0
215 2002-02-14 Stephane Eranian <eranian@hpl.hp.com>
216 * added support for message= option to simple chooser
217 * added support for description= option to simple chooser
218 2002-02-13 Stephane Eranian <eranian@hpl.hp.com>
219 * choosers/textmenu.c: new textmenu chooser (by rhirst@linuxcare.com) used by Debian
220 * config.c: added support for dynamic global/per-image option management
221 * ia64/plain_loader.c,ia64/gzip.c: fix load_offset (<bcasavan@sgi.com>)
222 * added cmd line (-E) and config option (noedd30) to not set EDD30 EFI variable to
223 true if not already TRUE (request by Matt_Domsch@dell.com)
224 * added support for multiple devname schemes and probing
226 2002-01-31 Stephane Eranian <eranian@hpl.hp.com>
227 * cleaned up alternate.c
228 * added support for ctrl-U (clear line) in chooser/simple.c
230 2002-01-25 Stephane Eranian <eranian@hpl.hp.com>
231 * added support for architecture specific config file (elilo-ia64.conf, elilo-ia32.conf).
233 2002-01-13 Stephane Eranian <eranian@hpl.hp.com>
234 * removed call to Reset() in ext2fs.c
236 2001-08-17 Stephane Eranian <eranian@hpl.hp.com>
238 * added support for command line architecture specific options:
239 sysdeps_get_cmdline_opts(), sysdeps_print_cmdline_opts(),
241 * added IA-64 command line option (-r) for relocation
242 * fix behavior when kernel specified on command line but prompt
243 mode was specified in config file. In this case, we now autoboot
244 and ignore the prompt directive.
246 2001-08-15 Brent Casavant <bcasavan@sgi.com>
247 * fix a bug in config.c:find_option() where it would do
248 a strXcmp() on a NULL string.
250 2001-08-01 Stephane Eranian <eranian@hpl.hp.com>
251 * fixed bug in fs/netfs.c where it would not handle the small buffer
252 error correctly. The retry path was not allocating a bigger buffer.
253 * Global config options are now used if the user specifies a non-label
254 load target, i.e. a kernel image file.
255 * added support for architecture dependent config file image options (sys_img_options_t).
256 * added support for setjmp/longjmp.
257 * added support for aborting during a compressed load
258 * added support for user to abort a load of a compressed file.
259 * added 2 new ia-64 only config file options allowing kernel relocation:
260 'relocatable' as a global or per image option.
261 * added support for kernel relocation on memory error. Based on code from
262 Brent Casavant <bcasavan@sgi.com>.
263 * added slash/backslash conversion for filenames on vfat filesystems.
265 2001-07-23 Stephane Eranian <eranian@hpl.hp.com>
266 * fixed error in netfs.c where the kernel name was not correctly set in
268 * fixed to wait_timeout() to correct the problem with the interactive prompt when
269 return is hit directly when no text
270 * fixed command line argument destruction problem, now we make a copy of them. This
271 was affecting elilo when called directly from bootmanager with NVRAM options.
273 2001-06-28 Stephane Eranian <eranian@hpl.hp.com>
274 * removed W2U() hack to get from wide-char to unicode. Use -fshort-wchar option instead.
275 * split gnu-efi package in two different packages: the libary+include+crt and the bootloader.
276 * restructured the fileops module. Now use direct function calls.
277 * added support for accessing files on different devices.
278 * fixed a buffer leak in simple_chooser.c. Renamed simple_chooser.c to simple.c.
279 * created a strops.c file to incorporate all string operations functions.
280 * added support for ext2fs filesystem.
281 * restructured code to allow additional filesystems to be added easily.
282 * cleaned up add-on chooser interface.
283 * restructured code to use the EFI protocol interface to install filesystems.
284 * added compile-time options to turn on and off specific filesystems.
285 * added support for architecture specific configuration options (elilo.conf).
286 * added fpswa option to IA-64 to designate a fpswa driver file.
287 * incoporated IA-32 support from Mike Johnston <michael.johnston@intel.com>
288 * incorporated rewritten gzip.c:flush_window() from Tony Luck <tony.luck@intel.com>
289 * added interface for custom device naming schemes (devnames directory).
290 * added support for 2 possible config file (now just on netboot). The first
291 (primary) choice uses a host specific filename based on the IP address. Suggestion
292 from Egan Ford <egan@sense.net>.
294 2001-04-06 Stephane Eranian <eranian@hpl.hp.com>
296 * incorporated patches from David and Michael Johnston at Intel
297 to get the package to compile for IA-32 linux target.
299 * Fixed ELILO to compile for Ia-32 (does not execute yet, though):
300 Makefile and start_kernel() function.
302 2001-04-06 Andreas Schwab <schwab@suse.de>
305 get the timeout directive to do something. implemented the global
308 * Fix the efi_main() to deal with the -C option properly
310 2001-04-05 Stephane Eranian <eranian@hpl.hp.com>
312 * update efi library to latest EFI toolkit 1.02 as distributed
313 by Intel. Fixed header + library files to compile with GCC
315 * merged ELI and LILO (as of gnu-efi-1.1) together, mostly
316 taking the config file feature of ELI.
318 * renamed LILO to ELILO to make the distinction
320 * restructured code to make it easier to understand and maintain
322 * fixed FPSWA driver checking and loading: we try all possible
323 files and let the driver itself figure out if it is the most
325 * added support for compression (gzip) but keep support for plain
326 ELF image. ELILO autodetects the format
328 * change the way the kernel is invoked. Now we call it in
329 physical memory mode. This breaks the dependency between the
330 kernel code and the loader. No more lilo_start.c madness.
332 * changed the way the boot_params are passed. We don't use the
333 ZERO_PAGE_ADDR trick anymore. Instead we use EFI runtime memory.
334 The address of the structure is passed to the kernel in r28
337 * released as gnu-efi-2.0
339 2001-04-03 David Mosberger <davidm@hpl.hp.com>
341 * gnuefi/reloc_ia32.c (_relocate): Change return type from "void"
342 to "int". Return error status if relocation fails for some
345 * gnuefi/elf_ia32_efi.lds: Drop unneeded ".rel.reloc" section.
347 * gnuefi/crt0-efi-ia32.S (_start): Exit if _relocate() returns with
348 non-zero exit status.
350 * inc/ia32/efibind.h [__GNUC__]: Force 8-byte alignment for 64-bit
351 types as that is what EFI appears to be expecting, despite the
352 "#pragma pack()" at the beginning of the file!
354 2001-03-29 David Mosberger <davidm@hpl.hp.com>
356 * gnuefi/reloc_ia32.c: Add a couple of defines to work around
357 libc/efilib collision on uint64_t et al.
358 (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
360 * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
362 2001-03-29 David Mosberger <davidm@hpl.hp.com>
364 * gnuefi/reloc_ia32.c: Add a couple of defines to work around
365 libc/efilib collision on uint64_t et al.
366 (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
368 * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
370 2000-10-26 David Mosberger <davidm@hpl.hp.com>
372 * gnuefi/elf_ia64_efi.lds: Mention .rela.sdata.
374 * Make.defaults (CFLAGS): Remove -nostdinc flags so we can pick
375 up the C compiler's stdarg.h.
377 * inc/stdarg.h: Remove this file. It's not correct for gcc (nor
378 most other optimizing compilers).
380 2000-10-10 Stephane Eranian <eranian@hpl.hp.com>
382 * cleaned up the error message and printing of those.
383 * added support to load the FPSWA from a file in case support is not
384 present in the firmware already
385 * fixed split_args() to do the right thing when you have leading spaces
387 * changed the argify() function to rely on \0 instead of LoadOptionSize
388 as the field seems to be broken with current firmware
389 * bumped version to 1.0
391 2000-10-04 David Mosberger <davidm@hpl.hp.com>
393 * gnuefi/reloc_ia64.S: Reserve space for up to 750 function descriptors.
395 * gnuefi/elf_ia64_efi.lds: Add .sdata section for small data and
396 put __gp in the "middle" of it.
398 * gnuefi/crt0-efi-ia64.S (_start): Use movl/add to load
399 gp-relative addresses that could be out of the range of the addl
401 * gnuefi/reloc_ia64.S (_relocate): Ditto.
403 * apps/Makefile: Remove standard rules and include Make.rules instead.
404 * lilo/Makefile: Ditto.
406 * Make.rules: New file.
408 2000-08-04 Stephane Eranian <eranian@hpl.hp.com>
409 * released version 0.9
410 * incorporated ACPI changes for Asuza by NEC < kouchi@hpc.bs1.fc.nec.co.jp>
411 * added support for initrd (-i option) original ELI code from Bill Nottingham <notting@redhat.com>)
413 * got rid of #ifdef LILO_DEBUG and uses macro instead
414 * fix a few extra memory leaks in create_boot_params()
415 * added exit capability just before starting the kernel
417 2000-06-22 David Mosberger <davidm@hpl.hp.com>
419 * gnuefi/elf_ia64_efi.lds: Add .srodata, .ctors, .IA64.unwind,
420 .IA64.unwind_info to .data section and .rela.ctors to .rela
423 2000-04-03 David Mosberger <davidm@hpl.hp.com>
425 * lilo/lilo.c (LILO_VERSION): Up version number to 0.9.
427 * gnuefi/elf_ia64_efi.lds: Include .IA_64.unwind and
428 .IA_64.unwind_info in .data segment to avoid EFI load error
429 "ImageAddress: pointer outside of image" error due to the .dynsym
430 relocations against these sections.
432 * ChangeLog: Moved from lilo/ChangeLogs.
434 * gnuefi/reloc_ia64.S: fixed typo: .space directive had constant
435 100 hardcoded instead of using MAX_FUNCTION_DESCRIPTORS
438 Fri Mar 17 15:19:18 PST 2000 Stephane Eranian <eranian@hpl.hp.com>
441 * replace the getopt.c with new version free with better license
442 * created a documentation file
443 * fix a couple of memory leaks
445 * created a separate directory for lilo in the gnu-efi package.
446 * added support for the BOOT_IMAGE argument to kernel
447 * default is to build natively now