447ad9aa | 15-Sep-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Add EBC (EFI Byte Code) protocol support.
Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
c108e118 | 15-Sep-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Add support for PCI Root Bridge I/O protocol.
PCI Root Bridge I/O protocol is used by PCI Bus Driver to perform PCI Memory, PCI I/O, and PCI Configuration cycles on a PCI Root Bridge. It also provid
Add support for PCI Root Bridge I/O protocol.
PCI Root Bridge I/O protocol is used by PCI Bus Driver to perform PCI Memory, PCI I/O, and PCI Configuration cycles on a PCI Root Bridge. It also provides services to perform different types of bus mastering DMA.
V2 - Scratch that - there already exists an efipciio.h with most of these definitions. Let me remove this patch and propose a new one that will amend what's already there. OK, here's a better version that adds the required definition in efipciio.h. Note that EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL and EFI_PCI_IO_PROTOCOL are two different protocols.
V3 - Pete, There are now two defines of EFI_PCI_ADDRESS. Please repost with your define removed. Nigel, Sorry about that. Here's v3.
Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
751cbce3 | 18-Aug-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Update global protocol GUIDs definitions to match EDK2
This patch introduces the use of the EDK2 names for the global GUID variables, to allow for easier code conversion between EDK2 and gnu-efi. Al
Update global protocol GUIDs definitions to match EDK2
This patch introduces the use of the EDK2 names for the global GUID variables, to allow for easier code conversion between EDK2 and gnu-efi. All the existing GUID global variables have also been aliased for backwards compatibility.
The patch also completes some of the earlier work with regards to protocol struct definitions to also match the EDK2, with the following caveat: Because some of gnu-efi GUID macro definitions were declared with the name that the EDK2 uses for the protocol struct itself, we have to immediately deprecate the following GUID data aliases: EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL EFI_PCI_IO_PROTOCOL EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL This means that existing code using one of the above will break on compilation. To mitigate this, explicit warnings have been placed at the location where a developer will look for breakage, detailing how they should amend their code.
The KnownGuids short labels in guid.c were also updated/amended in a manner that should be a bit more consistent (though I have no idea what the EDK2 does here, since I haven't looked at the actual EDK2 source).
Finally, besides clean up (typo, whitespaces, duplicate removal), we introduce the _GNU_EFI macro, in efi.h, to allow for conditional selection of specific gnu-efi API calls, in code that may be compiled with either EDK2 or gnu-efi.
Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
7993cbcc | 16-Aug-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Add support for some UEFI 2.0 protocols
* DevicePath[To|From]Text * BlockIo2 * DiskIo2 * Ex calls for Simple File System
Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Nigel Croxon <nigel
Add support for some UEFI 2.0 protocols
* DevicePath[To|From]Text * BlockIo2 * DiskIo2 * Ex calls for Simple File System
Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
93ef2655 | 08-Jul-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
The latest gnu-efi produces the following warning when compiled with MSVC: lib\print.c(1345): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
Signed-off-by:
The latest gnu-efi produces the following warning when compiled with MSVC: lib\print.c(1345): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
cae022d6 | 08-Jul-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
This patch adds definitions to efiprot.h for EFI_EDID_ACTIVE_PROTOCOL EFI_EDID_DISCOVERED_PROTOCOL EFI_EDID_OVERRIDE_PROTOCOL It also adds the matching global variables to libefi.
Sig
This patch adds definitions to efiprot.h for EFI_EDID_ACTIVE_PROTOCOL EFI_EDID_DISCOVERED_PROTOCOL EFI_EDID_OVERRIDE_PROTOCOL It also adds the matching global variables to libefi.
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
44d9ae19 | 17-Jun-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
I did not submit the right file on my last submission. This patch corrects the printing of leading fractional part 0s in Print("%f").
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed
I did not submit the right file on my last submission. This patch corrects the printing of leading fractional part 0s in Print("%f").
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
b2c4db06 | 17-Jun-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
I did a quick review of the MS x86_64 calling convention for floating point and as far as I can tell it agrees with the UEFI spec. The attached patch removes -mno-mmx and -mno-sse for x86_64 and adds
I did a quick review of the MS x86_64 calling convention for floating point and as far as I can tell it agrees with the UEFI spec. The attached patch removes -mno-mmx and -mno-sse for x86_64 and adds a new Print target, "%f", to print float and double types.
It seems to compile for ia32, although I'm not sure why - shouldn't it be throwing errors because the new function FloatToStr() in print.c accepts a float, yet I left -no-sse for ARCH=ia32? A better solution might be to add -msoft-float for targets where the floating point calling convention doesn't match the UEFI spec. As I'm not familiar with UEFI on ia32, I didn't make any changes to it.
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
63213a7b | 03-May-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
This patch adds protocol definitions (and the corresponding global EFI_GUID instances) for EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL, EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL, and EFI_BUS_SPECIFIC_DRIVER_OVER
This patch adds protocol definitions (and the corresponding global EFI_GUID instances) for EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL, EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL, and EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL, used in the driver binding search procedure to select which driver to connect when multiple drivers' Supported() functions indicate support for the same controller.
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
78e4df7c | 18-Apr-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
The default __GNUC__ C code cannot be used with MinGW as it inserts implicit calls to _umoddi3 and _udivdi3, which are unavailable when compiling without the standard libraries (-nostdlib).
This pat
The default __GNUC__ C code cannot be used with MinGW as it inserts implicit calls to _umoddi3 and _udivdi3, which are unavailable when compiling without the standard libraries (-nostdlib).
This patch addresses this by providing an inline assembly definition that is an exact conversion of the existing MS one, but for GCC's AT&T syntax.
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
b5b6a81a | 04-Apr-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
When copying structs, some compilers (e.g. MSVC for ARM) will use an implicit call to memcpy(), which can result in an undefined reference. Use CopyMem() to duplicate struct data instead. NB: This pa
When copying structs, some compilers (e.g. MSVC for ARM) will use an implicit call to memcpy(), which can result in an undefined reference. Use CopyMem() to duplicate struct data instead. NB: This patch also removes trailing whitespaces in event.c
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
38c57d52 | 04-Apr-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
When compiling in x86_32|Debug mode and choosing not to link with standard Windows libraries, the MSVC compiler will throw the error: gnu-efi.lib(print.obj) : error LNK2019: unresolved external symbo
When compiling in x86_32|Debug mode and choosing not to link with standard Windows libraries, the MSVC compiler will throw the error: gnu-efi.lib(print.obj) : error LNK2019: unresolved external symbol __allmul referenced in function _ValueToHex
Adding an explicit cast on the array index, to ensure that is not larger than 32 bits, appears to fix the problem.
NB: This patch also removes trailing whitespaces, but the only real change is on line 1253.
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
58e6955b | 28-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
The following fixes a couple GCC specifics for the ARM platform, that MSVC compilers will complain about (such as Visual Studio 2015 with ARM target).
Signed-off-by: Pete Batard <pbatard@users.sf.ne
The following fixes a couple GCC specifics for the ARM platform, that MSVC compilers will complain about (such as Visual Studio 2015 with ARM target).
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
dd5c3db9 | 25-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
I also found an issue when compiling setjmp.S using MinGW for both x86_32 and x86_64, due to the use of ELF specific assembler extensions (.type setjmp, @function is not comptaible with PE-COFF).
Th
I also found an issue when compiling setjmp.S using MinGW for both x86_32 and x86_64, due to the use of ELF specific assembler extensions (.type setjmp, @function is not comptaible with PE-COFF).
This patch addresses that, by making sure that we use the equivalent .type definition for MinGW. Note that I only addressed x86_32 and x86_64 as I'm not aware of MinGW developments for any other archs.
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
5ff74eca | 25-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Commit 3dd05c and subsequent ones introduced the use of the GNU specific __attribute__((__unused__)), which breaks MSVC compilation...
I'll use this as a reminder that gnu-efi is compiled with more
Commit 3dd05c and subsequent ones introduced the use of the GNU specific __attribute__((__unused__)), which breaks MSVC compilation...
I'll use this as a reminder that gnu-efi is compiled with more than GNU toolchains, and that contributors might want to be careful about adding GNU-specific extensions...
This patch does the following: Create a new eficompiler.h header that sets all compiler-specific options and extensions Create a new EFI_UNUSED macro to be used in lieu of __attribute__((__unused__)) and applies it to the relevant sources Move the ALIGN(x) macro, previously defined in efisetjmp.h to the new header
Oh, and it also fixes a bunch of trailing whitespaces (because my code editor is set to do just that by default).
Signed-off-by: Pete Batard <pbatard@users.sf.net> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
1acb1d9d | 25-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
%d now represents signed decimal, %u represents unsigned decimal.
This patch changes the behavior of Print() slightly. %d is now signed decimal, and %u (new) is unsigned decimal. Previously, althoug
%d now represents signed decimal, %u represents unsigned decimal.
This patch changes the behavior of Print() slightly. %d is now signed decimal, and %u (new) is unsigned decimal. Previously, although ValueToString supports signed decimal printing, %d always read args as UINTxx.
Old behavior: Print(L"%d\n", -4) -> "4294967292"
New behavior: Print(L"%d\n, -4) -> "-4" Print(L"%u\n", -4) -> "4294967292"
If you want to keep complete backwards compatibility you could leave %d alone and make something else (probably shouldn't be %u to avoid confusion) be signed decimal. But this way it agrees with the usual use of %d and %u.
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
8c29617e | 17-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Added definitions for EFI HASH PROTOCOL
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
883702e8 | 15-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Add definitions for EFI_COMPONENT_NAME_PROTOCOL and EFI_COMPONENT_NAME2_PROTOCOL
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
0f78eb65 | 10-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Global GUID for DRIVER_BINDING_PROTOCOL
Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
ab6c6ef7 | 03-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
This -Wall -Wextra thing actually caught a real bug.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
087d22af | 03-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
Don't pass a pointer-to-(LoadedImage *) as a void **; pass in a real void pointer's address and cast it reasonably.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.
Don't pass a pointer-to-(LoadedImage *) as a void **; pass in a real void pointer's address and cast it reasonably.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
1ecae7d4 | 03-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
This makes "-Werror=unused-but-set-variable" work.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
3dd05c7b | 03-Mar-2016 |
Nigel Croxon <nigel.croxon@hpe.com> |
This makes "-Werror=unused-parameter" not fail.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com> |
d119b0d7 | 23-Dec-2015 |
Nigel Croxon <nigel.croxon@hpe.com> |
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [PATCH 2/2] Replace ARM arithmetic support routines with EDK2 versions.
Replace the incomplete GPL licensed ARM arithmetic support routines
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [PATCH 2/2] Replace ARM arithmetic support routines with EDK2 versions.
Replace the incomplete GPL licensed ARM arithmetic support routines with the ones from the EDK2 project. These cover long long multiplication and long long logical shift as well.
Also remove the special case for small dividends in DivU64x32: we can simply let the compiler handle this, and emit calls to the support routines where appropriate.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|
88e3cf95 | 23-Dec-2015 |
Nigel Croxon <nigel.croxon@hpe.com> |
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [PATCH 1/2] Relicense ARM and AARCH64 source files as both BSD and GPL
This updates the licenses of the files authored by me under lib/arm a
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [PATCH 1/2] Relicense ARM and AARCH64 source files as both BSD and GPL
This updates the licenses of the files authored by me under lib/arm and lib/aarch64 to be both 2-clause BSD and GPL v2+
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
show more ...
|