ChangeLog revision 1.1.1.2 1 Updated Changelog
2
3 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
4
5 commit 37d7bee82a627999563069b090866076e055a871
6 Author: Nigel Croxon <nigel.croxon (a] hp.com>
7 Date: Thu May 14 12:38:39 2015 -0400
8
9 Added some missing error code descriptions
10
11 Signed-off-by: Peter Jones <pjones (a] redhat.com>
12 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
13
14 commit dae0b4b0b0d522caecf09123db2cf0250c37a169
15 Author: Nigel Croxon <nigel.croxon (a] hp.com>
16 Date: 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 (a] redhat.com>
29 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
30
31 commit b5a8e93cec396381a6d2beee022abbf50100f2fd
32 Author: Nigel Croxon <nigel.croxon (a] hp.com>
33 Date: 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 (a] hp.com>
38
39 commit 01c9f11ed5ad55661e8fc8a3eee35c578564754b
40 Author: Nigel Croxon <nigel.croxon (a] hp.com>
41 Date: 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 (a] linaro.org>
47 Acked-by: Ard Biesheuvel <ard.biesheuvel (a] linaro.org>
48 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
49
50 commit dada63fd3de148c6f8551d253355c113547cd5a0
51 Author: Nigel Croxon <nigel.croxon (a] hp.com>
52 Date: 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 (a] intel.com>
59 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
60
61 commit ce7098fb52e5fd4d16038964d029eb759f28eaaf
62 Author: Nigel Croxon <nigel.croxon (a] hp.com>
63 Date: 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 (a] gmail.com>
78 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
79
80 commit f64cef26270bfbe04f038da33f95ae3f14c071bc
81 Author: Nigel Croxon <nigel.croxon (a] hp.com>
82 Date: 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 (a] redhat.com>
88 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
89
90 commit 322efb6b21ed0a5e42e8f124fd22bf0f8dbf01ae
91 Author: Nigel Croxon <nigel.croxon (a] hp.com>
92 Date: 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 (a] hp.com>
97
98 commit 09027207f7c18af6caa45a744fc15c90b2a829db
99 Author: Nigel Croxon <nigel.croxon (a] hp.com>
100 Date: Mon Jan 5 13:13:22 2015 -0500
101
102 From: Pete Batard <pete (a] 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 (a] akeo.ie>
116 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
117
118 commit 15805ff38b83a72c2c7c96a24bd642ee1176d819
119 Author: Nigel Croxon <nigel.croxon (a] hp.com>
120 Date: 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 (a] hp.com>
125
126 commit b868aa75669723b7e32f46524822e17e388fe2ba
127 Author: Nigel Croxon <nigel.croxon (a] hp.com>
128 Date: 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 (a] redhat.com>
146 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
147
148 commit 530d68ba191850edafc6da22cb2df55bec0c5fa5
149 Author: Nigel Croxon <nigel.croxon (a] hp.com>
150 Date: 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 (a] redhat.com>
155 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
156
157 commit 00bd66ef46b59a1623a293491a8b2c65a6d61975
158 Author: Nigel Croxon <nigel.croxon (a] hp.com>
159 Date: 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 (a] redhat.com>
165 Signed-off-by: Bill Paul <wpaul (a] windriver.com>
166 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
167
168 commit 56eb64d3c06854b9b68d61e3c2d3bdf6ff2a9853
169 Author: Nigel Croxon <nigel.croxon (a] hp.com>
170 Date: 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 (a] redhat.com>
179 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
180
181 commit 65e28a90a7be9e990b360286cea31e63319217fb
182 Author: Nigel Croxon <nigel.croxon (a] hp.com>
183 Date: Mon Nov 24 12:17:45 2014 -0500
184
185 Add current OsIndications values.
186
187 Signed-off-by: Peter Jones <pjones (a] redhat.com>
188 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com
189
190 commit be231055ce14d17610f0d7b6133a87b99a22662b
191 Author: Nigel Croxon <nigel.croxon (a] hp.com>
192 Date: Mon Nov 24 12:15:34 2014 -0500
193
194 Add the QueryVariableInfo() API.
195
196 Signed-off-by: Peter Jones <pjones (a] redhat.com>
197 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
198
199 commit 60efb7a2939b65a01e95aa8b535f1b756d984fba
200 Author: Nigel Croxon <nigel.croxon (a] hp.com>
201 Date: Mon Nov 24 12:13:23 2014 -0500
202
203 Add the capsule API.
204
205 Signed-off-by: Peter Jones <pjones (a] redhat.com>
206 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
207
208 commit ef08b655d1f8dfbd9a0f3a86d5685b24695ef12f
209 Author: Nigel Croxon <nigel.croxon (a] hp.com>
210 Date: 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 (a] hp.com>
216
217 commit 370cce41da3fff41ba38feb1262002aff2d85ffd
218 Author: Nigel Croxon <nigel.croxon (a] hp.com>
219 Date: 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 (a] linaro.org>
225 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
226
227 commit d32fb845433ff6fb38e81ae0d9273454e7d18197
228 Author: Nigel Croxon <nigel.croxon (a] hp.com>
229 Date: 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 (a] linaro.org>
235 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
236
237 commit aa1df67f48f3c035fa8891e1bb311ec21500d6d9
238 Author: Nigel Croxon <nigel.croxon (a] hp.com>
239 Date: Tue Oct 21 11:08:47 2014 -0400
240
241 Add the missing Variable attributes
242
243 From: Jeremy Compostella <jeremy.compostella (a] 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 (a] intel.com>
248 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
249
250 commit 5706dff09364cbbec37f47e2fe1350747f631d74
251 Author: Nigel Croxon <nigel.croxon (a] hp.com>
252 Date: Tue Aug 26 10:54:22 2014 -0400
253
254 From: David Decotigny <decot (a] 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 (a] googlers.com>
264 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
265
266 commit 6c10e225bc759d69af520a551b9d7b37f3ae0a82
267 Author: Nigel Croxon <nigel.croxon (a] hp.com>
268 Date: Mon Aug 25 08:51:23 2014 -0400
269
270 From: David Decotigny <decot (a] 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 (a] googlers.com>
278 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
279
280 commit 16d65c0669258c8044e3549b2d9eb0cf0eb08f5a
281 Author: Nigel Croxon <nigel.croxon (a] hp.com>
282 Date: Tue Aug 19 12:07:00 2014 -0400
283
284 From: Ard Biesheuvel <ard.biesheuvel (a] 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 (a] linaro.org>
297 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
298
299 commit b28143d4fb4f6969dc0c87c853d3527d889951d7
300 Author: Nigel Croxon <nigel.croxon (a] hp.com>
301 Date: Fri Aug 8 15:54:19 2014 -0400
302
303 Updated Changelog
304
305 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
306
307 commit 1525190354f5faac33015e17c9ba7ea2bb2be35b
308 Author: Nigel Croxon <nigel.croxon (a] hp.com>
309 Date: Fri Aug 8 15:35:09 2014 -0400
310
311 From: Ard Biesheuvel <ard.biesheuvel (a] 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 (a] linaro.org>
327 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
328
329 commit ac983081525f9483941517dfb53cf8d0163d49c0
330 Author: Nigel Croxon <nigel.croxon (a] hp.com>
331 Date: Fri Aug 8 15:32:26 2014 -0400
332
333 From: Ard Biesheuvel <ard.biesheuvel (a] 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 (a] linaro.org>
343 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
344
345 commit fb063f0f65543b3e2bf55a39d5aa70b17a98c65e
346 Author: Nigel Croxon <nigel.croxon (a] hp.com>
347 Date: Fri Aug 8 15:26:38 2014 -0400
348
349 From: Ard Biesheuvel <ard.biesheuvel (a] 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 (a] linaro.org>
362 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
363
364 commit 7a98d83fc32de6cf0b1ce5e12dfe80690f29fb3f
365 Author: Nigel Croxon <nigel.croxon (a] hp.com>
366 Date: Fri Aug 8 15:25:03 2014 -0400
367
368 From: Ard Biesheuvel <ard.biesheuvel (a] 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 (a] linaro.org>
376 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
377
378 commit f42974dd9a7d0ea690d293f88396abd289f0014c
379 Author: Nigel Croxon <nigel.croxon (a] hp.com>
380 Date: Fri Aug 8 15:21:16 2014 -0400
381
382 From: David Decotigny <decot (a] 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 (a] googlers.com>
397 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
398
399 commit a61fa058e9a87f966de3342b8c95fdbdcb007827
400 Author: Nigel Croxon <nigel.croxon (a] hp.com>
401 Date: Fri Aug 8 15:17:32 2014 -0400
402
403 From: David Decotigny <decot (a] 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 (a] googlers.com>
408 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
409
410 commit 2f440200c855154f929d28971b2fd702ea7a207a
411 Author: Nigel Croxon <nigel.croxon (a] hp.com>
412 Date: Fri Aug 8 15:15:59 2014 -0400
413
414 From: David Decotigny <decot (a] 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 (a] googlers.com>
421 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
422
423 commit 7f173da1e54f8cfe4c7c7c091ab6585af07b25ce
424 Author: Nigel Croxon <nigel.croxon (a] hp.com>
425 Date: Fri Aug 8 15:14:26 2014 -0400
426
427 From: David Decotigny <decot (a] 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 (a] googlers.com>
432 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
433
434 commit 0ad8fb87cbc59f58675b18253ad802ba51f1d132
435 Author: Nigel Croxon <nigel.croxon (a] hp.com>
436 Date: Wed Jul 30 15:06:36 2014 -0400
437
438 From: David Decotigny <decot (a] 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 (a] googlers.com>
446 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
447
448 commit ff7ec964f2c0de0cfc4b52cfdd356003450f28bf
449 Author: Nigel Croxon <nigel.croxon (a] hp.com>
450 Date: Wed Jul 30 15:05:28 2014 -0400
451
452 From: David Decotigny <decot (a] 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 (a] googlers.com>
457 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
458
459 commit 8d86ee202a9bb553375f56ae1d2944818112b68b
460 Author: Nigel Croxon <nigel.croxon (a] hp.com>
461 Date: Wed Jul 30 15:04:44 2014 -0400
462
463 From: David Decotigny <decot (a] 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 (a] googlers.com>
472 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
473
474 commit 1ec094bfaf46a610a740dadc0150bf457dd72345
475 Author: Nigel Croxon <nigel.croxon (a] hp.com>
476 Date: Wed Jul 23 09:54:25 2014 -0400
477
478 From: Julian Klode <julian.klode (a] 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 (a] gmail.com>
488 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
489
490 commit 6caab22f23434f41f42cfe7591d9a7ae66de9f0a
491 Author: Nigel Croxon <nigel.croxon (a] hp.com>
492 Date: Thu Jun 19 10:39:23 2014 -0400
493
494 From: Laszlo Ersek <lersek (a] 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 (a] redhat.com>
536 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
537
538 commit ecfd1ded9a799c3a572d4eb7fbb52582fe4d3390
539 Author: Nigel Croxon <nigel.croxon (a] hp.com>
540 Date: 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 (a] intel.com>
547 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
548
549 commit f16d93f3b9e314336a387a3885c7fd2f176c41d3
550 Author: Nigel Croxon <nigel.croxon (a] hp.com>
551 Date: 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
558 commit 644898eabc06c8efaa3aa54f84cdd468960a2f6c
559 Author: Nigel Croxon <nigel.croxon (a] hp.com>
560 Date: 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 (a] redhat.com>
569 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
570
571 commit 8921ba2fc5f6163bdad3b5902c5d9d638415dde0
572 Author: Nigel Croxon <nigel.croxon (a] hp.com>
573 Date: Mon Apr 14 18:49:23 2014 -0400
574
575 Cleaned up compile warnings.
576
577 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
578
579 commit 42cca551dbf1c0be9e02e8d3d3c417ce35749638
580 Author: Nigel Croxon <nigel.croxon (a] hp.com>
581 Date: 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 (a] users.sf.net>
589 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
590
591 commit 4e8460f1aedd2724de876be5b154eb5752bfada5
592 Author: Nigel Croxon <nigel.croxon (a] hp.com>
593 Date: 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 (a] users.sf.net>
598 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
599
600 commit 6a0875ca2fcb67e7d1a1e2d15f3bcc645329dc75
601 Author: Nigel Croxon <nigel.croxon (a] hp.com>
602 Date: 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 (a] users.sf.net>
609 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
610
611 commit d5f35dfb8008ba65bcc641559accd9bc13386ef9
612 Author: Nigel Croxon <nigel.croxon (a] hp.com>
613 Date: 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 (a] users.sf.net>
618 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
619
620 commit 1a04669a7bb022984c9b54a0f73d7d67a2540fb7
621 Author: Nigel Croxon <nigel.croxon (a] hp.com>
622 Date: 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 (a] users.sf.net>
630 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
631
632 commit 3c62e78556aea01e9798380cd46794c6ca09d4bd
633 Author: Nigel Croxon <nigel.croxon (a] hp.com>
634 Date: 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 (a] hp.com>
640
641 commit f9baa4f622cf34576d73e00d4a774a31f0f81fd7
642 Author: Nigel Croxon <nigel.croxon (a] hp.com>
643 Date: 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 (a] hp.com>
649
650
651 Changelog format change from here and above to 'git log' style.
652
653 2014-04-01 Nigel Croxon <nigel.croxon (a] 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 (a] hp.com>
659
660 2014-03-17 Nigel Croxon <nigel.croxon (a] hp.com>
661
662 Add support for the simple pointer and absolute pointer protocols
663
664 Signed-off-by: John Cronin <johncronin (a] users.sf.net>
665 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
666
667 2014-03-14 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
673 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
674
675 2014-03-14 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
683 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
684
685 2014-02-13 Nigel Croxon <nigel.croxon (a] hp.com>
686
687 Patch GNU-EFI to remove the ELILO code
688
689 Signed-off-by: Jerry Hoemann <jerry.hoemann (a] hp.com>
690 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
691
692 2014-02-13 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
700 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
701
702 2014-01-23 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
709 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
710
711 2014-01-16 Nigel Croxon <nigel.croxon (a] hp.com>
712 compilation: fix uninitialized variables warning
713
714 Signed-off-by: Jeremy Compostella <jeremy.compostella (a] intel.com>
715 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
716
717 2014-01-13 Nigel Croxon <nigel.croxon (a] hp.com>
718 Implement VSPrint function, prints a formatted unicode string to a buffer.
719
720 Signed-off-by: Jeremy Compostella <jeremy.compostella (a] gmail.com>
721 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
722
723 2014-01-10 Nigel Croxon <nigel.croxon (a] 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 (a] hp.com>
730 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
731
732 2014-01-08 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
738 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
739
740 2013-10-11 Nigel Croxon <nigel.croxon (a] 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 (a] gmail.com>
745 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
746
747 2013-10-07 Nigel Croxon <nigel.croxon (a] hp.com>
748
749 Atoi needs to have consistent declaration/definition.
750
751 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
752
753 2013-10-07 Nigel Croxon <nigel.croxon (a] 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 (a] redhat.com>
765
766 2013-10-02 Nigel Croxon <nigel.croxon (a] 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 (a] hp.com>
772 Signed-off-by: Nigel Croxon <nigel.croxon (a] hp.com>
773
774 2013-06-25 Nigel Croxon <nigel.croxon (a] hp.com>
775 Sample boot service driver.
776
777 Signed-off-by: David Decotigny <decot (a] googlers.com>
778
779 2013-06-25 Nigel Croxon <nigel.croxon (a] hp.com>
780 Date: 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 (a] googlers.com>
787
788 2013-06-25 Nigel Croxon <nigel.croxon (a] 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 (a] googlers.com>
794
795 2013-06-12 Nigel Croxon <nigel.croxon (a] hp.com>
796 Fix typo when disabling mno-mmx
797
798 Signed-Off-By: Nigel Croxon <nigel.croxon (a] hp.com>
799
800 2013-06-12 Nigel Croxon <nigel.croxon (a] 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 (a] redhat.com>
815
816 Author: Nigel Croxon <nigel.croxon (a] 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 (a] 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 (a] googlers.com>
839
840 Author: Nigel Croxon <nigel.croxon (a] 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 (a] googlers.com>
851
852 Author: Nigel Croxon <nigel.croxon (a] 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 (a] googlers.com>
868
869 Author: Nigel Croxon <nigel.croxon (a] 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 (a] googlers.com>
894
895 Author: noxorc <nigel.croxon (a] 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 (a] 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
983 2013-05-02 Nigel Croxon <nigel.croxon (a] hp.com>
984 * Chnage from Matt Fleming <matt.fleming (a] intel.com>
985 - Preparation for adding the networking protocol definitions.
986 Add the service binding protocol.
987
988 2013-02-21 Nigel Croxon <nigel.croxon (a] hp.com>
989 * Change from Peter Jones <pjones (a] 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 (a] 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
1045 2012-09-21 Nigel Croxon <nigel.croxon (a] hp.com>
1046 * Change from Peter Jones <pjones (a] 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
1054 2012-04-30 Nigel Croxon <nigel.croxon (a] hp.com>
1055 * Change from Matt Fleming <matt.fleming (a] 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
1063 2011-12-12 Nigel Croxon <nigel.croxon (a] hp.com>
1064 * Changes from Fenghua Yu <fenghua.yu (a] intel.com>
1065 - This fixes redefined types compilation failure for tcc.c on x86_64 machines.
1066 * Release 3.0p
1067
1068 2011-11-15 Nigel Croxon <nigel.croxon (a] hp.com>
1069 * Changes from Darren Hart <dvhart (a] 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
1074 2011-08-23 Nigel Croxon <nigel.croxon (a] hp.com>
1075 * Changes from Peter Jones <pjones (a] 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
1081 2011-07-22 Nigel Croxon <nigel.croxon (a] hp.com>
1082 * Changed Makefiles from GPL to BSD.
1083 * Changes from Peter Jones <pjones (a] 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
1091 2011-04-07 Nigel Croxon <nigel.croxon (a] hp.com>
1092 * Change license from GPL to BSD.
1093 * Release 3.0j
1094
1095 2009-09-12 Julien BLACHE <jb (a] jblache.org>
1096 * Add support for FreeBSD.
1097 * Release 3.0i
1098
1099 2009-09-11 Julien BLACHE <jb (a] 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
1103 2009-06-18 Nigel Croxon <nigel.croxon (a] hp.com>
1104 * Release 3.0h
1105
1106 2008-11-06 Nigel Croxon <nigel.croxon (a] hp.com>
1107 * Fix to not having any relocations at all.
1108
1109 2008-09-18 Nigel Croxon <nigel.croxon (a] 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
1118 2008-02-22 Nigel Croxon <nigel.croxon (a] hp.com>
1119 * Added '-mno-red-zone' to x68_64 compiles.
1120 Patch provided by Mats Andersson.
1121
1122 2008-01-23 Nigel Croxon <nigel.croxon (a] 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
1128 2007-05-11 Nigel Croxon <nigel.croxon (a] hp.com>
1129 * release 3.0d to support x86_64 from Chandramouli Narayanan
1130 from Intel and based on 3.0c-1
1131
1132 2006-03-21 Stephane Eranian <eranian (a] hpl.hp.com>
1133 * merged patch to support gcc-4.1 submitted by
1134 Raymund Will from Novell/SuSE
1135
1136 2006-03-20 Stephane Eranian <eranian (a] 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
1141 2004-11-19 Stephane Eranian <eranian (a] hpl.hp.com>
1142 * added patch to ignore .eh_frame section for IA-32. Patch
1143 submitted by Jim Wilson
1144
1145 2004-09-23 Stephane Eranian <eranian (a] hpl.hp.com>
1146 * added patch to discard unwind sections, newer toolchains
1147 complained about them. Patch submitted by Jesse Barnes from SGI.
1148
1149 2003-09-29 Stephane Eranian <eranian (a] 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
1153 2003-06-20 Stephane Eranian <eranian (a] 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
1157 2002-02-22 Stephane Eranian <eranian (a] 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
1163 2001-06-20 Stephane Eranian <eranian (a] 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
1170 2001-04-06 Stephane Eranian <eranian (a] 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
1178 2001-04-06 Andreas Schwab <schwab (a] 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
1186 2001-04-05 Stephane Eranian <eranian (a] 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
1215 2001-04-03 David Mosberger <davidm (a] 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
1230 2001-03-29 David Mosberger <davidm (a] 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
1238 2001-03-29 David Mosberger <davidm (a] 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
1246 2000-10-26 David Mosberger <davidm (a] 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
1256 2000-10-10 Stephane Eranian <eranian (a] 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
1267 2000-10-04 David Mosberger <davidm (a] 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
1284 2000-08-04 Stephane Eranian <eranian (a] hpl.hp.com>
1285 * released version 0.9
1286 * incorporated ACPI changes for Asuza by NEC < kouchi (a] hpc.bs1.fc.nec.co.jp>
1287 * added support for initrd (-i option) original ELI code from Bill Nottingham <notting (a] 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
1293 2000-06-22 David Mosberger <davidm (a] 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
1299 2000-04-03 David Mosberger <davidm (a] 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
1314 2000-03-17 Stephane Eranian <eranian (a] 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