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