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