| Updated Changelog |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 37d7bee82a627999563069b090866076e055a871 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu May 14 12:38:39 2015 -0400 |
| |
| Added some missing error code descriptions |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit dae0b4b0b0d522caecf09123db2cf0250c37a169 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu May 14 12:20:51 2015 -0400 |
| |
| Turns out we actually need setjmp in one of gnu-efi's prominent |
| users, and it seems to make more sense to put it here than in |
| the application. |
| |
| All of these are derived from the Tiano code, but I re-wrote the |
| x86_64 one because we use the ELF psABI calling conventions instead |
| of the MS ABI calling conventions. Which is to say you probably |
| shouldn't setjmp()/longjmp() between functions with EFIAPI (aka |
| __attribute__((ms_abi))) and those without. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit b5a8e93cec396381a6d2beee022abbf50100f2fd |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Apr 10 08:49:50 2015 -0400 |
| |
| Bump version to 3.0.2 |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 01c9f11ed5ad55661e8fc8a3eee35c578564754b |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Apr 10 08:46:40 2015 -0400 |
| |
| Fix ARM32 and AARCH64 builds |
| Without these added into SUBDIRS the initplat.c compilation will fail. |
| |
| Signed-off-by: Koen Kooi <koen.kooi@linaro.org> |
| Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit dada63fd3de148c6f8551d253355c113547cd5a0 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Mar 23 10:41:43 2015 -0400 |
| |
| [PATCH] _SPrint: fix NULL termination |
| |
| maxlen is the maximum string length not the buffer size. |
| |
| Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit ce7098fb52e5fd4d16038964d029eb759f28eaaf |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu Feb 19 11:22:45 2015 -0500 |
| |
| Enable out-of-tree building |
| |
| This patch enables building gnu-efi outside of the source tree. |
| That in turn enables building for multiple architectures in parallel. |
| |
| The build directory is controlled by the OBJDIR make variable. It |
| defaults to the value of ARCH, and can be overridden from the command |
| line. |
| |
| This patch also cleans up some doubled slashes between INSTALLROOT |
| and PREFIX. |
| |
| Signed-off-by: Jonathan Boeing <jonathan.n.boeing@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit f64cef26270bfbe04f038da33f95ae3f14c071bc |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Jan 6 15:49:50 2015 -0500 |
| |
| Since we're keeping this in git, it'd be nice not to see a bunch |
| of make targets in 'status' |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 322efb6b21ed0a5e42e8f124fd22bf0f8dbf01ae |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Jan 5 13:20:43 2015 -0500 |
| |
| version number changed from VERSION = 3.0u to VERSION = 3.0.1 |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 09027207f7c18af6caa45a744fc15c90b2a829db |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Jan 5 13:13:22 2015 -0500 |
| |
| From: Pete Batard <pete@akeo.ie> |
| Date: Wed, 10 Dec 2014 21:08:34 +0000 |
| Subject: [PATCH] fixes for MSVC compilation |
| |
| These fixes are needed to address the following error and warnings when compiling the library part |
| using Visual Studio 2013 Community Edition (as in https://github.com/pbatard/uefi-simple): |
| * "lib\x86_64\math.c(49): error C4235: nonstandard extension used : '_asm' keyword not supported |
| on this architecture" |
| * "lib\print.c(98): error C2059: syntax error : '('" due to placement of EFIAPI macro |
| * "lib\cmdline.c(94): warning C4090: 'function' : different 'const' qualifiers" |
| * "lib\smbios.c(25): warning C4068: unknown pragma" |
| * Also update macro definitions in "inc\<arch>\efibind.h" for MSVC |
| |
| Signed-off-by: Pete Batard <pete@akeo.ie> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 15805ff38b83a72c2c7c96a24bd642ee1176d819 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Nov 25 14:23:21 2014 -0500 |
| |
| Add README.git file. Instructions on how to archive. |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit b868aa75669723b7e32f46524822e17e388fe2ba |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Nov 25 13:26:45 2014 -0500 |
| |
| This patch makes generating releases from git a very simple process; you |
| simply edit the makefile's "VERSION" line to the new version, commit |
| that as its own commit, and do: "make test-archive". That'll make a |
| file in the current directory gnu-efi-$VERSION.tar.bz2 , with its top |
| level directory gnu-efi-$VERSION/ and the source tree under that. |
| |
| Once you've tested that and you're sure it's what you want to release, |
| you do "make archive", which will tag a release in git and generate a |
| final tarball from it. You then push to the archive, being sure to |
| include the tag: |
| |
| git push origin master:master --tags |
| |
| And upload the archive wherever it's supposed to go. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 530d68ba191850edafc6da22cb2df55bec0c5fa5 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Nov 25 10:09:50 2014 -0500 |
| |
| The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 00bd66ef46b59a1623a293491a8b2c65a6d61975 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 24 14:33:09 2014 -0500 |
| |
| FreeBSD's binutils doesn't have "-j <glob>" support, so we need to |
| include non-globbed versions of .rel/.rela individually. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Bill Paul <wpaul@windriver.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 56eb64d3c06854b9b68d61e3c2d3bdf6ff2a9853 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 24 14:27:14 2014 -0500 |
| |
| Right now we wind up trying to build gnuefi/.o from a source file that's |
| an empty string. This is caused by the macros trying to generate |
| install rules, but there's no real reason to have all that anyway. So |
| just have some static install rules that are simpler and don't generate |
| stuff on the fly. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 65e28a90a7be9e990b360286cea31e63319217fb |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 24 12:17:45 2014 -0500 |
| |
| Add current OsIndications values. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com |
| |
| commit be231055ce14d17610f0d7b6133a87b99a22662b |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 24 12:15:34 2014 -0500 |
| |
| Add the QueryVariableInfo() API. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 60efb7a2939b65a01e95aa8b535f1b756d984fba |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 24 12:13:23 2014 -0500 |
| |
| Add the capsule API. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit ef08b655d1f8dfbd9a0f3a86d5685b24695ef12f |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Nov 17 16:05:42 2014 -0500 |
| |
| Fix Table Header misspelling. Change from EFI_TABLE_HEARDER to |
| EFI_TABLE_HEADER. |
| |
| Signed-Off-By: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 370cce41da3fff41ba38feb1262002aff2d85ffd |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu Nov 6 14:41:40 2014 -0500 |
| |
| If CROSS_COMPILE is set, ignore the ARCH value supplied on the |
| command line and use the target machine of the cross compiler. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit d32fb845433ff6fb38e81ae0d9273454e7d18197 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu Nov 6 14:30:03 2014 -0500 |
| |
| Allow reuse of this file beyond GPL compatible software, |
| update the license of crt0-efi-aarch64.S to dual 2-clause BSD/GPLv2+. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit aa1df67f48f3c035fa8891e1bb311ec21500d6d9 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Oct 21 11:08:47 2014 -0400 |
| |
| Add the missing Variable attributes |
| |
| From: Jeremy Compostella <jeremy.compostella@intel.com> |
| Date: Mon, 13 Oct 2014 17:50:50 +0200 |
| Subject: [PATCH] Add the missing Variable attributes |
| |
| Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 5706dff09364cbbec37f47e2fe1350747f631d74 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Aug 26 10:54:22 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Mon, 25 Aug 2014 13:28:49 -0700 |
| Subject: [PATCH] document that binutils >= 2.24 needed. |
| |
| commit ac983081 "Add support for non-PE/COFF capable objcopy" depends |
| on objcopy accepting wildcards for the section names. This feature is |
| available only with binutils >= 2.24 (binutils 2e62b7218 "PR |
| binutils/15033"). |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 6c10e225bc759d69af520a551b9d7b37f3ae0a82 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Aug 25 08:51:23 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Thu, 31 Jul 2014 18:19:16 -0700 |
| Subject: [PATCH 5/5] allow to use external stdarg.h |
| |
| in cases we use gnu-efi together with other libs that define stdarg.h, |
| break the tie by telling gnu-efi to use that stdarg.h . |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 16d65c0669258c8044e3549b2d9eb0cf0eb08f5a |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Aug 19 12:07:00 2014 -0400 |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Mon, 11 Aug 2014 15:39:16 +0200 |
| Subject: [PATCH] Add support for 32-bit ARM |
| |
| This adds support for 32-bit ARM using an approach similar to the one used for |
| 64-bit ARM (AArch64), i.e., it does not rely on an objcopy that is aware of EFI |
| or PE/COFF, but lays out the entire PE/COFF header using the assembler. |
| |
| In the 32-bit ARM case (which does not have a division instruction), some code |
| has been imported from the Linux kernel to perform the division operations in |
| software. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit b28143d4fb4f6969dc0c87c853d3527d889951d7 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:54:19 2014 -0400 |
| |
| Updated Changelog |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 1525190354f5faac33015e17c9ba7ea2bb2be35b |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:35:09 2014 -0400 |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Fri, 8 Aug 2014 18:16:59 +0200 |
| Subject: [PATCH 4/4] Add support for 64-bit ARM (AArch64) |
| |
| This adds support for 64-bit ARM (AArch64) environments. Since there is no |
| EFI-capable objcopy for this platform, this contains a manually laid out |
| PE/COFF header using the assembler. |
| |
| In addition, it includes the relocation bits, some string functions that GCC |
| assumes are available and other glue to hold it all together. |
| |
| This can be cross built using |
| |
| make CROSS_COMPILE=aarch64-linux-gnu- |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit ac983081525f9483941517dfb53cf8d0163d49c0 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:32:26 2014 -0400 |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Fri, 8 Aug 2014 17:53:42 +0200 |
| Subject: [PATCH 3/4] Add support for non-PE/COFF capable objcopy |
| |
| Introduce HAVE_EFI_OBJCOPY and set it if objcopy for $ARCH support PE/COOF and |
| EFI, i.e., it supports --target efi-[app|bsdrv|rtdrv] options. Use it to decide |
| whether to invoke objcopy with those options or use the linker to populate the |
| PE/COFF header. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit fb063f0f65543b3e2bf55a39d5aa70b17a98c65e |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:26:38 2014 -0400 |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Fri, 8 Aug 2014 17:37:36 +0200 |
| Subject: [PATCH 2/4] Add support for cross compilation |
| |
| This changes the logic that defines ARCH (and HOSTARCH) to take CROSS_COMPILE |
| into account. Also, $prefix is not assigned, so that the default will be what |
| is on the path rather than hardcoded in /usr/bin. |
| |
| This results in the build doing the right thing if CROSS_COMPILE is set in the |
| environment and no ARCH or prefix options are passed to make, aligning it with |
| most other CROSS_COMPILE compatible projects. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 7a98d83fc32de6cf0b1ce5e12dfe80690f29fb3f |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:25:03 2014 -0400 |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Fri, 8 Aug 2014 16:50:45 +0200 |
| Subject: [PATCH 1/4] Restrict GNU_EFI_USE_MS_ABI GCC version test to x86_64 |
| |
| The version test only applies to x86_64 builds, so no need to do it |
| for other archs. |
| |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit f42974dd9a7d0ea690d293f88396abd289f0014c |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:21:16 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Thu, 31 Jul 2014 13:42:23 -0700 |
| Subject: [PATCH 4/4] Use Shell protocols to retrieve argc/argv, when |
| available. |
| |
| New header files efishellintf.h efishellparm.h are coming from EDK |
| II, initial location and license at top of files. Only modifications: |
| - efishellintf.h: s/EFI_FILE_PROTOCOL/EFI_FILE/ + expand BITx macros (1<<x) |
| - efishellparm.h: typedef VOID *SHELL_FILE_HANDLE to avoid including |
| ShellBase.h |
| - both: removed extern EFI_GUID variable decls |
| |
| This also adds apps/t8.c, a simple demo. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit a61fa058e9a87f966de3342b8c95fdbdcb007827 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:17:32 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Thu, 31 Jul 2014 13:41:52 -0700 |
| Subject: [PATCH 3/4] document format of LoadedImage::LoadOptions data |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 2f440200c855154f929d28971b2fd702ea7a207a |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:15:59 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Thu, 31 Jul 2014 13:39:37 -0700 |
| Subject: [PATCH 2/4] Use OpenProtocol instead of HandleProtocol |
| |
| UEFI 2.x recommends OpenProtocol instead of HandleProtocol. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 7f173da1e54f8cfe4c7c7c091ab6585af07b25ce |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri Aug 8 15:14:26 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Thu, 31 Jul 2014 13:30:07 -0700 |
| Subject: [PATCH 1/4] move cmdline parser to its own file |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 0ad8fb87cbc59f58675b18253ad802ba51f1d132 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jul 30 15:06:36 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Mon, 28 Jul 2014 21:28:50 -0700 |
| Subject: [PATCH 3/3] make cmdline parsing a 1st class citizen |
| |
| Refactor ParseCmdline and apps/Alloc+FreePages to factorize |
| boilerplate and move the new parser to the main API. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit ff7ec964f2c0de0cfc4b52cfdd356003450f28bf |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jul 30 15:05:28 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Mon, 28 Jul 2014 21:00:52 -0700 |
| Subject: [PATCH 2/3] Avoid buffer overflow while parsing the cmdline args |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 8d86ee202a9bb553375f56ae1d2944818112b68b |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jul 30 15:04:44 2014 -0400 |
| |
| From: David Decotigny <decot@googlers.com> |
| Date: Mon, 28 Jul 2014 21:01:35 -0700 |
| Subject: [PATCH 1/3] Fix cmdline parser |
| |
| The cmdline parser would not return the correct number of args, would |
| allocate one too many. Also make it clear from the declaration that we |
| expect a suitably lare argv. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 1ec094bfaf46a610a740dadc0150bf457dd72345 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jul 23 09:54:25 2014 -0400 |
| |
| From: Julian Klode <julian.klode@gmail.com> |
| Date: Mon, 21 Jul 2014 14:26:23 -0400 |
| Subject: [PATCH] inc/efistdarg.h: Use gcc builtins instead of stdarg.h or broken stubs |
| |
| We cannot use stdarg.h, as this breaks applications compiling |
| with -nostdinc because those will not find the header. |
| We also cannot use the stubs, as they just produce broken code, |
| as seen in the gummiboot 45-1 Debian release. |
| |
| Signed-off-by: Julian Klode <julian.klode@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 6caab22f23434f41f42cfe7591d9a7ae66de9f0a |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Thu Jun 19 10:39:23 2014 -0400 |
| |
| From: Laszlo Ersek <lersek@redhat.com> |
| Date: Mon, 2 Jun 2014 23:26:48 +0200 |
| Subject: [PATCH] always observe EFIAPI calling convention when calling |
| STO.SetAttribute |
| |
| We have to consider the following cases wrt. the PRINT_STATE.Output and |
| PRINT_STATE.SetAttr EFIAPI function pointers, especially when building for |
| x86_64 with gcc: |
| |
| (1) The compiler is new enough, and EFIAPI actually ensures the Microsoft |
| calling convention. In this case everything happens to work fine even |
| if we forget uefi_call_wrapper(), because the wrapper would expand to |
| a normal C function call anyway. |
| |
| (2) Otherwise (ie. gcc is old), EFIAPI expands to nothing, and we must |
| take into account the called function's origin: |
| |
| (2a) If the callee that is declared EFIAPI is *defined* inside gnu-efi, |
| then EFIAPI means nothing for the callee too, so caller and callee |
| only understand each other if the caller intentionally omits |
| uefi_call_wrapper(). |
| |
| (2b) If the callee that is declared EFIAPI is defined by the platform |
| UEFI implementation, then the caller *must* use |
| uefi_call_wrapper(). |
| |
| The PRINT_STATE.Output EFIAPI function pointer is dereferenced correctly: |
| the PFLUSH() distinguishes cases (2a) from (2b) by using IsLocalPrint(). |
| |
| However use of the PRINT_STATE.SetAttr EFIAPI function pointer is not |
| always correct: |
| |
| - The PSETATTR() helper function always relies on the wrapper (case (2b)). |
| This is correct, because PRINT_STATE.SetAttr always points to a |
| platform-provided function. |
| |
| - The DbgPrint() function contains two incorrect calls: they mistakenly |
| assume case (2a) (or case (1)), even though the pointer always points to |
| a platform function, implying (2b). (The error is masked in case (1).) |
| Fix them. |
| |
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit ecfd1ded9a799c3a572d4eb7fbb52582fe4d3390 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Jun 10 12:59:09 2014 -0400 |
| |
| Add VPoolPrint Function |
| |
| Equivalent to PoolPrint but using a va_list parameter |
| |
| Signed-off-by: Sylvain Chouleur <sylvain.chouleur@intel.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit f16d93f3b9e314336a387a3885c7fd2f176c41d3 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Fri May 16 11:33:51 2014 -0400 |
| |
| Revert "The prototype of DbgPrint() is incorrect, at the end of "inc/efidebug.h"." |
| A problem was found compiling on GCC 4.8. |
| |
| This reverts commit 644898eabc06c8efaa3aa54f84cdd468960a2f6c. |
| |
| commit 644898eabc06c8efaa3aa54f84cdd468960a2f6c |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed May 14 09:09:47 2014 -0400 |
| |
| The prototype of DbgPrint() is incorrect, at the end of "inc/efidebug.h". |
| Consequently, when your program calls DbgPrint() via the DEBUG() macro, |
| it fails to set up the stack correctly (it does not pass the arguments |
| through the ellipsis (...) according to the EFIAPI calling convention). |
| However, va_start() inside DbgPrint() *assumes* that stack. |
| |
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 8921ba2fc5f6163bdad3b5902c5d9d638415dde0 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 18:49:23 2014 -0400 |
| |
| Cleaned up compile warnings. |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 42cca551dbf1c0be9e02e8d3d3c417ce35749638 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 14:04:11 2014 -0400 |
| |
| Module lib/ParseCmdLine.c has errors, it incorrectly mixes "char" and "CHAR16" |
| and uses a pointer to argv[] like it's argv[]. The compiler only issues |
| warnings though. Here is a patch to remove compiler warnings and make the |
| code behave. |
| |
| Signed-off-by: Bernard Burette <bub75@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 4e8460f1aedd2724de876be5b154eb5752bfada5 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 13:53:03 2014 -0400 |
| |
| Here is a very small patch to remove a compiler warning when processing lib/smbios.c. |
| |
| Signed-off-by: Bernard Burette <bub75@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 6a0875ca2fcb67e7d1a1e2d15f3bcc645329dc75 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 13:45:16 2014 -0400 |
| |
| Here is a very small patch to remove compiler warning in function |
| "LibLocateHandleByDiskSignature()" because the "Start" variable is |
| give a value which is not used. |
| |
| Signed-off-by: Bernard Burette <bub75@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit d5f35dfb8008ba65bcc641559accd9bc13386ef9 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 13:40:29 2014 -0400 |
| |
| Here is a very small patch to remove *~ files in include diretory. |
| |
| Signed-off-by: Bernard Burette <bub75@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 1a04669a7bb022984c9b54a0f73d7d67a2540fb7 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Apr 14 12:45:57 2014 -0400 |
| |
| Here is a patch for "DevicePathToStr()" to display device path according to UEFI 2 specification. |
| The path is in the two files inc/efidevp.h and lib/dpath.c. |
| |
| It also add the Sata device path and removes the "/?" path for unknown device paths. |
| |
| Signed-off-by: Bernard Burette <bub75@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit 3c62e78556aea01e9798380cd46794c6ca09d4bd |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Apr 1 10:26:44 2014 -0400 |
| |
| Removed GPL code setjmp_ia32.S, setjmp_ia64.S, setjmp_x86_64.S |
| Not used anymore. |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| commit f9baa4f622cf34576d73e00d4a774a31f0f81fd7 |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Mon Mar 31 08:37:56 2014 -0400 |
| |
| Remove incumbent GPL 'debian' subdiretory. |
| Update ChangeLog |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| |
| Changelog format change from here and above to 'git log' style. |
| |
| 2014-04-01 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Removed GPL code setjmp_ia32.S, setjmp_ia64.S, setjmp_x86_64.S |
| Not used anymore. |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-03-17 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Add support for the simple pointer and absolute pointer protocols |
| |
| Signed-off-by: John Cronin <johncronin@users.sf.net> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-03-14 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Trying to recurse into subdirectories of object files may lead |
| to an error if the directory doesn't exist. Even when cleaning. |
| |
| Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-03-14 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Make install used to copy files unconditionnally to their |
| destination. However, if the destination is used by another |
| Makefile, it will always see modified files. "install" target |
| now only updates the files when they need to. |
| |
| Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-02-13 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Patch GNU-EFI to remove the ELILO code |
| |
| Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-02-13 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Initialize Status before calling GrowBuffer() |
| Status must be initialized before calling GrowBuffer() as it may |
| otherwise be uninitialized or set to EFI_BUFFER_TOO_SMALL by |
| other functions. |
| |
| Signed-off-by: Gene Cumm <gene.cumm@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-01-23 Nigel Croxon <nigel.croxon@hp.com> |
| |
| These changes allow manually overridden SRCDIR (current source |
| directory) and TOPDIR (top of source tree) to separate the |
| build directory from the source tree. |
| |
| Signed-off-by: Gene Cumm <gene.cumm@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-01-16 Nigel Croxon <nigel.croxon@hp.com> |
| compilation: fix uninitialized variables warning |
| |
| Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-01-13 Nigel Croxon <nigel.croxon@hp.com> |
| Implement VSPrint function, prints a formatted unicode string to a buffer. |
| |
| Signed-off-by: Jeremy Compostella <jeremy.compostella@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-01-10 Nigel Croxon <nigel.croxon@hp.com> |
| Created lib/argify.c and inc/argify.h containing the function argify. |
| It contains verbatim copy of the comment at beginning of file from |
| elilo. |
| There was no COPYING file in the elilo source that the comment refers to. |
| |
| Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2014-01-08 Nigel Croxon <nigel.croxon@hp.com> |
| The information needed is not really the host architecture as given by |
| the kernel arch. The information actually needed is the default target |
| of gcc. |
| |
| Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2013-10-11 Nigel Croxon <nigel.croxon@hp.com> |
| Added support for SetVariable to store volatile variable, |
| and SetNVVariable to store non volatile variable. |
| |
| Signed-off-by: Sylvain Chouleur <sylvain.chouleur@gmail.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2013-10-07 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Atoi needs to have consistent declaration/definition. |
| |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2013-10-07 Nigel Croxon <nigel.croxon@hp.com> |
| if you have a function that takes const arguments and then |
| e.g. tries to copy StrCmp, gcc will give you warnings about those |
| calls, and the warnings are right. These clutter up other things |
| you might miss that you should be more concered about. |
| |
| You could work around it through vigorous typecasting |
| to non-const types, but why should you have to? All of these |
| functions are regorously defined as not changing their input |
| - it is const, and should be marked as such. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| |
| 2013-10-02 Nigel Croxon <nigel.croxon@hp.com> |
| |
| Added two simple applications to allocate/free memory at EFI. |
| Used to test/find memory fragmentation issues linux. |
| |
| Signed-off-by: Jerry Hoemann <jerry.hoemann@hp.com> |
| Signed-off-by: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2013-06-25 Nigel Croxon <nigel.croxon@hp.com> |
| Sample boot service driver. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| 2013-06-25 Nigel Croxon <nigel.croxon@hp.com> |
| Date: Tue Jun 25 08:47:03 2013 -0400 |
| |
| Be more pedantic when linking, don't allow duplicate symbols, |
| abort upon first error. Also make sure linker script comes |
| last for apps. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| 2013-06-25 Nigel Croxon <nigel.croxon@hp.com> |
| Fix compilation on x86_64 without HAVE_USE_MS_ABI |
| make -C apps would fail on tcc.c because uefi_call_wrapper() |
| doesn't deal correctly with efi_callO-type invocation. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| 2013-06-12 Nigel Croxon <nigel.croxon@hp.com> |
| Fix typo when disabling mno-mmx |
| |
| Signed-Off-By: Nigel Croxon <nigel.croxon@hp.com> |
| |
| 2013-06-12 Nigel Croxon <nigel.croxon@hp.com> |
| Disable MMX and SSE |
| |
| GCC 4.8.0 adds some optimizations that will use movups/movaps (and use |
| %xmm* registers) when they're faster, and of course that won't work at |
| all since UEFI firmwares aren't guaranteed to initialize the mmx/sse |
| instructions. |
| |
| This will be even more annoying, since most UEFI firmwares don't |
| initialize the #DE or #UD trap handlers, and your backtrace will be a |
| random path through uninitialized memory, occasionally including |
| whatever address the IDT has for #UD, but also addresses like "0x4" and |
| "0x507" that you don't normally expect to see in your call path. |
| |
| Signed-off-by: Peter Jones <pjones@redhat.com> |
| |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jun 12 10:29:40 2013 -0400 |
| |
| bug in make 3.82 expand to odd values |
| |
| Some Makefiles tickle a bug in make 3.82 that cause libefi.a |
| and libgnuefi.a dependencies to expand to the odd values: |
| |
| libefi.a: boxdraw.o) smbios.o) ... |
| libgnuefi.a(reloc_x86_64.o: |
| |
| The patch replaces libgnuefi.a($(OBJS)) & libefi.a($(OBJS)) |
| with an equivalent expansion that should work with any make |
| that supports $(patsubst). |
| |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jun 12 09:53:01 2013 -0400 |
| |
| support .text.* sections on x86_64 |
| |
| Group them in .text. Also add vague linkage sections in .text. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jun 12 09:51:36 2013 -0400 |
| |
| cleanup and fix Make.defaults |
| |
| Reorder variables in Make.defaults so that they are grouped by |
| functions. Also fixed ifeq (x,y) to have required syntax and make it |
| work for ARCH amd64->x86_64 renaming on BSD. Also provides top-level |
| Makefile with a "mkvars" target that displays effective variables. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jun 12 09:47:16 2013 -0400 |
| |
| automatically determine number of uefi_call_wrapper() args on x86_64 |
| |
| Instead of asking developers to explicitly pass the number of |
| parameters to the functions that get called, we determine them |
| automatically at preprocessing time. This should result in more |
| robust code. |
| |
| Argument va_num is now ignored in x86_64 code, both with and |
| without HAVE_USE_MS_ABI. |
| |
| Credits to the macro magic given in the comments. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| Author: Nigel Croxon <nigel.croxon@hp.com> |
| Date: Wed Jun 12 09:38:10 2013 -0400 |
| |
| fix parameter-passing corruption on x86_64 for >= 5 args |
| |
| On x86_64 without HAVE_USE_MS_ABI support, uefi_call_wrapper() is a |
| variadic function. Parameters >=5 are copied to the stack and, when |
| passed small immediate values (and possibly other parameters), gcc |
| would emit a movl instruction before calling uefi_call_wrapper(). As a |
| result, only the lower 32b of these stack values are significant, the |
| upper 32b potentially contain garbage. Considering that |
| uefi_call_wrapper() assumes these arguments are clean 64b values |
| before calling the efi_callX() trampolines, the latter may be passed |
| garbage. This makes calling functions like |
| EFI_PCI_IO_PROTOCOL.Mem.Read()/Write() or BS->OpenProtocol() quite |
| unreliable. |
| |
| This patch fixes this by turning uefi_call_wrapper() into a macro that |
| allows to expose the efi_callX() trampoline signatures to the callers, |
| so that gcc can know upfront that it has to pass all arguments to |
| efi_callX() as clean 64b values (eg. movq for immediates). The |
| _cast64_efi_callX macros are just here to avoid a gcc warning, they do |
| nothing otherwise. |
| |
| Signed-off-by: David Decotigny <decot@googlers.com> |
| |
| Author: noxorc <nigel.croxon@hp.com> |
| Date: Wed May 15 15:26:16 2013 -0400 |
| |
| - Removes the ElfW() macro usage from reloc_ia32.c and reloc_x86_64.c. These |
| macros only exist in link.h on Linux. On FreeBSD, the equivalent macro is |
| __ElfN(). But the macro usage is redundant. You're only going to compile the |
| ia32 file for IA32 binaries and the x86_64 file for X64 binaries. If you had |
| just one file built for both cases, then using the macro might make more |
| sense. |
| |
| - Removes the "#define foo_t efi_foo_t" macros from reloc_ia32.c and |
| reloc_x86_64.c. |
| |
| - Modifies inc/x86_64/efibind.h and inc/ia32/efibind.h to use the new |
| definitions for uint64_t, int64_t and int8_t. The 64-bit types are now defined |
| as: |
| |
| typedef int __attribute__((__mode__(__DI__))) int64_t; |
| typedef unsigned int __attribute__((__mode__(__DI__))) uint64_t; |
| |
| This removes the conflict between the host types dragged in by elf.h and the |
| type definitions in efibind.h that made the #define foo_t efi_foo_t" hack |
| necessary. Also, int8_t is now defined as signed char instead of just char |
| (assuming char == signed char is apparently not good enough). |
| |
| - Also modifies these files to use stdint.h instead of stdint-gcc.h. It's |
| unclear if this is completely correct, but stdint-gcc.h is not present with |
| all GCC installs, and if you use -std=c99 or later you will force this case to |
| be hit. This also can break clang, which doesn't have a stdint-gcc.h at all. |
| |
| - Removes the #include of <link.h> from reloc_ia32.c and reloc_x86_64.c (since |
| with the previous changes it's not needed anymore). |
| |
| - Places the #include of <elf.h> after #include <efi>/#include <efilib.h> so |
| that we know the types will always be defined properly, in case you build on a |
| system where <elf.h> doesn't automatically pull in the right header files to |
| define all the needed types. (This actually happens on VxWorks. It's harmless |
| elsewhere. If you don't care about VxWorks, you can leave this out.) |
| |
| - Modifies setjmp_ia32.S and setjmp_x86_64.S so to change "function" to |
| @function. The clang compiler doesn't like the former. Clang and GCC both like |
| the latter. |
| |
| - Modifles Make.defaults so that if ARCH is detected as "amd64," it's changed |
| to "x86_64." It happens that uname -m on 64-bit FreeBSD reports the former |
| rather than the latter, which breaks the build. This may also be the case on |
| some other OSes. There's a way to force uname(1) to return x86_64 as the |
| machine type, but this way is a little friendlier. |
| |
| - Creates gnuefi/elf_ia32_fbsd_efi.lds which specifies the object file type as |
| elf-ia32-freebsd. This is required for building on FreeBSD/i386, not just |
| FreeBSD/amd64. |
| |
| - Modifies apps/Makefile to always use |
| $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds when building on either 32-bit or |
| 64-bit FreeBSD instead of just for the x86_64 case. |
| |
| - Changed LDFLAGS in Make.defaults to include --no-undefined. This will cause |
| linking to fail if there are any unsatisfied symbols when creating foo.so |
| during any of the app builds, as opposed to just silently succeeding and |
| producing an unusable binary. |
| |
| - Changed CFLAGS to include -ffreestanding -fno-stack-protector -fno-stack- |
| check. This prevents clang from inserting a call to memset() when compiling |
| the RtZeroMem() and RtSetMem() routines in lib/runtime/efirtlib.c and guards |
| against the native compiler in some Linux distros from adding in stack |
| checking code which relies on libc help that isn't present in the EFI runtime |
| environment. |
| |
| This does the following: |
| |
| - Cleans up the ia32 and x86-64 relocation code a bit (tries to break the |
| dependency between the host ELF headers and the EFI runtime environment) |
| - Avoids the dependency on stdint-gcc.h which may not always be available |
| - Allows GNU EFI to build out of the box on both FreeBSD/i386 and |
| FreeBSD/amd64 |
| - Allows GNU EFI to build out of the box with either GCC or clang on |
| FreeBSD/i386 and FreeBSD/amd64 9.0 and later. |
| - Makes things a little easier to port to VxWorks |
| - Avoids creating un-runable binaries with unresolved symbol definitions |
| (which can be very confusing to debug) |
| |
| Author: noxorc <nigel.croxon@hp.com> |
| Date: Wed May 8 16:29:45 2013 -0400 |
| |
| Add the definitions for TCP, UDP and IP, for both IPv4 and IPv6. |
| |
| |
| 2013-05-02 Nigel Croxon <nigel.croxon@hp.com> |
| * Chnage from Matt Fleming <matt.fleming@intel.com> |
| - Preparation for adding the networking protocol definitions. |
| Add the service binding protocol. |
| |
| 2013-02-21 Nigel Croxon <nigel.croxon@hp.com> |
| * Change from Peter Jones <pjones@redhat.com> |
| - Previously we were incorrectly passing 3 functions with |
| the System V ABI to UEFI functions as EFI ABI functions. |
| Mark them as EFIAPI so the compiler will (in our new |
| GNU_EFI_USE_MS_ABI world) use the correct ABI. |
| - These need to be EFIAPI functions because in some cases |
| they call ST->ConOut->OutputString(), which is an EFIAPI |
| function. (Which means that previously in cases that |
| needed "cdecl", these didn't work right.) |
| - If the compiler version is new enough, and GNU_EFI_USE_MS_ABI |
| is defined, use the function attribute ms_abi on everything |
| defined with "EFIAPI". Such calls will no longer go through |
| efi_call*, and as such will be properly type-checked. |
| - Honor PREFIX and LIBDIR correctly when passed in during the build. |
| - Add machine type defines for i386, arm/thumb, ia64, ebc, x86_64. |
| - __STDC_VERSION__ never actually gets defined unless there's a |
| --std=... line. So we were accidentally defining lots of c99 |
| types ourself. Since it's 2012, use --std=c11 where appropriate, |
| and if it's defined and we're using gcc, actually include gcc's |
| stdint definitions. |
| - New test application added: route80h. This is a test program |
| for PciIo. It routes ioport 80h on ICH10 to PCI. This is also |
| useful on a very limited set of hardware to enable use of |
| a port 80h debug card. |
| - New test applcation added: modelist. This lists video modes |
| the GOP driver is showing us. |
| * Change from Finnbarr Murphy |
| - https://sourceforge.net/p/gnu-efi/feature-requests/2/ |
| Please add the following status codes to <efierr.h> |
| EFI_INCOMPATIBLE_VERSION 25 |
| EFI_SECURITY_VIOLATION 26 |
| EFI_CRC_ERROR 27 |
| EFI_END_OF_MEDIA 28 |
| EFI_END_OF_FILE 31 |
| EFI_INVALID_LANGUAGE 32 |
| EFI_COMPROMISED_DATA 33 |
| * Change from SourceForge.net Bug report |
| - https://sourceforge.net/p/gnu-efi/bugs/5/ |
| BufferSize is a UINT64 *. The file shipped with GNU EFI is from |
| 1998 whereas the latest one is from 2004. I suspect Intel changed |
| the API in order handle 64-bit systems. |
| * Change from Felipe Contreras <felipe.contreras@gmail.com> |
| - The current code seems to screw the stack at certain points. |
| Multiple people have complained that gummiboot hangs right away, |
| which is in part the fault of gummiboot, but happens only |
| because the stack gets screwed. x86_64 EFI already aligns the |
| stack, so there's no need for so much code to find a proper |
| alignment, we always need to shift by 8 anyway. |
| * Change from A. Steinmetz |
| - https://sourceforge.net/p/gnu-efi/patches/1/ |
| The patch prepares for elilo to support uefi pxe over ipv6 |
| See uefi spec 2.3.1 errata c page 963 as reference. |
| Verfied on an ASUS Sabertooth X79 BIOS Rev. 2104 system which |
| is able to do an IPv6 UEFI PXE boot. |
| * Release 3.0t |
| |
| 2012-09-21 Nigel Croxon <nigel.croxon@hp.com> |
| * Change from Peter Jones <pjones@redhat.com> |
| - EFI Block I/O protocol versions 2 and 3 provide more information |
| regarding physical disk layout, including alingment offset at the |
| beginning of the disk ("LowestAlignedLba"), logical block size |
| ("LogicalBlocksPerPhysicalBlock"), and optimal block transfer size |
| ("OptimalTransferLengthGranularity"). |
| * Release 3.0r |
| |
| 2012-04-30 Nigel Croxon <nigel.croxon@hp.com> |
| * Change from Matt Fleming <matt.fleming@intel.com> |
| - The .reloc section is now 4096-byte boundary for x86_64. |
| Without this patch the .reloc section will not adhere to |
| the alignment value in the FileAlignment field (512 bytes by |
| default) of the PE/COFF header. This results in a signed |
| executable failing to boot in a secure boot environment. |
| * Release 3.0q |
| |
| 2011-12-12 Nigel Croxon <nigel.croxon@hp.com> |
| * Changes from Fenghua Yu <fenghua.yu@intel.com> |
| - This fixes redefined types compilation failure for tcc.c on x86_64 machines. |
| * Release 3.0p |
| |
| 2011-11-15 Nigel Croxon <nigel.croxon@hp.com> |
| * Changes from Darren Hart <dvhart@linux.intel.com> |
| - Conditionally assign toolchain binaries to allow overriding them. |
| - Force a dependency on lib for gnuefi. |
| * Release 3.0n |
| |
| 2011-08-23 Nigel Croxon <nigel.croxon@hp.com> |
| * Changes from Peter Jones <pjones@redhat.com> |
| - Add guarantee 16-byte stack alignment on x86_64. |
| - Add routine to make callbacks work. |
| - Add apps/tcc.efi to test calling convention. |
| * Release 3.0m |
| |
| 2011-07-22 Nigel Croxon <nigel.croxon@hp.com> |
| * Changed Makefiles from GPL to BSD. |
| * Changes from Peter Jones <pjones@redhat.com> |
| - Add ifdefs for ia64 to mirror ia32 and x86-64 so that |
| one can build with GCC. |
| - Add headers for PciIo. |
| - Add the UEFI 2.x bits for EFI_BOOT_SERVICES |
| - Add an ignore for .note.GNU-stack section in X86-64 linker maps. |
| * Release 3.0l |
| |
| 2011-04-07 Nigel Croxon <nigel.croxon@hp.com> |
| * Change license from GPL to BSD. |
| * Release 3.0j |
| |
| 2009-09-12 Julien BLACHE <jb@jblache.org> |
| * Add support for FreeBSD. |
| * Release 3.0i |
| |
| 2009-09-11 Julien BLACHE <jb@jblache.org> |
| * Fix elf_ia32_efi.lds linker script to be compatible with the new |
| linker behaviour. Patch from the RedHat bugzilla 492183. |
| |
| 2009-06-18 Nigel Croxon <nigel.croxon@hp.com> |
| * Release 3.0h |
| |
| 2008-11-06 Nigel Croxon <nigel.croxon@hp.com> |
| * Fix to not having any relocations at all. |
| |
| 2008-09-18 Nigel Croxon <nigel.croxon@hp.com> |
| * Use LIBDIR in makefiles |
| * Add setjmp/longjmp |
| * Fixes incorrect section attribute in crt0-efi-ia32.S |
| * Adds value EfiResetShutdown to enum EFI_RESET_TYPE |
| * Fixes a RAW warning in reloc_ia64.S |
| * Adds the USB HCI device path structure in the headers |
| patches were supplied by Peter Jones @ RedHat |
| |
| 2008-02-22 Nigel Croxon <nigel.croxon@hp.com> |
| * Added '-mno-red-zone' to x68_64 compiles. |
| Patch provided by Mats Andersson. |
| |
| 2008-01-23 Nigel Croxon <nigel.croxon@hp.com> |
| * release 3.0e to support x86_64 |
| EFI calling convention, the stack should be aligned in 16 bytes |
| to make it possible to use SSE2 in EFI boot services. |
| This patch fixes this issue. Patch provided by Huang Ying from Intel. |
| |
| 2007-05-11 Nigel Croxon <nigel.croxon@hp.com> |
| * release 3.0d to support x86_64 from Chandramouli Narayanan |
| from Intel and based on 3.0c-1 |
| |
| 2006-03-21 Stephane Eranian <eranian@hpl.hp.com> |
| * merged patch to support gcc-4.1 submitted by |
| Raymund Will from Novell/SuSE |
| |
| 2006-03-20 Stephane Eranian <eranian@hpl.hp.com> |
| * updated ia-64 and ia-32 linker scripts to |
| match latest gcc. The new gcc may put functions in |
| .text* sections. patch submitted by H.J. Lu from Intel. |
| |
| 2004-11-19 Stephane Eranian <eranian@hpl.hp.com> |
| * added patch to ignore .eh_frame section for IA-32. Patch |
| submitted by Jim Wilson |
| |
| 2004-09-23 Stephane Eranian <eranian@hpl.hp.com> |
| * added patch to discard unwind sections, newer toolchains |
| complained about them. Patch submitted by Jesse Barnes from SGI. |
| |
| 2003-09-29 Stephane Eranian <eranian@hpl.hp.com> |
| * updated elf_ia64_efi.lds to reflect new data sections |
| created by gcc-3.3. Patch provided by Andreas Schwab from Suse. |
| |
| 2003-06-20 Stephane Eranian <eranian@hpl.hp.com> |
| * updated elf_ia64_efi.lds and elf_ia32_efi.lds to include |
| new types data sections produced by recent version of gcc-3.x |
| |
| 2002-02-22 Stephane Eranian <eranian@hpl.hp.com> |
| * release 3.0a |
| * modified both IA-64 and IA-32 loader scripts to add support for the |
| new .rodata sections names (such as rodata.str2.8). Required |
| for new versions of gcc3.x. |
| |
| 2001-06-20 Stephane Eranian <eranian@hpl.hp.com> |
| * release 3.0 |
| * split gnu-efi package in two different packages: the libary+include+crt and the bootloader. |
| * removed W2U() hack and related files to get from wide-char to unicode. |
| * Use -fshort-wchar option for unicode. |
| * restructured Makefiles now install under INSTALLROOT. |
| |
| 2001-04-06 Stephane Eranian <eranian@hpl.hp.com> |
| |
| * incorporated patches from David and Michael Johnston at Intel |
| to get the package to compile for IA-32 linux target. |
| |
| * Fixed ELILO to compile for Ia-32 (does not execute yet, though): |
| Makefile and start_kernel() function. |
| |
| 2001-04-06 Andreas Schwab <schwab@suse.de> |
| |
| * Fixed config.c to |
| get the timeout directive to do something. implemented the global |
| root= directive. |
| |
| * Fix the efi_main() to deal with the -C option properly |
| |
| 2001-04-05 Stephane Eranian <eranian@hpl.hp.com> |
| |
| * update efi library to latest EFI toolkit 1.02 as distributed |
| by Intel. Fixed header + library files to compile with GCC |
| |
| * merged ELI and LILO (as of gnu-efi-1.1) together, mostly |
| taking the config file feature of ELI. |
| |
| * renamed LILO to ELILO to make the distinction |
| |
| * restructured code to make it easier to understand and maintain |
| |
| * fixed FPSWA driver checking and loading: we try all possible |
| files and let the driver itself figure out if it is the most |
| recent. |
| * added support for compression (gzip) but keep support for plain |
| ELF image. ELILO autodetects the format |
| |
| * change the way the kernel is invoked. Now we call it in |
| physical memory mode. This breaks the dependency between the |
| kernel code and the loader. No more lilo_start.c madness. |
| |
| * changed the way the boot_params are passed. We don't use the |
| ZERO_PAGE_ADDR trick anymore. Instead we use EFI runtime memory. |
| The address of the structure is passed to the kernel in r28 |
| by our convention. |
| |
| * released as gnu-efi-2.0 |
| |
| 2001-04-03 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/reloc_ia32.c (_relocate): Change return type from "void" |
| to "int". Return error status if relocation fails for some |
| reason. |
| |
| * gnuefi/elf_ia32_efi.lds: Drop unneeded ".rel.reloc" section. |
| |
| * gnuefi/crt0-efi-ia32.S (_start): Exit if _relocate() returns with |
| non-zero exit status. |
| |
| * inc/ia32/efibind.h [__GNUC__]: Force 8-byte alignment for 64-bit |
| types as that is what EFI appears to be expecting, despite the |
| "#pragma pack()" at the beginning of the file! |
| |
| 2001-03-29 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/reloc_ia32.c: Add a couple of defines to work around |
| libc/efilib collision on uint64_t et al. |
| (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)(). |
| |
| * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry. |
| |
| 2001-03-29 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/reloc_ia32.c: Add a couple of defines to work around |
| libc/efilib collision on uint64_t et al. |
| (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)(). |
| |
| * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry. |
| |
| 2000-10-26 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/elf_ia64_efi.lds: Mention .rela.sdata. |
| |
| * Make.defaults (CFLAGS): Remove -nostdinc flags so we can pick |
| up the C compiler's stdarg.h. |
| |
| * inc/stdarg.h: Remove this file. It's not correct for gcc (nor |
| most other optimizing compilers). |
| |
| 2000-10-10 Stephane Eranian <eranian@hpl.hp.com> |
| |
| * cleaned up the error message and printing of those. |
| * added support to load the FPSWA from a file in case support is not |
| present in the firmware already |
| * fixed split_args() to do the right thing when you have leading spaces |
| before kernel name |
| * changed the argify() function to rely on \0 instead of LoadOptionSize |
| as the field seems to be broken with current firmware |
| * bumped version to 1.0 |
| |
| 2000-10-04 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/reloc_ia64.S: Reserve space for up to 750 function descriptors. |
| |
| * gnuefi/elf_ia64_efi.lds: Add .sdata section for small data and |
| put __gp in the "middle" of it. |
| |
| * gnuefi/crt0-efi-ia64.S (_start): Use movl/add to load |
| gp-relative addresses that could be out of the range of the addl |
| offset. |
| * gnuefi/reloc_ia64.S (_relocate): Ditto. |
| |
| * apps/Makefile: Remove standard rules and include Make.rules instead. |
| * lilo/Makefile: Ditto. |
| |
| * Make.rules: New file. |
| |
| 2000-08-04 Stephane Eranian <eranian@hpl.hp.com> |
| * released version 0.9 |
| * incorporated ACPI changes for Asuza by NEC < kouchi@hpc.bs1.fc.nec.co.jp> |
| * added support for initrd (-i option) original ELI code from Bill Nottingham <notting@redhat.com>) |
| * lots of cleanups |
| * got rid of #ifdef LILO_DEBUG and uses macro instead |
| * fix a few extra memory leaks in create_boot_params() |
| * added exit capability just before starting the kernel |
| |
| 2000-06-22 David Mosberger <davidm@hpl.hp.com> |
| |
| * gnuefi/elf_ia64_efi.lds: Add .srodata, .ctors, .IA64.unwind, |
| .IA64.unwind_info to .data section and .rela.ctors to .rela |
| section. |
| |
| 2000-04-03 David Mosberger <davidm@hpl.hp.com> |
| |
| * lilo/lilo.c (LILO_VERSION): Up version number to 0.9. |
| |
| * gnuefi/elf_ia64_efi.lds: Include .IA_64.unwind and |
| .IA_64.unwind_info in .data segment to avoid EFI load error |
| "ImageAddress: pointer outside of image" error due to the .dynsym |
| relocations against these sections. |
| |
| * ChangeLog: Moved from lilo/ChangeLogs. |
| |
| * gnuefi/reloc_ia64.S: fixed typo: .space directive had constant |
| 100 hardcoded instead of using MAX_FUNCTION_DESCRIPTORS |
| macro. Duh. |
| |
| 2000-03-17 Stephane Eranian <eranian@hpl.hp.com> |
| |
| * Released 0.8 |
| * replace the getopt.c with new version free with better license |
| * created a documentation file |
| * fix a couple of memory leaks |
| * code cleanups |
| * created a separate directory for lilo in the gnu-efi package. |
| * added support for the BOOT_IMAGE argument to kernel |
| * default is to build natively now |
| |