xref: /DragonStub/ChangeLog (revision aac405cc66adb9f7c30fb68d9042a7dd8780def8)
1    Updated Changelog
2
3    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
4
5commit 37d7bee82a627999563069b090866076e055a871
6Author: Nigel Croxon <nigel.croxon@hp.com>
7Date:   Thu May 14 12:38:39 2015 -0400
8
9    Added some missing error code descriptions
10
11    Signed-off-by: Peter Jones <pjones@redhat.com>
12    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
13
14commit dae0b4b0b0d522caecf09123db2cf0250c37a169
15Author: Nigel Croxon <nigel.croxon@hp.com>
16Date:   Thu May 14 12:20:51 2015 -0400
17
18    Turns out we actually need setjmp in one of gnu-efi's prominent
19    users, and it seems to make more sense to put it here than in
20    the application.
21
22    All of these are derived from the Tiano code, but I re-wrote the
23    x86_64 one because we use the ELF psABI calling conventions instead
24    of the MS ABI calling conventions.  Which is to say you probably
25    shouldn't setjmp()/longjmp() between functions with EFIAPI (aka
26    __attribute__((ms_abi))) and those without.
27
28    Signed-off-by: Peter Jones <pjones@redhat.com>
29    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
30
31commit b5a8e93cec396381a6d2beee022abbf50100f2fd
32Author: Nigel Croxon <nigel.croxon@hp.com>
33Date:   Fri Apr 10 08:49:50 2015 -0400
34
35    Bump version to 3.0.2
36
37    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
38
39commit 01c9f11ed5ad55661e8fc8a3eee35c578564754b
40Author: Nigel Croxon <nigel.croxon@hp.com>
41Date:   Fri Apr 10 08:46:40 2015 -0400
42
43    Fix ARM32 and AARCH64 builds
44    Without these added into SUBDIRS the initplat.c compilation will fail.
45
46    Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
47    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
48    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
49
50commit dada63fd3de148c6f8551d253355c113547cd5a0
51Author: Nigel Croxon <nigel.croxon@hp.com>
52Date:   Mon Mar 23 10:41:43 2015 -0400
53
54    [PATCH] _SPrint: fix NULL termination
55
56    maxlen is the maximum string length not the buffer size.
57
58    Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
59    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
60
61commit ce7098fb52e5fd4d16038964d029eb759f28eaaf
62Author: Nigel Croxon <nigel.croxon@hp.com>
63Date:   Thu Feb 19 11:22:45 2015 -0500
64
65    Enable out-of-tree building
66
67    This patch enables building gnu-efi outside of the source tree.
68    That in turn enables building for multiple architectures in parallel.
69
70    The build directory is controlled by the OBJDIR make variable.  It
71    defaults to the value of ARCH, and can be overridden from the command
72    line.
73
74    This patch also cleans up some doubled slashes between INSTALLROOT
75    and PREFIX.
76
77    Signed-off-by: Jonathan Boeing <jonathan.n.boeing@gmail.com>
78    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
79
80commit f64cef26270bfbe04f038da33f95ae3f14c071bc
81Author: Nigel Croxon <nigel.croxon@hp.com>
82Date:   Tue Jan 6 15:49:50 2015 -0500
83
84    Since we're keeping this in git, it'd be nice not to see a bunch
85    of make targets in 'status'
86
87    Signed-off-by: Peter Jones <pjones@redhat.com>
88    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
89
90commit 322efb6b21ed0a5e42e8f124fd22bf0f8dbf01ae
91Author: Nigel Croxon <nigel.croxon@hp.com>
92Date:   Mon Jan 5 13:20:43 2015 -0500
93
94    version number changed from VERSION = 3.0u to VERSION = 3.0.1
95
96    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
97
98commit 09027207f7c18af6caa45a744fc15c90b2a829db
99Author: Nigel Croxon <nigel.croxon@hp.com>
100Date:   Mon Jan 5 13:13:22 2015 -0500
101
102    From: Pete Batard <pete@akeo.ie>
103    Date: Wed, 10 Dec 2014 21:08:34 +0000
104    Subject: [PATCH] fixes for MSVC compilation
105
106    These fixes are needed to address the following error and warnings when compiling the library part
107    using Visual Studio 2013 Community Edition (as in https://github.com/pbatard/uefi-simple):
108    * "lib\x86_64\math.c(49): error C4235: nonstandard extension used : '_asm' keyword not supported
109      on this architecture"
110    * "lib\print.c(98): error C2059: syntax error : '('" due to placement of EFIAPI macro
111    * "lib\cmdline.c(94): warning C4090: 'function' : different 'const' qualifiers"
112    * "lib\smbios.c(25): warning C4068: unknown pragma"
113    * Also update macro definitions in "inc\<arch>\efibind.h" for MSVC
114
115    Signed-off-by: Pete Batard <pete@akeo.ie>
116    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
117
118commit 15805ff38b83a72c2c7c96a24bd642ee1176d819
119Author: Nigel Croxon <nigel.croxon@hp.com>
120Date:   Tue Nov 25 14:23:21 2014 -0500
121
122    Add README.git file. Instructions on how to archive.
123
124    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
125
126commit b868aa75669723b7e32f46524822e17e388fe2ba
127Author: Nigel Croxon <nigel.croxon@hp.com>
128Date:   Tue Nov 25 13:26:45 2014 -0500
129
130    This patch makes generating releases from git a very simple process; you
131    simply edit the makefile's "VERSION" line to the new version, commit
132    that as its own commit, and do: "make test-archive".  That'll make a
133    file in the current directory gnu-efi-$VERSION.tar.bz2 , with its top
134    level directory gnu-efi-$VERSION/ and the source tree under that.
135
136    Once you've tested that and you're sure it's what you want to release,
137    you do "make archive", which will tag a release in git and generate a
138    final tarball from it.  You then push to the archive, being sure to
139    include the tag:
140
141    git push origin master:master --tags
142
143    And upload the archive wherever it's supposed to go.
144
145    Signed-off-by: Peter Jones <pjones@redhat.com>
146    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
147
148commit 530d68ba191850edafc6da22cb2df55bec0c5fa5
149Author: Nigel Croxon <nigel.croxon@hp.com>
150Date:   Tue Nov 25 10:09:50 2014 -0500
151
152    The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it.
153
154    Signed-off-by: Peter Jones <pjones@redhat.com>
155    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
156
157commit 00bd66ef46b59a1623a293491a8b2c65a6d61975
158Author: Nigel Croxon <nigel.croxon@hp.com>
159Date:   Mon Nov 24 14:33:09 2014 -0500
160
161    FreeBSD's binutils doesn't have "-j <glob>" support, so we need to
162    include non-globbed versions of .rel/.rela individually.
163
164    Signed-off-by: Peter Jones <pjones@redhat.com>
165    Signed-off-by: Bill Paul <wpaul@windriver.com>
166    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
167
168commit 56eb64d3c06854b9b68d61e3c2d3bdf6ff2a9853
169Author: Nigel Croxon <nigel.croxon@hp.com>
170Date:   Mon Nov 24 14:27:14 2014 -0500
171
172    Right now we wind up trying to build gnuefi/.o from a source file that's
173    an empty string.  This is caused by the macros trying to generate
174    install rules, but there's no real reason to have all that anyway.  So
175    just have some static install rules that are simpler and don't generate
176    stuff on the fly.
177
178    Signed-off-by: Peter Jones <pjones@redhat.com>
179    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
180
181commit 65e28a90a7be9e990b360286cea31e63319217fb
182Author: Nigel Croxon <nigel.croxon@hp.com>
183Date:   Mon Nov 24 12:17:45 2014 -0500
184
185    Add current OsIndications values.
186
187    Signed-off-by: Peter Jones <pjones@redhat.com>
188    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com
189
190commit be231055ce14d17610f0d7b6133a87b99a22662b
191Author: Nigel Croxon <nigel.croxon@hp.com>
192Date:   Mon Nov 24 12:15:34 2014 -0500
193
194    Add the QueryVariableInfo() API.
195
196    Signed-off-by: Peter Jones <pjones@redhat.com>
197    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
198
199commit 60efb7a2939b65a01e95aa8b535f1b756d984fba
200Author: Nigel Croxon <nigel.croxon@hp.com>
201Date:   Mon Nov 24 12:13:23 2014 -0500
202
203    Add the capsule API.
204
205    Signed-off-by: Peter Jones <pjones@redhat.com>
206    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
207
208commit ef08b655d1f8dfbd9a0f3a86d5685b24695ef12f
209Author: Nigel Croxon <nigel.croxon@hp.com>
210Date:   Mon Nov 17 16:05:42 2014 -0500
211
212    Fix Table Header misspelling. Change from EFI_TABLE_HEARDER to
213    EFI_TABLE_HEADER.
214
215    Signed-Off-By: Nigel Croxon <nigel.croxon@hp.com>
216
217commit 370cce41da3fff41ba38feb1262002aff2d85ffd
218Author: Nigel Croxon <nigel.croxon@hp.com>
219Date:   Thu Nov 6 14:41:40 2014 -0500
220
221    If CROSS_COMPILE is set, ignore the ARCH value supplied on the
222    command line and use the target machine of the cross compiler.
223
224    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
225    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
226
227commit d32fb845433ff6fb38e81ae0d9273454e7d18197
228Author: Nigel Croxon <nigel.croxon@hp.com>
229Date:   Thu Nov 6 14:30:03 2014 -0500
230
231    Allow reuse of this file beyond GPL compatible software,
232    update the license of crt0-efi-aarch64.S to dual 2-clause BSD/GPLv2+.
233
234    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
235    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
236
237commit aa1df67f48f3c035fa8891e1bb311ec21500d6d9
238Author: Nigel Croxon <nigel.croxon@hp.com>
239Date:   Tue Oct 21 11:08:47 2014 -0400
240
241    Add the missing Variable attributes
242
243    From: Jeremy Compostella <jeremy.compostella@intel.com>
244    Date: Mon, 13 Oct 2014 17:50:50 +0200
245    Subject: [PATCH] Add the missing Variable attributes
246
247    Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
248    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
249
250commit 5706dff09364cbbec37f47e2fe1350747f631d74
251Author: Nigel Croxon <nigel.croxon@hp.com>
252Date:   Tue Aug 26 10:54:22 2014 -0400
253
254    From: David Decotigny <decot@googlers.com>
255    Date: Mon, 25 Aug 2014 13:28:49 -0700
256    Subject: [PATCH] document that binutils >= 2.24 needed.
257
258    commit ac983081 "Add support for non-PE/COFF capable objcopy" depends
259    on objcopy accepting wildcards for the section names. This feature is
260    available only with binutils >= 2.24 (binutils 2e62b7218 "PR
261    binutils/15033").
262
263    Signed-off-by: David Decotigny <decot@googlers.com>
264    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
265
266commit 6c10e225bc759d69af520a551b9d7b37f3ae0a82
267Author: Nigel Croxon <nigel.croxon@hp.com>
268Date:   Mon Aug 25 08:51:23 2014 -0400
269
270    From: David Decotigny <decot@googlers.com>
271    Date: Thu, 31 Jul 2014 18:19:16 -0700
272    Subject: [PATCH 5/5] allow to use external stdarg.h
273
274    in cases we use gnu-efi together with other libs that define stdarg.h,
275    break the tie by telling gnu-efi to use that stdarg.h .
276
277    Signed-off-by: David Decotigny <decot@googlers.com>
278    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
279
280commit 16d65c0669258c8044e3549b2d9eb0cf0eb08f5a
281Author: Nigel Croxon <nigel.croxon@hp.com>
282Date:   Tue Aug 19 12:07:00 2014 -0400
283
284    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
285    Date: Mon, 11 Aug 2014 15:39:16 +0200
286    Subject: [PATCH] Add support for 32-bit ARM
287
288    This adds support for 32-bit ARM using an approach similar to the one used for
289    64-bit ARM (AArch64), i.e., it does not rely on an objcopy that is aware of EFI
290    or PE/COFF, but lays out the entire PE/COFF header using the assembler.
291
292    In the 32-bit ARM case (which does not have a division instruction), some code
293    has been imported from the Linux kernel to perform the division operations in
294    software.
295
296    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
297    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
298
299commit b28143d4fb4f6969dc0c87c853d3527d889951d7
300Author: Nigel Croxon <nigel.croxon@hp.com>
301Date:   Fri Aug 8 15:54:19 2014 -0400
302
303    Updated Changelog
304
305    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
306
307commit 1525190354f5faac33015e17c9ba7ea2bb2be35b
308Author: Nigel Croxon <nigel.croxon@hp.com>
309Date:   Fri Aug 8 15:35:09 2014 -0400
310
311    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
312    Date: Fri, 8 Aug 2014 18:16:59 +0200
313    Subject: [PATCH 4/4] Add support for 64-bit ARM (AArch64)
314
315    This adds support for 64-bit ARM (AArch64) environments. Since there is no
316    EFI-capable objcopy for this platform, this contains a manually laid out
317    PE/COFF header using the assembler.
318
319    In addition, it includes the relocation bits, some string functions that GCC
320    assumes are available and other glue to hold it all together.
321
322    This can be cross built using
323
324        make CROSS_COMPILE=aarch64-linux-gnu-
325
326    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
327    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
328
329commit ac983081525f9483941517dfb53cf8d0163d49c0
330Author: Nigel Croxon <nigel.croxon@hp.com>
331Date:   Fri Aug 8 15:32:26 2014 -0400
332
333    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
334    Date: Fri, 8 Aug 2014 17:53:42 +0200
335    Subject: [PATCH 3/4] Add support for non-PE/COFF capable objcopy
336
337    Introduce HAVE_EFI_OBJCOPY and set it if objcopy for $ARCH support PE/COOF and
338    EFI, i.e., it supports --target efi-[app|bsdrv|rtdrv] options. Use it to decide
339    whether to invoke objcopy with those options or use the linker to populate the
340    PE/COFF header.
341
342    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
343    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
344
345commit fb063f0f65543b3e2bf55a39d5aa70b17a98c65e
346Author: Nigel Croxon <nigel.croxon@hp.com>
347Date:   Fri Aug 8 15:26:38 2014 -0400
348
349    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
350    Date: Fri, 8 Aug 2014 17:37:36 +0200
351    Subject: [PATCH 2/4] Add support for cross compilation
352
353    This changes the logic that defines ARCH (and HOSTARCH) to take CROSS_COMPILE
354    into account. Also, $prefix is not assigned, so that the default will be what
355    is on the path rather than hardcoded in /usr/bin.
356
357    This results in the build doing the right thing if CROSS_COMPILE is set in the
358    environment and no ARCH or prefix options are passed to make, aligning it with
359    most other CROSS_COMPILE compatible projects.
360
361    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
362    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
363
364commit 7a98d83fc32de6cf0b1ce5e12dfe80690f29fb3f
365Author: Nigel Croxon <nigel.croxon@hp.com>
366Date:   Fri Aug 8 15:25:03 2014 -0400
367
368    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
369    Date: Fri, 8 Aug 2014 16:50:45 +0200
370    Subject: [PATCH 1/4] Restrict GNU_EFI_USE_MS_ABI GCC version test to x86_64
371
372    The version test only applies to x86_64 builds, so no need to do it
373    for other archs.
374
375    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
376    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
377
378commit f42974dd9a7d0ea690d293f88396abd289f0014c
379Author: Nigel Croxon <nigel.croxon@hp.com>
380Date:   Fri Aug 8 15:21:16 2014 -0400
381
382    From: David Decotigny <decot@googlers.com>
383    Date: Thu, 31 Jul 2014 13:42:23 -0700
384    Subject: [PATCH 4/4] Use Shell protocols to retrieve argc/argv, when
385     available.
386
387    New header files efishellintf.h efishellparm.h are coming from EDK
388    II, initial location and license at top of files. Only modifications:
389     - efishellintf.h: s/EFI_FILE_PROTOCOL/EFI_FILE/ + expand BITx macros (1<<x)
390     - efishellparm.h: typedef VOID *SHELL_FILE_HANDLE to avoid including
391       ShellBase.h
392     - both: removed extern EFI_GUID variable decls
393
394    This also adds apps/t8.c, a simple demo.
395
396    Signed-off-by: David Decotigny <decot@googlers.com>
397    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
398
399commit a61fa058e9a87f966de3342b8c95fdbdcb007827
400Author: Nigel Croxon <nigel.croxon@hp.com>
401Date:   Fri Aug 8 15:17:32 2014 -0400
402
403    From: David Decotigny <decot@googlers.com>
404    Date: Thu, 31 Jul 2014 13:41:52 -0700
405    Subject: [PATCH 3/4] document format of LoadedImage::LoadOptions data
406
407    Signed-off-by: David Decotigny <decot@googlers.com>
408    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
409
410commit 2f440200c855154f929d28971b2fd702ea7a207a
411Author: Nigel Croxon <nigel.croxon@hp.com>
412Date:   Fri Aug 8 15:15:59 2014 -0400
413
414    From: David Decotigny <decot@googlers.com>
415    Date: Thu, 31 Jul 2014 13:39:37 -0700
416    Subject: [PATCH 2/4] Use OpenProtocol instead of HandleProtocol
417
418    UEFI 2.x recommends OpenProtocol instead of HandleProtocol.
419
420    Signed-off-by: David Decotigny <decot@googlers.com>
421    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
422
423commit 7f173da1e54f8cfe4c7c7c091ab6585af07b25ce
424Author: Nigel Croxon <nigel.croxon@hp.com>
425Date:   Fri Aug 8 15:14:26 2014 -0400
426
427    From: David Decotigny <decot@googlers.com>
428    Date: Thu, 31 Jul 2014 13:30:07 -0700
429    Subject: [PATCH 1/4] move cmdline parser to its own file
430
431    Signed-off-by: David Decotigny <decot@googlers.com>
432    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
433
434commit 0ad8fb87cbc59f58675b18253ad802ba51f1d132
435Author: Nigel Croxon <nigel.croxon@hp.com>
436Date:   Wed Jul 30 15:06:36 2014 -0400
437
438    From: David Decotigny <decot@googlers.com>
439    Date: Mon, 28 Jul 2014 21:28:50 -0700
440    Subject: [PATCH 3/3] make cmdline parsing a 1st class citizen
441
442    Refactor ParseCmdline and apps/Alloc+FreePages to factorize
443    boilerplate and move the new parser to the main API.
444
445    Signed-off-by: David Decotigny <decot@googlers.com>
446    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
447
448commit ff7ec964f2c0de0cfc4b52cfdd356003450f28bf
449Author: Nigel Croxon <nigel.croxon@hp.com>
450Date:   Wed Jul 30 15:05:28 2014 -0400
451
452    From: David Decotigny <decot@googlers.com>
453    Date: Mon, 28 Jul 2014 21:00:52 -0700
454    Subject: [PATCH 2/3] Avoid buffer overflow while parsing the cmdline args
455
456    Signed-off-by: David Decotigny <decot@googlers.com>
457    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
458
459commit 8d86ee202a9bb553375f56ae1d2944818112b68b
460Author: Nigel Croxon <nigel.croxon@hp.com>
461Date:   Wed Jul 30 15:04:44 2014 -0400
462
463    From: David Decotigny <decot@googlers.com>
464    Date: Mon, 28 Jul 2014 21:01:35 -0700
465    Subject: [PATCH 1/3] Fix cmdline parser
466
467    The cmdline parser would not return the correct number of args, would
468    allocate one too many. Also make it clear from the declaration that we
469    expect a suitably lare argv.
470
471    Signed-off-by: David Decotigny <decot@googlers.com>
472    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
473
474commit 1ec094bfaf46a610a740dadc0150bf457dd72345
475Author: Nigel Croxon <nigel.croxon@hp.com>
476Date:   Wed Jul 23 09:54:25 2014 -0400
477
478    From: Julian Klode <julian.klode@gmail.com>
479    Date: Mon, 21 Jul 2014 14:26:23 -0400
480    Subject: [PATCH] inc/efistdarg.h: Use gcc builtins instead of stdarg.h or broken stubs
481
482    We cannot use stdarg.h, as this breaks applications compiling
483    with -nostdinc because those will not find the header.
484    We also cannot use the stubs, as they just produce broken code,
485    as seen in the gummiboot 45-1 Debian release.
486
487    Signed-off-by: Julian Klode <julian.klode@gmail.com>
488    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
489
490commit 6caab22f23434f41f42cfe7591d9a7ae66de9f0a
491Author: Nigel Croxon <nigel.croxon@hp.com>
492Date:   Thu Jun 19 10:39:23 2014 -0400
493
494    From: Laszlo Ersek <lersek@redhat.com>
495    Date: Mon, 2 Jun 2014 23:26:48 +0200
496    Subject: [PATCH] always observe EFIAPI calling convention when calling
497     STO.SetAttribute
498
499    We have to consider the following cases wrt. the PRINT_STATE.Output and
500    PRINT_STATE.SetAttr EFIAPI function pointers, especially when building for
501    x86_64 with gcc:
502
503    (1) The compiler is new enough, and EFIAPI actually ensures the Microsoft
504        calling convention. In this case everything happens to work fine even
505        if we forget uefi_call_wrapper(), because the wrapper would expand to
506        a normal C function call anyway.
507
508    (2) Otherwise (ie. gcc is old), EFIAPI expands to nothing, and we must
509        take into account the called function's origin:
510
511      (2a) If the callee that is declared EFIAPI is *defined* inside gnu-efi,
512           then EFIAPI means nothing for the callee too, so caller and callee
513           only understand each other if the caller intentionally omits
514           uefi_call_wrapper().
515
516      (2b) If the callee that is declared EFIAPI is defined by the platform
517           UEFI implementation, then the caller *must* use
518           uefi_call_wrapper().
519
520    The PRINT_STATE.Output EFIAPI function pointer is dereferenced correctly:
521    the PFLUSH() distinguishes cases (2a) from (2b) by using IsLocalPrint().
522
523    However use of the PRINT_STATE.SetAttr EFIAPI function pointer is not
524    always correct:
525
526    - The PSETATTR() helper function always relies on the wrapper (case (2b)).
527      This is correct, because PRINT_STATE.SetAttr always points to a
528      platform-provided function.
529
530    - The DbgPrint() function contains two incorrect calls: they mistakenly
531      assume case (2a) (or case (1)), even though the pointer always points to
532      a platform function, implying (2b). (The error is masked in case (1).)
533      Fix them.
534
535    Signed-off-by: Laszlo Ersek <lersek@redhat.com>
536    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
537
538commit ecfd1ded9a799c3a572d4eb7fbb52582fe4d3390
539Author: Nigel Croxon <nigel.croxon@hp.com>
540Date:   Tue Jun 10 12:59:09 2014 -0400
541
542    Add VPoolPrint Function
543
544    Equivalent to PoolPrint but using a va_list parameter
545
546    Signed-off-by: Sylvain Chouleur <sylvain.chouleur@intel.com>
547    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
548
549commit f16d93f3b9e314336a387a3885c7fd2f176c41d3
550Author: Nigel Croxon <nigel.croxon@hp.com>
551Date:   Fri May 16 11:33:51 2014 -0400
552
553    Revert "The prototype of DbgPrint() is incorrect, at the end of "inc/efidebug.h"."
554    A problem was found compiling on GCC 4.8.
555
556    This reverts commit 644898eabc06c8efaa3aa54f84cdd468960a2f6c.
557
558commit 644898eabc06c8efaa3aa54f84cdd468960a2f6c
559Author: Nigel Croxon <nigel.croxon@hp.com>
560Date:   Wed May 14 09:09:47 2014 -0400
561
562    The prototype of DbgPrint() is incorrect, at the end of "inc/efidebug.h".
563    Consequently, when your program calls DbgPrint() via the DEBUG() macro,
564    it fails to set up the stack correctly (it does not pass the arguments
565    through the ellipsis (...) according to the EFIAPI calling convention).
566    However, va_start() inside DbgPrint() *assumes* that stack.
567
568    Signed-off-by: Laszlo Ersek <lersek@redhat.com>
569    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
570
571commit 8921ba2fc5f6163bdad3b5902c5d9d638415dde0
572Author: Nigel Croxon <nigel.croxon@hp.com>
573Date:   Mon Apr 14 18:49:23 2014 -0400
574
575    Cleaned up compile warnings.
576
577    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
578
579commit 42cca551dbf1c0be9e02e8d3d3c417ce35749638
580Author: Nigel Croxon <nigel.croxon@hp.com>
581Date:   Mon Apr 14 14:04:11 2014 -0400
582
583    Module lib/ParseCmdLine.c has errors, it incorrectly mixes "char" and "CHAR16"
584    and uses a pointer to argv[] like it's argv[]. The compiler only issues
585    warnings though. Here is a patch to remove compiler warnings and make the
586    code behave.
587
588    Signed-off-by: Bernard Burette <bub75@users.sf.net>
589    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
590
591commit 4e8460f1aedd2724de876be5b154eb5752bfada5
592Author: Nigel Croxon <nigel.croxon@hp.com>
593Date:   Mon Apr 14 13:53:03 2014 -0400
594
595    Here is a very small patch to remove a compiler warning when processing lib/smbios.c.
596
597    Signed-off-by: Bernard Burette <bub75@users.sf.net>
598    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
599
600commit 6a0875ca2fcb67e7d1a1e2d15f3bcc645329dc75
601Author: Nigel Croxon <nigel.croxon@hp.com>
602Date:   Mon Apr 14 13:45:16 2014 -0400
603
604    Here is a very small patch to remove compiler warning in function
605    "LibLocateHandleByDiskSignature()" because the "Start" variable is
606    give a value which is not used.
607
608    Signed-off-by: Bernard Burette <bub75@users.sf.net>
609    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
610
611commit d5f35dfb8008ba65bcc641559accd9bc13386ef9
612Author: Nigel Croxon <nigel.croxon@hp.com>
613Date:   Mon Apr 14 13:40:29 2014 -0400
614
615    Here is a very small patch to remove *~ files in include diretory.
616
617    Signed-off-by: Bernard Burette <bub75@users.sf.net>
618    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
619
620commit 1a04669a7bb022984c9b54a0f73d7d67a2540fb7
621Author: Nigel Croxon <nigel.croxon@hp.com>
622Date:   Mon Apr 14 12:45:57 2014 -0400
623
624    Here is a patch for "DevicePathToStr()" to display device path according to UEFI 2 specification.
625    The path is in the two files inc/efidevp.h and lib/dpath.c.
626
627    It also add the Sata device path and removes the "/?" path for unknown device paths.
628
629    Signed-off-by: Bernard Burette <bub75@users.sf.net>
630    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
631
632commit 3c62e78556aea01e9798380cd46794c6ca09d4bd
633Author: Nigel Croxon <nigel.croxon@hp.com>
634Date:   Tue Apr 1 10:26:44 2014 -0400
635
636       Removed GPL code setjmp_ia32.S, setjmp_ia64.S, setjmp_x86_64.S
637       Not used anymore.
638
639       Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
640
641commit f9baa4f622cf34576d73e00d4a774a31f0f81fd7
642Author: Nigel Croxon <nigel.croxon@hp.com>
643Date:   Mon Mar 31 08:37:56 2014 -0400
644
645    Remove incumbent GPL 'debian' subdiretory.
646    Update ChangeLog
647
648    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
649
650
651Changelog format change from here and above to 'git log' style.
652
6532014-04-01 Nigel Croxon <nigel.croxon@hp.com>
654
655   Removed GPL code setjmp_ia32.S, setjmp_ia64.S, setjmp_x86_64.S
656   Not used anymore.
657
658   Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
659
6602014-03-17 Nigel Croxon <nigel.croxon@hp.com>
661
662   Add support for the simple pointer and absolute pointer protocols
663
664    Signed-off-by: John Cronin <johncronin@users.sf.net>
665    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
666
6672014-03-14 Nigel Croxon <nigel.croxon@hp.com>
668
669    Trying to recurse into subdirectories of object files may lead
670    to an error if the directory doesn't exist. Even when cleaning.
671
672    Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
673    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
674
6752014-03-14 Nigel Croxon <nigel.croxon@hp.com>
676
677    Make install used to copy files unconditionnally to their
678    destination. However, if the destination is used by another
679    Makefile, it will always see modified files. "install" target
680    now only updates the files when they need to.
681
682    Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
683    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
684
6852014-02-13 Nigel Croxon <nigel.croxon@hp.com>
686
687    Patch GNU-EFI to remove the ELILO code
688
689    Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com>
690    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
691
6922014-02-13 Nigel Croxon <nigel.croxon@hp.com>
693
694    Initialize Status before calling GrowBuffer()
695    Status must be initialized before calling GrowBuffer() as it may
696    otherwise be uninitialized or set to EFI_BUFFER_TOO_SMALL by
697    other functions.
698
699    Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
700    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
701
7022014-01-23 Nigel Croxon <nigel.croxon@hp.com>
703
704    These changes allow manually overridden SRCDIR (current source
705    directory) and TOPDIR (top of source tree) to separate the
706    build directory from the source tree.
707
708    Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
709    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
710
7112014-01-16 Nigel Croxon <nigel.croxon@hp.com>
712    compilation: fix uninitialized variables warning
713
714    Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
715    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
716
7172014-01-13 Nigel Croxon <nigel.croxon@hp.com>
718   Implement VSPrint function, prints a formatted unicode string to a buffer.
719
720    Signed-off-by: Jeremy Compostella <jeremy.compostella@gmail.com>
721    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
722
7232014-01-10 Nigel Croxon <nigel.croxon@hp.com>
724    Created lib/argify.c and inc/argify.h containing the function argify.
725    It contains verbatim copy of the comment at beginning of file from
726    elilo.
727    There was no COPYING file in the elilo source that the comment refers to.
728
729    Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com>
730    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
731
7322014-01-08 Nigel Croxon <nigel.croxon@hp.com>
733    The information needed is not really the host architecture as given by
734    the kernel arch. The information actually needed is the default target
735    of gcc.
736
737    Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
738    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
739
7402013-10-11 Nigel Croxon <nigel.croxon@hp.com>
741    Added support for SetVariable to store volatile variable,
742    and SetNVVariable to store non volatile variable.
743
744    Signed-off-by: Sylvain Chouleur <sylvain.chouleur@gmail.com>
745    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
746
7472013-10-07 Nigel Croxon <nigel.croxon@hp.com>
748
749    Atoi needs to have consistent declaration/definition.
750
751    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
752
7532013-10-07 Nigel Croxon <nigel.croxon@hp.com>
754    if you have a function that takes const arguments and then
755    e.g. tries to copy StrCmp, gcc will give you warnings about those
756    calls, and the warnings are right.  These clutter up other things
757    you might miss that you should be more concered about.
758
759    You could work around it through vigorous typecasting
760    to non-const types, but why should you have to? All of these
761    functions are regorously defined as not changing their input
762    - it is const, and should be marked as such.
763
764    Signed-off-by: Peter Jones <pjones@redhat.com>
765
7662013-10-02 Nigel Croxon <nigel.croxon@hp.com>
767
768    Added two simple applications to allocate/free memory at EFI.
769    Used to test/find memory fragmentation issues linux.
770
771    Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com>
772    Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
773
7742013-06-25 Nigel Croxon <nigel.croxon@hp.com>
775    Sample boot service driver.
776
777    Signed-off-by: David Decotigny <decot@googlers.com>
778
7792013-06-25 Nigel Croxon <nigel.croxon@hp.com>
780Date:   Tue Jun 25 08:47:03 2013 -0400
781
782    Be more pedantic when linking, don't allow duplicate symbols,
783    abort upon first error. Also make sure linker script comes
784    last for apps.
785
786    Signed-off-by: David Decotigny <decot@googlers.com>
787
7882013-06-25 Nigel Croxon <nigel.croxon@hp.com>
789    Fix compilation on x86_64 without HAVE_USE_MS_ABI
790    make -C apps would fail on tcc.c because uefi_call_wrapper()
791    doesn't deal correctly with efi_callO-type invocation.
792
793    Signed-off-by: David Decotigny <decot@googlers.com>
794
7952013-06-12 Nigel Croxon <nigel.croxon@hp.com>
796    Fix typo when disabling mno-mmx
797
798    Signed-Off-By: Nigel Croxon <nigel.croxon@hp.com>
799
8002013-06-12 Nigel Croxon <nigel.croxon@hp.com>
801    Disable MMX and SSE
802
803    GCC 4.8.0 adds some optimizations that will use movups/movaps (and use
804    %xmm* registers) when they're faster, and of course that won't work at
805    all since UEFI firmwares aren't guaranteed to initialize the mmx/sse
806    instructions.
807
808    This will be even more annoying, since most UEFI firmwares don't
809    initialize the #DE or #UD trap handlers, and your backtrace will be a
810    random path through uninitialized memory, occasionally including
811    whatever address the IDT has for #UD, but also addresses like "0x4" and
812    "0x507" that you don't normally expect to see in your call path.
813
814    Signed-off-by: Peter Jones <pjones@redhat.com>
815
816    Author: Nigel Croxon <nigel.croxon@hp.com>
817    Date:   Wed Jun 12 10:29:40 2013 -0400
818
819    bug in make 3.82 expand to odd values
820
821    Some Makefiles tickle a bug in make 3.82 that cause libefi.a
822    and libgnuefi.a dependencies to expand to the odd values:
823
824    libefi.a: boxdraw.o) smbios.o) ...
825    libgnuefi.a(reloc_x86_64.o:
826
827    The patch replaces libgnuefi.a($(OBJS)) & libefi.a($(OBJS))
828    with an equivalent expansion that should work with any make
829    that supports $(patsubst).
830
831    Author: Nigel Croxon <nigel.croxon@hp.com>
832    Date:   Wed Jun 12 09:53:01 2013 -0400
833
834    support .text.* sections on x86_64
835
836    Group them in .text. Also add vague linkage sections in .text.
837
838    Signed-off-by: David Decotigny <decot@googlers.com>
839
840    Author: Nigel Croxon <nigel.croxon@hp.com>
841    Date:   Wed Jun 12 09:51:36 2013 -0400
842
843    cleanup and fix Make.defaults
844
845    Reorder variables in Make.defaults so that they are grouped by
846    functions. Also fixed ifeq (x,y) to have required syntax and make it
847    work for ARCH amd64->x86_64 renaming on BSD. Also provides top-level
848    Makefile with a "mkvars" target that displays effective variables.
849
850    Signed-off-by: David Decotigny <decot@googlers.com>
851
852    Author: Nigel Croxon <nigel.croxon@hp.com>
853    Date:   Wed Jun 12 09:47:16 2013 -0400
854
855    automatically determine number of uefi_call_wrapper() args on x86_64
856
857    Instead of asking developers to explicitly pass the number of
858    parameters to the functions that get called, we determine them
859    automatically at preprocessing time. This should result in more
860    robust code.
861
862    Argument va_num is now ignored in x86_64 code, both with and
863    without HAVE_USE_MS_ABI.
864
865    Credits to the macro magic given in the comments.
866
867    Signed-off-by: David Decotigny <decot@googlers.com>
868
869    Author: Nigel Croxon <nigel.croxon@hp.com>
870    Date:   Wed Jun 12 09:38:10 2013 -0400
871
872    fix parameter-passing corruption on x86_64 for >= 5 args
873
874    On x86_64 without HAVE_USE_MS_ABI support, uefi_call_wrapper() is a
875    variadic function. Parameters >=5 are copied to the stack and, when
876    passed small immediate values (and possibly other parameters), gcc
877    would emit a movl instruction before calling uefi_call_wrapper(). As a
878    result, only the lower 32b of these stack values are significant, the
879    upper 32b potentially contain garbage. Considering that
880    uefi_call_wrapper() assumes these arguments are clean 64b values
881    before calling the efi_callX() trampolines, the latter may be passed
882    garbage. This makes calling functions like
883    EFI_PCI_IO_PROTOCOL.Mem.Read()/Write() or BS->OpenProtocol() quite
884    unreliable.
885
886    This patch fixes this by turning uefi_call_wrapper() into a macro that
887    allows to expose the efi_callX() trampoline signatures to the callers,
888    so that gcc can know upfront that it has to pass all arguments to
889    efi_callX() as clean 64b values (eg. movq for immediates). The
890    _cast64_efi_callX macros are just here to avoid a gcc warning, they do
891    nothing otherwise.
892
893    Signed-off-by: David Decotigny <decot@googlers.com>
894
895    Author: noxorc <nigel.croxon@hp.com>
896    Date:   Wed May 15 15:26:16 2013 -0400
897
898    - Removes the ElfW() macro usage from reloc_ia32.c and reloc_x86_64.c. These
899    macros only exist in link.h on Linux. On FreeBSD, the equivalent macro is
900    __ElfN(). But the macro usage is redundant. You're only going to compile the
901    ia32 file for IA32 binaries and the x86_64 file for X64 binaries. If you had
902    just one file built for both cases, then using the macro might make more
903    sense.
904
905    - Removes the "#define foo_t efi_foo_t" macros from reloc_ia32.c and
906    reloc_x86_64.c.
907
908    - Modifies inc/x86_64/efibind.h and inc/ia32/efibind.h to use the new
909    definitions for uint64_t, int64_t and int8_t. The 64-bit types are now defined
910    as:
911
912            typedef int __attribute__((__mode__(__DI__)))           int64_t;
913            typedef unsigned int __attribute__((__mode__(__DI__)))  uint64_t;
914
915    This removes the conflict between the host types dragged in by elf.h and the
916    type definitions in efibind.h that made the #define foo_t efi_foo_t" hack
917    necessary. Also, int8_t is now defined as signed char instead of just char
918    (assuming char == signed char is apparently not good enough).
919
920    - Also modifies these files to use stdint.h instead of stdint-gcc.h. It's
921    unclear if this is completely correct, but stdint-gcc.h is not present with
922    all GCC installs, and if you use -std=c99 or later you will force this case to
923    be hit. This also can break clang, which doesn't have a stdint-gcc.h at all.
924
925    - Removes the #include of <link.h> from reloc_ia32.c and reloc_x86_64.c (since
926    with the previous changes it's not needed anymore).
927
928    - Places the #include of <elf.h> after #include <efi>/#include <efilib.h> so
929    that we know the types will always be defined properly, in case you build on a
930    system where <elf.h> doesn't automatically pull in the right header files to
931    define all the needed types. (This actually happens on VxWorks. It's harmless
932    elsewhere. If you don't care about VxWorks, you can leave this out.)
933
934    - Modifies setjmp_ia32.S and setjmp_x86_64.S so to change "function" to
935    @function. The clang compiler doesn't like the former. Clang and GCC both like
936    the latter.
937
938    - Modifles Make.defaults so that if ARCH is detected as "amd64," it's changed
939    to "x86_64." It happens that uname -m on 64-bit FreeBSD reports the former
940    rather than the latter, which breaks the build. This may also be the case on
941    some other OSes. There's a way to force uname(1) to return x86_64 as the
942    machine type, but this way is a little friendlier.
943
944    - Creates gnuefi/elf_ia32_fbsd_efi.lds which specifies the object file type as
945    elf-ia32-freebsd. This is required for building on FreeBSD/i386, not just
946    FreeBSD/amd64.
947
948    - Modifies apps/Makefile to always use
949    $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds when building on either 32-bit or
950    64-bit FreeBSD instead of just for the x86_64 case.
951
952    - Changed LDFLAGS in Make.defaults to include --no-undefined. This will cause
953    linking to fail if there are any unsatisfied symbols when creating foo.so
954    during any of the app builds, as opposed to just silently succeeding and
955    producing an unusable binary.
956
957    - Changed CFLAGS to include -ffreestanding -fno-stack-protector -fno-stack-
958    check. This prevents clang from inserting a call to memset() when compiling
959    the RtZeroMem() and RtSetMem() routines in lib/runtime/efirtlib.c and guards
960    against the native compiler in some Linux distros from adding in stack
961    checking code which relies on libc help that isn't present in the EFI runtime
962    environment.
963
964    This does the following:
965
966    - Cleans up the ia32 and x86-64 relocation code a bit (tries to break the
967    dependency between the host ELF headers and the EFI runtime environment)
968    - Avoids the dependency on stdint-gcc.h which may not always be available
969    - Allows GNU EFI to build out of the box on both FreeBSD/i386 and
970    FreeBSD/amd64
971    - Allows GNU EFI to build out of the box with either GCC or clang on
972    FreeBSD/i386 and FreeBSD/amd64 9.0 and later.
973    - Makes things a little easier to port to VxWorks
974    - Avoids creating un-runable binaries with unresolved symbol definitions
975    (which can be very confusing to debug)
976
977    Author: noxorc <nigel.croxon@hp.com>
978    Date:   Wed May 8 16:29:45 2013 -0400
979
980    Add the definitions for TCP, UDP and IP, for both IPv4 and IPv6.
981
982
9832013-05-02 Nigel Croxon <nigel.croxon@hp.com>
984	* Chnage from Matt Fleming <matt.fleming@intel.com>
985	  - Preparation for adding the networking protocol definitions.
986	    Add the service binding protocol.
987
9882013-02-21 Nigel Croxon <nigel.croxon@hp.com>
989	* Change from Peter Jones <pjones@redhat.com>
990	  - Previously we were incorrectly passing 3 functions with
991            the System V ABI to UEFI functions as EFI ABI functions.
992            Mark them as EFIAPI so the compiler will (in our new
993            GNU_EFI_USE_MS_ABI world) use the correct ABI.
994          - These need to be EFIAPI functions because in some cases
995            they call ST->ConOut->OutputString(), which is an EFIAPI
996            function. (Which means that previously in cases that
997            needed "cdecl", these didn't work right.)
998          - If the compiler version is new enough, and GNU_EFI_USE_MS_ABI
999            is defined, use the function attribute ms_abi on everything
1000            defined with "EFIAPI".  Such calls will no longer go through
1001            efi_call*, and as such will be properly type-checked.
1002          - Honor PREFIX and LIBDIR correctly when passed in during the build.
1003          - Add machine type defines for i386, arm/thumb, ia64, ebc, x86_64.
1004          - __STDC_VERSION__ never actually gets defined unless there's a
1005            --std=... line.  So we were accidentally defining lots of c99
1006            types ourself. Since it's 2012, use --std=c11 where appropriate,
1007            and if it's defined and we're using gcc, actually include gcc's
1008            stdint definitions.
1009          - New test application added: route80h. This is a test program
1010            for PciIo.  It routes ioport 80h on ICH10 to PCI. This is also
1011            useful on a very limited set of hardware to enable use of
1012            a port 80h debug card.
1013          - New test applcation added: modelist. This lists video modes
1014            the GOP driver is showing us.
1015	* Change from Finnbarr Murphy
1016          - https://sourceforge.net/p/gnu-efi/feature-requests/2/
1017            Please add the following status codes to <efierr.h>
1018            EFI_INCOMPATIBLE_VERSION 25
1019            EFI_SECURITY_VIOLATION 26
1020            EFI_CRC_ERROR 27
1021            EFI_END_OF_MEDIA 28
1022            EFI_END_OF_FILE 31
1023            EFI_INVALID_LANGUAGE 32
1024            EFI_COMPROMISED_DATA 33
1025	* Change from SourceForge.net Bug report
1026          - https://sourceforge.net/p/gnu-efi/bugs/5/
1027            BufferSize is a UINT64 *. The file shipped with GNU EFI is from
1028            1998 whereas the latest one is from 2004. I suspect Intel changed
1029            the API in order handle 64-bit systems.
1030        * Change from Felipe Contreras <felipe.contreras@gmail.com>
1031          - The current code seems to screw the stack at certain points.
1032            Multiple people have complained that gummiboot hangs right away,
1033            which is in part the fault of gummiboot, but happens only
1034            because the stack gets screwed. x86_64 EFI already aligns the
1035            stack, so there's no need for so much code to find a proper
1036            alignment, we always need to shift by 8 anyway.
1037        * Change from A. Steinmetz
1038          - https://sourceforge.net/p/gnu-efi/patches/1/
1039            The patch prepares for elilo to support uefi pxe over ipv6
1040            See uefi spec 2.3.1 errata c page 963 as reference.
1041            Verfied on an ASUS Sabertooth X79 BIOS Rev. 2104 system which
1042            is able to do an IPv6 UEFI PXE boot.
1043	* Release 3.0t
1044
10452012-09-21 Nigel Croxon <nigel.croxon@hp.com>
1046	* Change from Peter Jones <pjones@redhat.com>
1047	  - EFI Block I/O protocol versions 2 and 3 provide more information
1048	    regarding physical disk layout, including alingment offset at the
1049	    beginning of the disk ("LowestAlignedLba"), logical block size
1050	    ("LogicalBlocksPerPhysicalBlock"), and optimal block transfer size
1051	    ("OptimalTransferLengthGranularity").
1052	* Release 3.0r
1053
10542012-04-30 Nigel Croxon <nigel.croxon@hp.com>
1055	* Change from Matt Fleming <matt.fleming@intel.com>
1056	  -  The .reloc section is now 4096-byte boundary for x86_64.
1057	     Without this patch the .reloc section will not adhere to
1058	     the alignment value in the FileAlignment field (512 bytes by
1059	     default) of the PE/COFF header. This results in a signed
1060	     executable failing to boot in a secure boot environment.
1061	* Release 3.0q
1062
10632011-12-12 Nigel Croxon <nigel.croxon@hp.com>
1064        * Changes from Fenghua Yu <fenghua.yu@intel.com>
1065          - This fixes redefined types compilation failure for tcc.c on x86_64 machines.
1066        * Release 3.0p
1067
10682011-11-15 Nigel Croxon <nigel.croxon@hp.com>
1069        * Changes from Darren Hart <dvhart@linux.intel.com>
1070          - Conditionally assign toolchain binaries to allow overriding them.
1071          - Force a dependency on lib for gnuefi.
1072        * Release 3.0n
1073
10742011-08-23 Nigel Croxon <nigel.croxon@hp.com>
1075        * Changes from Peter Jones <pjones@redhat.com>
1076          - Add guarantee 16-byte stack alignment on x86_64.
1077          - Add routine to make callbacks work.
1078          - Add apps/tcc.efi to test calling convention.
1079        * Release 3.0m
1080
10812011-07-22 Nigel Croxon <nigel.croxon@hp.com>
1082	* Changed Makefiles from GPL to BSD.
1083	* Changes from Peter Jones <pjones@redhat.com>
1084	  - Add ifdefs for ia64 to mirror ia32 and x86-64 so that
1085	    one can build with GCC.
1086	  - Add headers for PciIo.
1087	  - Add the UEFI 2.x bits for EFI_BOOT_SERVICES
1088	  - Add an ignore for .note.GNU-stack section in X86-64 linker maps.
1089        * Release 3.0l
1090
10912011-04-07  Nigel Croxon <nigel.croxon@hp.com>
1092        * Change license from GPL to BSD.
1093        * Release 3.0j
1094
10952009-09-12  Julien BLACHE <jb@jblache.org>
1096	* Add support for FreeBSD.
1097	* Release 3.0i
1098
10992009-09-11  Julien BLACHE <jb@jblache.org>
1100	* Fix elf_ia32_efi.lds linker script to be compatible with the new
1101          linker behaviour. Patch from the RedHat bugzilla 492183.
1102
11032009-06-18  Nigel Croxon <nigel.croxon@hp.com>
1104        * Release 3.0h
1105
11062008-11-06  Nigel Croxon <nigel.croxon@hp.com>
1107        * Fix to not having any relocations at all.
1108
11092008-09-18  Nigel Croxon <nigel.croxon@hp.com>
1110        * Use LIBDIR in makefiles
1111        * Add setjmp/longjmp
1112        * Fixes incorrect section attribute in crt0-efi-ia32.S
1113        * Adds value EfiResetShutdown to enum EFI_RESET_TYPE
1114        * Fixes a RAW warning in reloc_ia64.S
1115        * Adds the USB HCI device path structure in the headers
1116          patches were supplied by Peter Jones @ RedHat
1117
11182008-02-22  Nigel Croxon <nigel.croxon@hp.com>
1119	* Added '-mno-red-zone' to x68_64 compiles.
1120	  Patch provided by Mats Andersson.
1121
11222008-01-23  Nigel Croxon <nigel.croxon@hp.com>
1123        * release 3.0e to support x86_64
1124          EFI calling convention, the stack should be aligned in 16 bytes
1125          to make it possible to use SSE2 in EFI boot services.
1126          This patch fixes this issue. Patch provided by Huang Ying from Intel.
1127
11282007-05-11 Nigel Croxon <nigel.croxon@hp.com>
1129        * release 3.0d to support x86_64 from Chandramouli Narayanan
1130          from Intel and based on 3.0c-1
1131
11322006-03-21  Stephane Eranian <eranian@hpl.hp.com>
1133	* merged patch to support gcc-4.1 submitted by
1134	  Raymund Will from Novell/SuSE
1135
11362006-03-20  Stephane Eranian <eranian@hpl.hp.com>
1137	* updated ia-64 and ia-32 linker scripts to
1138	  match latest gcc. The new gcc may put functions in
1139	  .text* sections. patch submitted by H.J. Lu from Intel.
1140
11412004-11-19  Stephane Eranian <eranian@hpl.hp.com>
1142	* added patch to ignore .eh_frame section for IA-32. Patch
1143	  submitted by Jim Wilson
1144
11452004-09-23  Stephane Eranian <eranian@hpl.hp.com>
1146	* added patch to discard unwind sections, newer toolchains
1147	  complained about them. Patch submitted by Jesse Barnes from SGI.
1148
11492003-09-29  Stephane Eranian <eranian@hpl.hp.com>
1150	* updated elf_ia64_efi.lds to reflect new data sections
1151	  created by gcc-3.3. Patch provided by Andreas Schwab from Suse.
1152
11532003-06-20  Stephane Eranian <eranian@hpl.hp.com>
1154	* updated elf_ia64_efi.lds and elf_ia32_efi.lds to include
1155	  new types data sections produced by recent version of gcc-3.x
1156
11572002-02-22  Stephane Eranian <eranian@hpl.hp.com>
1158	* release 3.0a
1159	* modified both IA-64 and IA-32 loader scripts to add support for the
1160	  new .rodata sections names (such as rodata.str2.8). Required
1161	  for new versions of gcc3.x.
1162
11632001-06-20  Stephane Eranian <eranian@hpl.hp.com>
1164	* release 3.0
1165	* split gnu-efi package in two different packages: the libary+include+crt and the bootloader.
1166	* removed W2U() hack and related files to get from wide-char to unicode.
1167	* Use -fshort-wchar option for unicode.
1168	* restructured Makefiles now install under INSTALLROOT.
1169
11702001-04-06  Stephane Eranian <eranian@hpl.hp.com>
1171
1172	* incorporated patches from David and Michael Johnston at Intel
1173	  to get the package to compile for IA-32 linux target.
1174
1175	* Fixed ELILO to compile for Ia-32 (does not execute yet, though):
1176	  Makefile and start_kernel() function.
1177
11782001-04-06  Andreas Schwab <schwab@suse.de>
1179
1180	* Fixed config.c  to
1181	  get the timeout directive to do something. implemented the global
1182	  root= directive.
1183
1184	* Fix the efi_main() to deal with the -C option properly
1185
11862001-04-05  Stephane Eranian <eranian@hpl.hp.com>
1187
1188	* update efi library to latest EFI toolkit 1.02 as distributed
1189	  by Intel. Fixed header + library files to compile with GCC
1190
1191	* merged ELI and LILO (as of gnu-efi-1.1) together, mostly
1192	  taking the config file feature of ELI.
1193
1194	* renamed LILO to ELILO to make the distinction
1195
1196	* restructured code to make it easier to understand and maintain
1197
1198	* fixed FPSWA driver checking and loading: we try all possible
1199	  files and let the driver itself figure out if it is the most
1200	  recent.
1201	* added support for compression (gzip) but keep support for plain
1202	  ELF image. ELILO autodetects the format
1203
1204	* change the way the kernel is invoked. Now we call it in
1205	  physical memory mode. This breaks the dependency between the
1206	  kernel code and the loader. No more lilo_start.c madness.
1207
1208	* changed the way the boot_params are passed. We don't use the
1209	  ZERO_PAGE_ADDR trick anymore. Instead we use EFI runtime memory.
1210	  The address of the structure is passed to the kernel in r28
1211	  by our convention.
1212
1213	* released as gnu-efi-2.0
1214
12152001-04-03  David Mosberger  <davidm@hpl.hp.com>
1216
1217	* gnuefi/reloc_ia32.c (_relocate): Change return type from "void"
1218	to "int".  Return error status if relocation fails for some
1219	reason.
1220
1221	* gnuefi/elf_ia32_efi.lds: Drop unneeded ".rel.reloc" section.
1222
1223	* gnuefi/crt0-efi-ia32.S (_start): Exit if _relocate() returns with
1224	non-zero exit status.
1225
1226	* inc/ia32/efibind.h [__GNUC__]: Force 8-byte alignment for 64-bit
1227	types as that is what EFI appears to be expecting, despite the
1228	"#pragma pack()" at the beginning of the file!
1229
12302001-03-29  David Mosberger  <davidm@hpl.hp.com>
1231
1232	* gnuefi/reloc_ia32.c: Add a couple of defines to work around
1233	libc/efilib collision on uint64_t et al.
1234	(_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
1235
1236	* gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
1237
12382001-03-29  David Mosberger  <davidm@hpl.hp.com>
1239
1240        * gnuefi/reloc_ia32.c: Add a couple of defines to work around
1241        libc/efilib collision on uint64_t et al.
1242        (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)().
1243
1244        * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry.
1245
12462000-10-26  David Mosberger  <davidm@hpl.hp.com>
1247
1248 	* gnuefi/elf_ia64_efi.lds: Mention .rela.sdata.
1249
1250 	* Make.defaults (CFLAGS): Remove -nostdinc flags so we can pick
1251 	up the C compiler's stdarg.h.
1252
1253 	* inc/stdarg.h: Remove this file.  It's not correct for gcc (nor
1254 	most other optimizing compilers).
1255
12562000-10-10  Stephane Eranian <eranian@hpl.hp.com>
1257
1258	* cleaned up the error message and printing of those.
1259	* added support to load the FPSWA from a file in case support is not
1260	  present in the firmware already
1261	* fixed split_args() to do the right thing when you have leading spaces
1262	  before kernel name
1263	* changed the argify() function to rely on \0 instead of LoadOptionSize
1264	  as the field seems to be broken with current firmware
1265	* bumped version to 1.0
1266
12672000-10-04  David Mosberger  <davidm@hpl.hp.com>
1268
1269	* gnuefi/reloc_ia64.S: Reserve space for up to 750 function descriptors.
1270
1271	* gnuefi/elf_ia64_efi.lds: Add .sdata section for small data and
1272	put __gp in the "middle" of it.
1273
1274	* gnuefi/crt0-efi-ia64.S (_start): Use movl/add to load
1275	gp-relative addresses that could be out of the range of the addl
1276	offset.
1277	* gnuefi/reloc_ia64.S (_relocate): Ditto.
1278
1279	* apps/Makefile: Remove standard rules and include Make.rules instead.
1280	* lilo/Makefile: Ditto.
1281
1282	* Make.rules: New file.
1283
12842000-08-04  Stephane Eranian <eranian@hpl.hp.com>
1285	* released version 0.9
1286	* incorporated ACPI changes for Asuza by NEC < kouchi@hpc.bs1.fc.nec.co.jp>
1287	* added support for initrd (-i option) original ELI code from Bill Nottingham <notting@redhat.com>)
1288	* lots of cleanups
1289	* got rid of #ifdef LILO_DEBUG and uses macro instead
1290	* fix a few extra memory leaks in create_boot_params()
1291	* added exit capability just before starting the kernel
1292
12932000-06-22  David Mosberger  <davidm@hpl.hp.com>
1294
1295	* gnuefi/elf_ia64_efi.lds: Add .srodata, .ctors, .IA64.unwind,
1296	.IA64.unwind_info to .data section and .rela.ctors to .rela
1297	section.
1298
12992000-04-03  David Mosberger  <davidm@hpl.hp.com>
1300
1301	* lilo/lilo.c (LILO_VERSION): Up version number to 0.9.
1302
1303	* gnuefi/elf_ia64_efi.lds: Include .IA_64.unwind and
1304	.IA_64.unwind_info in .data segment to avoid EFI load error
1305	"ImageAddress: pointer outside of image" error due to the .dynsym
1306	relocations against these sections.
1307
1308	* ChangeLog: Moved from lilo/ChangeLogs.
1309
1310	* gnuefi/reloc_ia64.S: fixed typo: .space directive had constant
1311	100 hardcoded instead of using MAX_FUNCTION_DESCRIPTORS
1312	macro. Duh.
1313
13142000-03-17 Stephane Eranian <eranian@hpl.hp.com>
1315
1316	* Released 0.8
1317	* replace the  getopt.c with new version free with better license
1318	* created a documentation file
1319	* fix a couple of memory leaks
1320	* code cleanups
1321	* created a separate directory for lilo in the gnu-efi package.
1322	* added support for the BOOT_IMAGE argument to kernel
1323	* default is to build natively now
1324
1325