ChangeLog revision 1.1 1 1.1 jakllsch 2013-06-12 Nigel Croxon <nigel.croxon (a] hp.com>
2 1.1 jakllsch Disable MMX and SSE
3 1.1 jakllsch
4 1.1 jakllsch GCC 4.8.0 adds some optimizations that will use movups/movaps (and use
5 1.1 jakllsch %xmm* registers) when they're faster, and of course that won't work at
6 1.1 jakllsch all since UEFI firmwares aren't guaranteed to initialize the mmx/sse
7 1.1 jakllsch instructions.
8 1.1 jakllsch
9 1.1 jakllsch This will be even more annoying, since most UEFI firmwares don't
10 1.1 jakllsch initialize the #DE or #UD trap handlers, and your backtrace will be a
11 1.1 jakllsch random path through uninitialized memory, occasionally including
12 1.1 jakllsch whatever address the IDT has for #UD, but also addresses like "0x4" and
13 1.1 jakllsch "0x507" that you don't normally expect to see in your call path.
14 1.1 jakllsch
15 1.1 jakllsch Signed-off-by: Peter Jones <pjones (a] redhat.com>
16 1.1 jakllsch
17 1.1 jakllsch Author: Nigel Croxon <nigel.croxon (a] hp.com>
18 1.1 jakllsch Date: Wed Jun 12 10:29:40 2013 -0400
19 1.1 jakllsch
20 1.1 jakllsch bug in make 3.82 expand to odd values
21 1.1 jakllsch
22 1.1 jakllsch Some Makefiles tickle a bug in make 3.82 that cause libefi.a
23 1.1 jakllsch and libgnuefi.a dependencies to expand to the odd values:
24 1.1 jakllsch
25 1.1 jakllsch libefi.a: boxdraw.o) smbios.o) ...
26 1.1 jakllsch libgnuefi.a(reloc_x86_64.o:
27 1.1 jakllsch
28 1.1 jakllsch The patch replaces libgnuefi.a($(OBJS)) & libefi.a($(OBJS))
29 1.1 jakllsch with an equivalent expansion that should work with any make
30 1.1 jakllsch that supports $(patsubst).
31 1.1 jakllsch
32 1.1 jakllsch Author: Nigel Croxon <nigel.croxon (a] hp.com>
33 1.1 jakllsch Date: Wed Jun 12 09:53:01 2013 -0400
34 1.1 jakllsch
35 1.1 jakllsch support .text.* sections on x86_64
36 1.1 jakllsch
37 1.1 jakllsch Group them in .text. Also add vague linkage sections in .text.
38 1.1 jakllsch
39 1.1 jakllsch Signed-off-by: David Decotigny <decot (a] googlers.com>
40 1.1 jakllsch
41 1.1 jakllsch Author: Nigel Croxon <nigel.croxon (a] hp.com>
42 1.1 jakllsch Date: Wed Jun 12 09:51:36 2013 -0400
43 1.1 jakllsch
44 1.1 jakllsch cleanup and fix Make.defaults
45 1.1 jakllsch
46 1.1 jakllsch Reorder variables in Make.defaults so that they are grouped by
47 1.1 jakllsch functions. Also fixed ifeq (x,y) to have required syntax and make it
48 1.1 jakllsch work for ARCH amd64->x86_64 renaming on BSD. Also provides top-level
49 1.1 jakllsch Makefile with a "mkvars" target that displays effective variables.
50 1.1 jakllsch
51 1.1 jakllsch Signed-off-by: David Decotigny <decot (a] googlers.com>
52 1.1 jakllsch
53 1.1 jakllsch Author: Nigel Croxon <nigel.croxon (a] hp.com>
54 1.1 jakllsch Date: Wed Jun 12 09:47:16 2013 -0400
55 1.1 jakllsch
56 1.1 jakllsch automatically determine number of uefi_call_wrapper() args on x86_64
57 1.1 jakllsch
58 1.1 jakllsch Instead of asking developers to explicitly pass the number of
59 1.1 jakllsch parameters to the functions that get called, we determine them
60 1.1 jakllsch automatically at preprocessing time. This should result in more
61 1.1 jakllsch robust code.
62 1.1 jakllsch
63 1.1 jakllsch Argument va_num is now ignored in x86_64 code, both with and
64 1.1 jakllsch without HAVE_USE_MS_ABI.
65 1.1 jakllsch
66 1.1 jakllsch Credits to the macro magic given in the comments.
67 1.1 jakllsch
68 1.1 jakllsch Signed-off-by: David Decotigny <decot (a] googlers.com>
69 1.1 jakllsch
70 1.1 jakllsch Author: Nigel Croxon <nigel.croxon (a] hp.com>
71 1.1 jakllsch Date: Wed Jun 12 09:38:10 2013 -0400
72 1.1 jakllsch
73 1.1 jakllsch fix parameter-passing corruption on x86_64 for >= 5 args
74 1.1 jakllsch
75 1.1 jakllsch On x86_64 without HAVE_USE_MS_ABI support, uefi_call_wrapper() is a
76 1.1 jakllsch variadic function. Parameters >=5 are copied to the stack and, when
77 1.1 jakllsch passed small immediate values (and possibly other parameters), gcc
78 1.1 jakllsch would emit a movl instruction before calling uefi_call_wrapper(). As a
79 1.1 jakllsch result, only the lower 32b of these stack values are significant, the
80 1.1 jakllsch upper 32b potentially contain garbage. Considering that
81 1.1 jakllsch uefi_call_wrapper() assumes these arguments are clean 64b values
82 1.1 jakllsch before calling the efi_callX() trampolines, the latter may be passed
83 1.1 jakllsch garbage. This makes calling functions like
84 1.1 jakllsch EFI_PCI_IO_PROTOCOL.Mem.Read()/Write() or BS->OpenProtocol() quite
85 1.1 jakllsch unreliable.
86 1.1 jakllsch
87 1.1 jakllsch This patch fixes this by turning uefi_call_wrapper() into a macro that
88 1.1 jakllsch allows to expose the efi_callX() trampoline signatures to the callers,
89 1.1 jakllsch so that gcc can know upfront that it has to pass all arguments to
90 1.1 jakllsch efi_callX() as clean 64b values (eg. movq for immediates). The
91 1.1 jakllsch _cast64_efi_callX macros are just here to avoid a gcc warning, they do
92 1.1 jakllsch nothing otherwise.
93 1.1 jakllsch
94 1.1 jakllsch Signed-off-by: David Decotigny <decot (a] googlers.com>
95 1.1 jakllsch
96 1.1 jakllsch Author: noxorc <nigel.croxon (a] hp.com>
97 1.1 jakllsch Date: Wed May 15 15:26:16 2013 -0400
98 1.1 jakllsch
99 1.1 jakllsch - Removes the ElfW() macro usage from reloc_ia32.c and reloc_x86_64.c. These
100 1.1 jakllsch macros only exist in link.h on Linux. On FreeBSD, the equivalent macro is
101 1.1 jakllsch __ElfN(). But the macro usage is redundant. You're only going to compile the
102 1.1 jakllsch ia32 file for IA32 binaries and the x86_64 file for X64 binaries. If you had
103 1.1 jakllsch just one file built for both cases, then using the macro might make more
104 1.1 jakllsch sense.
105 1.1 jakllsch
106 1.1 jakllsch - Removes the "#define foo_t efi_foo_t" macros from reloc_ia32.c and
107 1.1 jakllsch reloc_x86_64.c.
108 1.1 jakllsch
109 1.1 jakllsch - Modifies inc/x86_64/efibind.h and inc/ia32/efibind.h to use the new
110 1.1 jakllsch definitions for uint64_t, int64_t and int8_t. The 64-bit types are now defined
111 1.1 jakllsch as:
112 1.1 jakllsch
113 1.1 jakllsch typedef int __attribute__((__mode__(__DI__))) int64_t;
114 1.1 jakllsch typedef unsigned int __attribute__((__mode__(__DI__))) uint64_t;
115 1.1 jakllsch
116 1.1 jakllsch This removes the conflict between the host types dragged in by elf.h and the
117 1.1 jakllsch type definitions in efibind.h that made the #define foo_t efi_foo_t" hack
118 1.1 jakllsch necessary. Also, int8_t is now defined as signed char instead of just char
119 1.1 jakllsch (assuming char == signed char is apparently not good enough).
120 1.1 jakllsch
121 1.1 jakllsch - Also modifies these files to use stdint.h instead of stdint-gcc.h. It's
122 1.1 jakllsch unclear if this is completely correct, but stdint-gcc.h is not present with
123 1.1 jakllsch all GCC installs, and if you use -std=c99 or later you will force this case to
124 1.1 jakllsch be hit. This also can break clang, which doesn't have a stdint-gcc.h at all.
125 1.1 jakllsch
126 1.1 jakllsch - Removes the #include of <link.h> from reloc_ia32.c and reloc_x86_64.c (since
127 1.1 jakllsch with the previous changes it's not needed anymore).
128 1.1 jakllsch
129 1.1 jakllsch - Places the #include of <elf.h> after #include <efi>/#include <efilib.h> so
130 1.1 jakllsch that we know the types will always be defined properly, in case you build on a
131 1.1 jakllsch system where <elf.h> doesn't automatically pull in the right header files to
132 1.1 jakllsch define all the needed types. (This actually happens on VxWorks. It's harmless
133 1.1 jakllsch elsewhere. If you don't care about VxWorks, you can leave this out.)
134 1.1 jakllsch
135 1.1 jakllsch - Modifies setjmp_ia32.S and setjmp_x86_64.S so to change "function" to
136 1.1 jakllsch @function. The clang compiler doesn't like the former. Clang and GCC both like
137 1.1 jakllsch the latter.
138 1.1 jakllsch
139 1.1 jakllsch - Modifles Make.defaults so that if ARCH is detected as "amd64," it's changed
140 1.1 jakllsch to "x86_64." It happens that uname -m on 64-bit FreeBSD reports the former
141 1.1 jakllsch rather than the latter, which breaks the build. This may also be the case on
142 1.1 jakllsch some other OSes. There's a way to force uname(1) to return x86_64 as the
143 1.1 jakllsch machine type, but this way is a little friendlier.
144 1.1 jakllsch
145 1.1 jakllsch - Creates gnuefi/elf_ia32_fbsd_efi.lds which specifies the object file type as
146 1.1 jakllsch elf-ia32-freebsd. This is required for building on FreeBSD/i386, not just
147 1.1 jakllsch FreeBSD/amd64.
148 1.1 jakllsch
149 1.1 jakllsch - Modifies apps/Makefile to always use
150 1.1 jakllsch $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds when building on either 32-bit or
151 1.1 jakllsch 64-bit FreeBSD instead of just for the x86_64 case.
152 1.1 jakllsch
153 1.1 jakllsch - Changed LDFLAGS in Make.defaults to include --no-undefined. This will cause
154 1.1 jakllsch linking to fail if there are any unsatisfied symbols when creating foo.so
155 1.1 jakllsch during any of the app builds, as opposed to just silently succeeding and
156 1.1 jakllsch producing an unusable binary.
157 1.1 jakllsch
158 1.1 jakllsch - Changed CFLAGS to include -ffreestanding -fno-stack-protector -fno-stack-
159 1.1 jakllsch check. This prevents clang from inserting a call to memset() when compiling
160 1.1 jakllsch the RtZeroMem() and RtSetMem() routines in lib/runtime/efirtlib.c and guards
161 1.1 jakllsch against the native compiler in some Linux distros from adding in stack
162 1.1 jakllsch checking code which relies on libc help that isn't present in the EFI runtime
163 1.1 jakllsch environment.
164 1.1 jakllsch
165 1.1 jakllsch This does the following:
166 1.1 jakllsch
167 1.1 jakllsch - Cleans up the ia32 and x86-64 relocation code a bit (tries to break the
168 1.1 jakllsch dependency between the host ELF headers and the EFI runtime environment)
169 1.1 jakllsch - Avoids the dependency on stdint-gcc.h which may not always be available
170 1.1 jakllsch - Allows GNU EFI to build out of the box on both FreeBSD/i386 and
171 1.1 jakllsch FreeBSD/amd64
172 1.1 jakllsch - Allows GNU EFI to build out of the box with either GCC or clang on
173 1.1 jakllsch FreeBSD/i386 and FreeBSD/amd64 9.0 and later.
174 1.1 jakllsch - Makes things a little easier to port to VxWorks
175 1.1 jakllsch - Avoids creating un-runable binaries with unresolved symbol definitions
176 1.1 jakllsch (which can be very confusing to debug)
177 1.1 jakllsch
178 1.1 jakllsch Author: noxorc <nigel.croxon (a] hp.com>
179 1.1 jakllsch Date: Wed May 8 16:29:45 2013 -0400
180 1.1 jakllsch
181 1.1 jakllsch Add the definitions for TCP, UDP and IP, for both IPv4 and IPv6.
182 1.1 jakllsch
183 1.1 jakllsch
184 1.1 jakllsch 2013-05-02 Nigel Croxon <nigel.croxon (a] hp.com>
185 1.1 jakllsch * Chnage from Matt Fleming <matt.fleming (a] intel.com>
186 1.1 jakllsch - Preparation for adding the networking protocol definitions.
187 1.1 jakllsch Add the service binding protocol.
188 1.1 jakllsch
189 1.1 jakllsch 2013-02-21 Nigel Croxon <nigel.croxon (a] hp.com>
190 1.1 jakllsch * Change from Peter Jones <pjones (a] redhat.com>
191 1.1 jakllsch - Previously we were incorrectly passing 3 functions with
192 1.1 jakllsch the System V ABI to UEFI functions as EFI ABI functions.
193 1.1 jakllsch Mark them as EFIAPI so the compiler will (in our new
194 1.1 jakllsch GNU_EFI_USE_MS_ABI world) use the correct ABI.
195 1.1 jakllsch - These need to be EFIAPI functions because in some cases
196 1.1 jakllsch they call ST->ConOut->OutputString(), which is an EFIAPI
197 1.1 jakllsch function. (Which means that previously in cases that
198 1.1 jakllsch needed "cdecl", these didn't work right.)
199 1.1 jakllsch - If the compiler version is new enough, and GNU_EFI_USE_MS_ABI
200 1.1 jakllsch is defined, use the function attribute ms_abi on everything
201 1.1 jakllsch defined with "EFIAPI". Such calls will no longer go through
202 1.1 jakllsch efi_call*, and as such will be properly type-checked.
203 1.1 jakllsch - Honor PREFIX and LIBDIR correctly when passed in during the build.
204 1.1 jakllsch - Add machine type defines for i386, arm/thumb, ia64, ebc, x86_64.
205 1.1 jakllsch - __STDC_VERSION__ never actually gets defined unless there's a
206 1.1 jakllsch --std=... line. So we were accidentally defining lots of c99
207 1.1 jakllsch types ourself. Since it's 2012, use --std=c11 where appropriate,
208 1.1 jakllsch and if it's defined and we're using gcc, actually include gcc's
209 1.1 jakllsch stdint definitions.
210 1.1 jakllsch - New test application added: route80h. This is a test program
211 1.1 jakllsch for PciIo. It routes ioport 80h on ICH10 to PCI. This is also
212 1.1 jakllsch useful on a very limited set of hardware to enable use of
213 1.1 jakllsch a port 80h debug card.
214 1.1 jakllsch - New test applcation added: modelist. This lists video modes
215 1.1 jakllsch the GOP driver is showing us.
216 1.1 jakllsch * Change from Finnbarr Murphy
217 1.1 jakllsch - https://sourceforge.net/p/gnu-efi/feature-requests/2/
218 1.1 jakllsch Please add the following status codes to <efierr.h>
219 1.1 jakllsch EFI_INCOMPATIBLE_VERSION 25
220 1.1 jakllsch EFI_SECURITY_VIOLATION 26
221 1.1 jakllsch EFI_CRC_ERROR 27
222 1.1 jakllsch EFI_END_OF_MEDIA 28
223 1.1 jakllsch EFI_END_OF_FILE 31
224 1.1 jakllsch EFI_INVALID_LANGUAGE 32
225 1.1 jakllsch EFI_COMPROMISED_DATA 33
226 1.1 jakllsch * Change from SourceForge.net Bug report
227 1.1 jakllsch - https://sourceforge.net/p/gnu-efi/bugs/5/
228 1.1 jakllsch BufferSize is a UINT64 *. The file shipped with GNU EFI is from
229 1.1 jakllsch 1998 whereas the latest one is from 2004. I suspect Intel changed
230 1.1 jakllsch the API in order handle 64-bit systems.
231 1.1 jakllsch * Change from Felipe Contreras <felipe.contreras (a] gmail.com>
232 1.1 jakllsch - The current code seems to screw the stack at certain points.
233 1.1 jakllsch Multiple people have complained that gummiboot hangs right away,
234 1.1 jakllsch which is in part the fault of gummiboot, but happens only
235 1.1 jakllsch because the stack gets screwed. x86_64 EFI already aligns the
236 1.1 jakllsch stack, so there's no need for so much code to find a proper
237 1.1 jakllsch alignment, we always need to shift by 8 anyway.
238 1.1 jakllsch * Change from A. Steinmetz
239 1.1 jakllsch - https://sourceforge.net/p/gnu-efi/patches/1/
240 1.1 jakllsch The patch prepares for elilo to support uefi pxe over ipv6
241 1.1 jakllsch See uefi spec 2.3.1 errata c page 963 as reference.
242 1.1 jakllsch Verfied on an ASUS Sabertooth X79 BIOS Rev. 2104 system which
243 1.1 jakllsch is able to do an IPv6 UEFI PXE boot.
244 1.1 jakllsch * Release 3.0t
245 1.1 jakllsch
246 1.1 jakllsch 2012-09-21 Nigel Croxon <nigel.croxon (a] hp.com>
247 1.1 jakllsch * Change from Peter Jones <pjones (a] redhat.com>
248 1.1 jakllsch - EFI Block I/O protocol versions 2 and 3 provide more information
249 1.1 jakllsch regarding physical disk layout, including alingment offset at the
250 1.1 jakllsch beginning of the disk ("LowestAlignedLba"), logical block size
251 1.1 jakllsch ("LogicalBlocksPerPhysicalBlock"), and optimal block transfer size
252 1.1 jakllsch ("OptimalTransferLengthGranularity").
253 1.1 jakllsch * Release 3.0r
254 1.1 jakllsch
255 1.1 jakllsch 2012-04-30 Nigel Croxon <nigel.croxon (a] hp.com>
256 1.1 jakllsch * Change from Matt Fleming <matt.fleming (a] intel.com>
257 1.1 jakllsch - The .reloc section is now 4096-byte boundary for x86_64.
258 1.1 jakllsch Without this patch the .reloc section will not adhere to
259 1.1 jakllsch the alignment value in the FileAlignment field (512 bytes by
260 1.1 jakllsch default) of the PE/COFF header. This results in a signed
261 1.1 jakllsch executable failing to boot in a secure boot environment.
262 1.1 jakllsch * Release 3.0q
263 1.1 jakllsch
264 1.1 jakllsch 2011-12-12 Nigel Croxon <nigel.croxon (a] hp.com>
265 1.1 jakllsch * Changes from Fenghua Yu <fenghua.yu (a] intel.com>
266 1.1 jakllsch - This fixes redefined types compilation failure for tcc.c on x86_64 machines.
267 1.1 jakllsch * Release 3.0p
268 1.1 jakllsch
269 1.1 jakllsch 2011-11-15 Nigel Croxon <nigel.croxon (a] hp.com>
270 1.1 jakllsch * Changes from Darren Hart <dvhart (a] linux.intel.com>
271 1.1 jakllsch - Conditionally assign toolchain binaries to allow overriding them.
272 1.1 jakllsch - Force a dependency on lib for gnuefi.
273 1.1 jakllsch * Release 3.0n
274 1.1 jakllsch
275 1.1 jakllsch 2011-08-23 Nigel Croxon <nigel.croxon (a] hp.com>
276 1.1 jakllsch * Changes from Peter Jones <pjones (a] redhat.com>
277 1.1 jakllsch - Add guarantee 16-byte stack alignment on x86_64.
278 1.1 jakllsch - Add routine to make callbacks work.
279 1.1 jakllsch - Add apps/tcc.efi to test calling convention.
280 1.1 jakllsch * Release 3.0m
281 1.1 jakllsch
282 1.1 jakllsch 2011-07-22 Nigel Croxon <nigel.croxon (a] hp.com>
283 1.1 jakllsch * Changed Makefiles from GPL to BSD.
284 1.1 jakllsch * Changes from Peter Jones <pjones (a] redhat.com>
285 1.1 jakllsch - Add ifdefs for ia64 to mirror ia32 and x86-64 so that
286 1.1 jakllsch one can build with GCC.
287 1.1 jakllsch - Add headers for PciIo.
288 1.1 jakllsch - Add the UEFI 2.x bits for EFI_BOOT_SERVICES
289 1.1 jakllsch - Add an ignore for .note.GNU-stack section in X86-64 linker maps.
290 1.1 jakllsch * Release 3.0l
291 1.1 jakllsch
292 1.1 jakllsch 2011-04-07 Nigel Croxon <nigel.croxon (a] hp.com>
293 1.1 jakllsch * Change license from GPL to BSD.
294 1.1 jakllsch * Release 3.0j
295 1.1 jakllsch
296 1.1 jakllsch 2009-09-12 Julien BLACHE <jb (a] jblache.org>
297 1.1 jakllsch * Add support for FreeBSD.
298 1.1 jakllsch * Release 3.0i
299 1.1 jakllsch
300 1.1 jakllsch 2009-09-11 Julien BLACHE <jb (a] jblache.org>
301 1.1 jakllsch * Fix elf_ia32_efi.lds linker script to be compatible with the new
302 1.1 jakllsch linker behaviour. Patch from the RedHat bugzilla 492183.
303 1.1 jakllsch
304 1.1 jakllsch 2009-06-18 Nigel Croxon <nigel.croxon (a] hp.com>
305 1.1 jakllsch * Release 3.0h
306 1.1 jakllsch
307 1.1 jakllsch 2008-11-06 Nigel Croxon <nigel.croxon (a] hp.com>
308 1.1 jakllsch * Fix to not having any relocations at all.
309 1.1 jakllsch
310 1.1 jakllsch 2008-09-18 Nigel Croxon <nigel.croxon (a] hp.com>
311 1.1 jakllsch * Use LIBDIR in makefiles
312 1.1 jakllsch * Add setjmp/longjmp
313 1.1 jakllsch * Fixes incorrect section attribute in crt0-efi-ia32.S
314 1.1 jakllsch * Adds value EfiResetShutdown to enum EFI_RESET_TYPE
315 1.1 jakllsch * Fixes a RAW warning in reloc_ia64.S
316 1.1 jakllsch * Adds the USB HCI device path structure in the headers
317 1.1 jakllsch patches were supplied by Peter Jones @ RedHat
318 1.1 jakllsch
319 1.1 jakllsch 2008-02-22 Nigel Croxon <nigel.croxon (a] hp.com>
320 1.1 jakllsch * Added '-mno-red-zone' to x68_64 compiles.
321 1.1 jakllsch Patch provided by Mats Andersson.
322 1.1 jakllsch
323 1.1 jakllsch 2008-01-23 Nigel Croxon <nigel.croxon (a] hp.com>
324 1.1 jakllsch * release 3.0e to support x86_64
325 1.1 jakllsch EFI calling convention, the stack should be aligned in 16 bytes
326 1.1 jakllsch to make it possible to use SSE2 in EFI boot services.
327 1.1 jakllsch This patch fixes this issue. Patch provided by Huang Ying from Intel.
328 1.1 jakllsch
329 1.1 jakllsch 2007-05-11 Nigel Croxon <nigel.croxon (a] hp.com>
330 1.1 jakllsch * release 3.0d to support x86_64 from Chandramouli Narayanan
331 1.1 jakllsch from Intel and based on 3.0c-1
332 1.1 jakllsch
333 1.1 jakllsch 2006-03-21 Stephane Eranian <eranian (a] hpl.hp.com>
334 1.1 jakllsch * merged patch to support gcc-4.1 submitted by
335 1.1 jakllsch Raymund Will from Novell/SuSE
336 1.1 jakllsch
337 1.1 jakllsch 2006-03-20 Stephane Eranian <eranian (a] hpl.hp.com>
338 1.1 jakllsch * updated ia-64 and ia-32 linker scripts to
339 1.1 jakllsch match latest gcc. The new gcc may put functions in
340 1.1 jakllsch .text* sections. patch submitted by H.J. Lu from Intel.
341 1.1 jakllsch
342 1.1 jakllsch 2004-11-19 Stephane Eranian <eranian (a] hpl.hp.com>
343 1.1 jakllsch * added patch to ignore .eh_frame section for IA-32. Patch
344 1.1 jakllsch submitted by Jim Wilson
345 1.1 jakllsch
346 1.1 jakllsch 2004-09-23 Stephane Eranian <eranian (a] hpl.hp.com>
347 1.1 jakllsch * added patch to discard unwind sections, newer toolchains
348 1.1 jakllsch complained about them. Patch submitted by Jesse Barnes from SGI.
349 1.1 jakllsch
350 1.1 jakllsch 2003-09-29 Stephane Eranian <eranian (a] hpl.hp.com>
351 1.1 jakllsch * updated elf_ia64_efi.lds to reflect new data sections
352 1.1 jakllsch created by gcc-3.3. Patch provided by Andreas Schwab from Suse.
353 1.1 jakllsch
354 1.1 jakllsch 2003-06-20 Stephane Eranian <eranian (a] hpl.hp.com>
355 1.1 jakllsch * updated elf_ia64_efi.lds and elf_ia32_efi.lds to include
356 1.1 jakllsch new types data sections produced by recent version of gcc-3.x
357 1.1 jakllsch
358 1.1 jakllsch 2002-02-22 Stephane Eranian <eranian (a] hpl.hp.com>
359 1.1 jakllsch * release 3.0a
360 1.1 jakllsch * modified both IA-64 and IA-32 loader scripts to add support for the
361 1.1 jakllsch new .rodata sections names (such as rodata.str2.8). Required
362 1.1 jakllsch for new versions of gcc3.x.
363 1.1 jakllsch
364 1.1 jakllsch 2001-06-20 Stephane Eranian <eranian (a] hpl.hp.com>
365 1.1 jakllsch * release 3.0
366 1.1 jakllsch * split gnu-efi package in two different packages: the libary+include+crt and the bootloader.
367 1.1 jakllsch * removed W2U() hack and related files to get from wide-char to unicode.
368 1.1 jakllsch * Use -fshort-wchar option for unicode.
369 1.1 jakllsch * restructured Makefiles now install under INSTALLROOT.
370 1.1 jakllsch
371 1.1 jakllsch 2001-04-06 Stephane Eranian <eranian (a] hpl.hp.com>
372 1.1 jakllsch
373 1.1 jakllsch * incorporated patches from David and Michael Johnston at Intel
374 1.1 jakllsch to get the package to compile for IA-32 linux target.
375 1.1 jakllsch
376 1.1 jakllsch * Fixed ELILO to compile for Ia-32 (does not execute yet, though):
377 1.1 jakllsch Makefile and start_kernel() function.
378 1.1 jakllsch
379 1.1 jakllsch 2001-04-06 Andreas Schwab <schwab (a] suse.de>
380 1.1 jakllsch
381 1.1 jakllsch * Fixed config.c to
382 1.1 jakllsch get the timeout directive to do something. implemented the global
383 1.1 jakllsch root= directive.
384 1.1 jakllsch
385 1.1 jakllsch * Fix the efi_main() to deal with the -C option properly
386 1.1 jakllsch
387 1.1 jakllsch 2001-04-05 Stephane Eranian <eranian (a] hpl.hp.com>
388 1.1 jakllsch
389 1.1 jakllsch * update efi library to latest EFI toolkit 1.02 as distributed
390 1.1 jakllsch by Intel. Fixed header + library files to compile with GCC
391 1.1 jakllsch
392 1.1 jakllsch * merged ELI and LILO (as of gnu-efi-1.1) together, mostly
393 1.1 jakllsch taking the config file feature of ELI.
394 1.1 jakllsch
395 1.1 jakllsch * renamed LILO to ELILO to make the distinction
396 1.1 jakllsch
397 1.1 jakllsch * restructured code to make it easier to understand and maintain
398 1.1 jakllsch
399 1.1 jakllsch * fixed FPSWA driver checking and loading: we try all possible
400 1.1 jakllsch files and let the driver itself figure out if it is the most
401 1.1 jakllsch recent.
402 1.1 jakllsch * added support for compression (gzip) but keep support for plain
403 1.1 jakllsch ELF image. ELILO autodetects the format
404 1.1 jakllsch
405 1.1 jakllsch * change the way the kernel is invoked. Now we call it in
406 1.1 jakllsch physical memory mode. This breaks the dependency between the
407 1.1 jakllsch kernel code and the loader. No more lilo_start.c madness.
408 1.1 jakllsch
409 1.1 jakllsch * changed the way the boot_params are passed. We don't use the
410 1.1 jakllsch ZERO_PAGE_ADDR trick anymore. Instead we use EFI runtime memory.
411 1.1 jakllsch The address of the structure is passed to the kernel in r28
412 1.1 jakllsch by our convention.
413 1.1 jakllsch
414 1.1 jakllsch * released as gnu-efi-2.0
415 1.1 jakllsch
416 1.1 jakllsch 2001-04-03 David Mosberger <davidm (a] hpl.hp.com>
417 1.1 jakllsch
418 1.1 jakllsch * gnuefi/reloc_ia32.c (_relocate): Change return type from "void"
419 1.1 jakllsch to "int". Return error status if relocation fails for some
420 1.1 jakllsch reason.
421 1.1 jakllsch
422 1.1 jakllsch * gnuefi/elf_ia32_efi.lds: Drop unneeded ".rel.reloc" section.
423 1.1 jakllsch
424 1.1 jakllsch * gnuefi/crt0-efi-ia32.S (_start): Exit if _relocate() returns with
425 1.1 jakllsch non-zero exit status.
426 1.1 jakllsch
427 1.1 jakllsch * inc/ia32/efibind.h [__GNUC__]: Force 8-byte alignment for 64-bit
428 1.1 jakllsch types as that is what EFI appears to be expecting, despite the
429 1.1 jakllsch "#pragma pack()" at the beginning of the file!
430 1.1 jakllsch
431 1.1 jakllsch 2001-03-29 David Mosberger <davidm (a] hpl.hp.com>
432 1.1 jakllsch
433 1.1 jakllsch * gnuefi/reloc_ia32.c: Add a couple of defines to work around
434 1.1 jakllsch libc/efilib collision on uint64_t et al.
435 1.1 jakllsch (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
436 1.1 jakllsch
437 1.1 jakllsch * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
438 1.1 jakllsch
439 1.1 jakllsch 2001-03-29 David Mosberger <davidm (a] hpl.hp.com>
440 1.1 jakllsch
441 1.1 jakllsch * gnuefi/reloc_ia32.c: Add a couple of defines to work around
442 1.1 jakllsch libc/efilib collision on uint64_t et al.
443 1.1 jakllsch (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
444 1.1 jakllsch
445 1.1 jakllsch * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
446 1.1 jakllsch
447 1.1 jakllsch 2000-10-26 David Mosberger <davidm (a] hpl.hp.com>
448 1.1 jakllsch
449 1.1 jakllsch * gnuefi/elf_ia64_efi.lds: Mention .rela.sdata.
450 1.1 jakllsch
451 1.1 jakllsch * Make.defaults (CFLAGS): Remove -nostdinc flags so we can pick
452 1.1 jakllsch up the C compiler's stdarg.h.
453 1.1 jakllsch
454 1.1 jakllsch * inc/stdarg.h: Remove this file. It's not correct for gcc (nor
455 1.1 jakllsch most other optimizing compilers).
456 1.1 jakllsch
457 1.1 jakllsch 2000-10-10 Stephane Eranian <eranian (a] hpl.hp.com>
458 1.1 jakllsch
459 1.1 jakllsch * cleaned up the error message and printing of those.
460 1.1 jakllsch * added support to load the FPSWA from a file in case support is not
461 1.1 jakllsch present in the firmware already
462 1.1 jakllsch * fixed split_args() to do the right thing when you have leading spaces
463 1.1 jakllsch before kernel name
464 1.1 jakllsch * changed the argify() function to rely on \0 instead of LoadOptionSize
465 1.1 jakllsch as the field seems to be broken with current firmware
466 1.1 jakllsch * bumped version to 1.0
467 1.1 jakllsch
468 1.1 jakllsch 2000-10-04 David Mosberger <davidm (a] hpl.hp.com>
469 1.1 jakllsch
470 1.1 jakllsch * gnuefi/reloc_ia64.S: Reserve space for up to 750 function descriptors.
471 1.1 jakllsch
472 1.1 jakllsch * gnuefi/elf_ia64_efi.lds: Add .sdata section for small data and
473 1.1 jakllsch put __gp in the "middle" of it.
474 1.1 jakllsch
475 1.1 jakllsch * gnuefi/crt0-efi-ia64.S (_start): Use movl/add to load
476 1.1 jakllsch gp-relative addresses that could be out of the range of the addl
477 1.1 jakllsch offset.
478 1.1 jakllsch * gnuefi/reloc_ia64.S (_relocate): Ditto.
479 1.1 jakllsch
480 1.1 jakllsch * apps/Makefile: Remove standard rules and include Make.rules instead.
481 1.1 jakllsch * lilo/Makefile: Ditto.
482 1.1 jakllsch
483 1.1 jakllsch * Make.rules: New file.
484 1.1 jakllsch
485 1.1 jakllsch 2000-08-04 Stephane Eranian <eranian (a] hpl.hp.com>
486 1.1 jakllsch * released version 0.9
487 1.1 jakllsch * incorporated ACPI changes for Asuza by NEC < kouchi (a] hpc.bs1.fc.nec.co.jp>
488 1.1 jakllsch * added support for initrd (-i option) original ELI code from Bill Nottingham <notting (a] redhat.com>)
489 1.1 jakllsch * lots of cleanups
490 1.1 jakllsch * got rid of #ifdef LILO_DEBUG and uses macro instead
491 1.1 jakllsch * fix a few extra memory leaks in create_boot_params()
492 1.1 jakllsch * added exit capability just before starting the kernel
493 1.1 jakllsch
494 1.1 jakllsch 2000-06-22 David Mosberger <davidm (a] hpl.hp.com>
495 1.1 jakllsch
496 1.1 jakllsch * gnuefi/elf_ia64_efi.lds: Add .srodata, .ctors, .IA64.unwind,
497 1.1 jakllsch .IA64.unwind_info to .data section and .rela.ctors to .rela
498 1.1 jakllsch section.
499 1.1 jakllsch
500 1.1 jakllsch 2000-04-03 David Mosberger <davidm (a] hpl.hp.com>
501 1.1 jakllsch
502 1.1 jakllsch * lilo/lilo.c (LILO_VERSION): Up version number to 0.9.
503 1.1 jakllsch
504 1.1 jakllsch * gnuefi/elf_ia64_efi.lds: Include .IA_64.unwind and
505 1.1 jakllsch .IA_64.unwind_info in .data segment to avoid EFI load error
506 1.1 jakllsch "ImageAddress: pointer outside of image" error due to the .dynsym
507 1.1 jakllsch relocations against these sections.
508 1.1 jakllsch
509 1.1 jakllsch * ChangeLog: Moved from lilo/ChangeLogs.
510 1.1 jakllsch
511 1.1 jakllsch * gnuefi/reloc_ia64.S: fixed typo: .space directive had constant
512 1.1 jakllsch 100 hardcoded instead of using MAX_FUNCTION_DESCRIPTORS
513 1.1 jakllsch macro. Duh.
514 1.1 jakllsch
515 1.1 jakllsch Fri Mar 17 15:19:18 PST 2000 Stephane Eranian <eranian (a] hpl.hp.com>
516 1.1 jakllsch
517 1.1 jakllsch * Released 0.8
518 1.1 jakllsch * replace the getopt.c with new version free with better license
519 1.1 jakllsch * created a documentation file
520 1.1 jakllsch * fix a couple of memory leaks
521 1.1 jakllsch * code cleanups
522 1.1 jakllsch * created a separate directory for lilo in the gnu-efi package.
523 1.1 jakllsch * added support for the BOOT_IMAGE argument to kernel
524 1.1 jakllsch * default is to build natively now
525