Eugene Cohen [Thu, 7 Aug 2014 07:44:37 +0000 (07:44 +0000)]
Fix OpensslLib build issue for ARM. The changes are:
The changes are:
1. Add RVCT ARM build target
2. Add suppression of warnings to get openssl building (1295,550,1293,111,68,177,223,144,513,188)
3. Remove architectures that RVCT cannot build for (IA32, X64, and IPF)
4. Add the -DOPENSSL_NO_MD2 flag to prevent link errors from MD2 references; the comments in the .inf assumes that this flag exists but it wasn’t actually set
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eugene Cohen <eugene@hp.com> Reviewed-by: Ye Ting <ting.ye@intel.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Long Qin <qin.long@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15767 6f19259b-4bc3-4df7-8a09-765794883524
The memory allocation tests will also fail, sometimes leaving all available memory consumed.
The correct output in the above example is:
Maximum exponent = 128
Maximum number = 3.40282347e+38
Overflow doesn't seem to generate a trap
The root cause is that all operations on values of Long or ULong type, within the gdtoa library, must be 32-bit operations. A previous change replaced the Long and ULong definitions with INTN and UINTN, respectively. While this is correct for a lot of Linux and NetBSD code, it was not correct for this library.
This fix reverts the definitions of ULong and Long back to 32-bit types.
A descriptive comment has also been added to the U union.
Additional white-space has been added to tidy up the definitions of the word0 and word1 macros.
Verified with Enquire.efi and the ISO/IEC C Library compliance Validation Suite.
Jaben Carsey [Tue, 5 Aug 2014 17:52:18 +0000 (17:52 +0000)]
This adds the new APIs for UEFI Shell 2.1 and makes a new structure for shell implementations that are conformant to this new spec. It does not affect existing implementations.
Olivier Martin [Mon, 4 Aug 2014 14:18:13 +0000 (14:18 +0000)]
ArmPkg/ArmSmcLib: Fixed SMC helper functions
The SMC helper functions were buggy as they were assuming that
the values in x1-x7 registers were preserved across an SMC call,
which is not the case. This patch fixes this issue.
It also simplifies the code by providing only 1 version of the SMC
helper function. We used to have 4 versions depending on the number
of arguments. The problem with this approach was that the number of
arguments also dictated the number of return values, which is
completely unrelated. E.g. you can have an SMC call that takes
1 argument but returns 4 values.
Harry Liebel [Mon, 4 Aug 2014 01:26:57 +0000 (01:26 +0000)]
The pointer argument should be set to NULL if not used not FALSE.
FALSE evaluates to 0. This was flagged by LLVM compiler as a
warning:
"expression which evaluates to zero treated as a null pointer
constant of type 'EFI_MTFTP4_OVERRIDE_DATA *'
[-Wnon-literal-null-conversion]"
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-By: Olivier Martin <olivier.martin@arm.com> Reviewed-By: Fu, Siyuan <siyuan.fu@intel.com> Reviewed-By: Ye, Ting (ting.ye@intel.com)
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15741 6f19259b-4bc3-4df7-8a09-765794883524
Qiu Shumin [Mon, 4 Aug 2014 01:06:19 +0000 (01:06 +0000)]
Update the en-US definition in 'UefiShellInstall1CommandsLib.uni', 'UefiShellLevel1CommandsLib.uni', 'UefiShellLevel3CommandsLib.uni' and 'UefiShellNetwork1CommandsLib.uni' to make them consistent.
lhauch [Fri, 1 Aug 2014 18:11:32 +0000 (18:11 +0000)]
CodeModule: BaseTools - tools_def.txt VS2010, VS2010x86, VS2012 and VS2012x86 update locations for rc.exe tool
This change will point to the correct location of the rc.exe tool.
RC.exe is used for building UEFI compliant drivers that must have a UEFI_HII_RESOURCE_SECTION generated as part of the .efi image file.
Elvin Li [Fri, 1 Aug 2014 05:08:40 +0000 (05:08 +0000)]
MdeModulePkg: Fix wrong check for SetAttribute in Consplitter
Original code check if Attribute > 0x7FFFFFFF, this is wrong and fail to check valid case per UEFI spec.
ShellPkg: UpdateStdInStdOutStdErr(): append BOM to new unicode file
The >> operator redirects stdout to a file, using append mode and unicode
encoding. Write the BOM when redirection happens to a new file (which
starts out empty).
This makes the >> operator behave similarly to the > operator, when the
redirection target doesn't exist originally:
OutUnicode && OutAppend && FileSize == 0 // >> to new unicode file
vs.
OutUnicode && !OutAppend // > to any unicode file
(Note that (FileSize == 0) is equivalent to "new file" in this context,
due to the earlier "Check that filetypes (Unicode/Ascii) do not change
during an append".)
Add VS2013 tool chain in BaseTools\Conf\tools_def.template. Also, two issues came up related to vs2013 build and caused the build to fail.
Vs2013 issue #1: warning message about uninitialized variables or pointers like this:
s:\incbld\ia32\intelframeworkmodulepkg\bus\isa\isabusdxe\isabus.c(395) : warning C4701: potentially uninitialized local variable 'DevicePathData' used
s:\incbld\ia32\intelframeworkmodulepkg\bus\isa\isabusdxe\isabus.c(395) : warning C4703: potentially uninitialized local pointer variable 'DevicePathData' used
LINK : fatal error LNK1257: code generation failed
The following online messages shows discussions related to this vs2013 issue and how Microsoft engineer responded. They suggest a work around by adding the initialization for the variables.
https://connect.microsoft.com/VisualStudio/feedback/details/816730/bogus-warning-from-vs-2013
Vs2013 issue #2:
C:\Program Files\Windows Kits\8.1\include\um\winnt.h(5105) : error C2220: warning treated as error - no 'object' file generated
C:\Program Files\Windows Kits\8.1\include\um\winnt.h(5105) : warning C4005: 'InterlockedCompareExchange64' : macro redefinition
This happened for Nt32Pkg.
Elvin Li [Thu, 31 Jul 2014 03:21:39 +0000 (03:21 +0000)]
MdeModulePkg: Removed valid text mode check in SetAttribute interface in GraphicsConsole.
UEFI spec mentioned that the color mask can be set even when the device is in an invalid text mode. But the current code add text mode check. Removed the check now.
Ronald Cron [Tue, 29 Jul 2014 14:19:57 +0000 (14:19 +0000)]
ArmPlatformPkg/Bds: Added boot options reordering
Added the reordering of the boot options feature to the boot manager.
The BootMenuSelectBootOption() has been split into
DisplayBootOptions() that only displays the boot options and
SelectBootOptions() that asks to select one.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <ronald.cron@arm.com> Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15718 6f19259b-4bc3-4df7-8a09-765794883524
Ronald Cron [Tue, 29 Jul 2014 14:15:15 +0000 (14:15 +0000)]
ArmPlatformPkg/Bds: Got rid of RequestBootType argument
Removed "RequestBootType" argument of the "*CreateDevicePathNode()" and
"*UpdateDevicePathNode()" functions. A boolean field "Request
BootType" has been added to the BDS_LOAD_OPTION_SUPPORT structure and
is used by the "BootMenuAddBootOption()" and "BootMenuUpdateBootOption()"
functions instead.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <ronald.cron@arm.com> Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15713 6f19259b-4bc3-4df7-8a09-765794883524
Olivier Martin [Tue, 29 Jul 2014 14:07:30 +0000 (14:07 +0000)]
ArmPkg/ArmPkg.dec: Added the interrupt numbers for the Hypervisor and Virtual Timers
These numbers are mainly to reduce hardcoded numbers into the ACPI GTDT table.
And also to match with the use of PcdArmArchTimerSecIntrNum and PcdArmArchTimerIntrNum
into the GTDT ACPI Table.
Signed off by: Ravi Rangarajan <ravi.p.rangarajan@intel.com>
Reviewed by: Maurice Ma <maurice.ma@intel.com>
Reviewed by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed by: Giri Mudusuru <giri.p.mudusuru@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
Paolo Bonzini [Mon, 28 Jul 2014 17:37:46 +0000 (17:37 +0000)]
BuildEnv: remove useless check before setting $WORKSPACE
As long as $EDK_TOOLS_PATH is properly set, the BaseTools/ directory
is not necessary in the workspace. The BuildEnv file itself suggests
setting the variable if BaseTools/ is not available.
However, this only works if the user also sets $WORKSPACE. Otherwise,
BuildEnv refuses to set WORKSPACE itself and does not even try to use
the preset $EDK_TOOLS_PATH. Remove the check that fails, as it does
not have any practical benefit.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15702 6f19259b-4bc3-4df7-8a09-765794883524
Paolo Bonzini [Mon, 28 Jul 2014 17:37:40 +0000 (17:37 +0000)]
edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout
Since WORKSPACE should point at the EDK2 tree, the right place
to check its validity is edksetup.sh, not BaseTools/BuildEnv.
This patch makes sure that BuildEnv is always invoked with a valid
WORKSPACE. This lets us show better error messages, and ensures that
we never dirty the user's environment.
BuildEnv will maintain backwards-compatibility and, should the variable
be missing, it will be able to set a default WORKSPACE. Only the sanity
checks will be of lower quality.
Note that the error message in SetupEnv will never be shown if
SetWorkspace sets WORKSPACE=`pwd`.
Suggested-by: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15701 6f19259b-4bc3-4df7-8a09-765794883524
Paolo Bonzini [Mon, 28 Jul 2014 17:37:35 +0000 (17:37 +0000)]
edksetup.sh: Look for BuildEnv under EDK_TOOLS_PATH
EDK_TOOLS_PATH is basically a replacement for $WORKSPACE/BaseTools.
It makes sense to check for BuildEnv there, then, if $WORKSPACE
is absent but $EDK_TOOLS_PATH is present.
With this patch, it is possible to separately package tools in
/usr and use them compile EDK2 (doing "rm -rf BaseTools" in the
EDK2 tree). This is desirable for OS distributions that need to
distribute the tools in a "free software" repository and OVMF in
a "non-free software" repository; bundling the same code in two
different packages causes confusion. It is also simpler for distros
because the build process for BaseTools and OVMF is completely
different.
Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15700 6f19259b-4bc3-4df7-8a09-765794883524
ShellPkg: Fix calls to SimpleTextOut->SetAttribute to not use reserved bits
As the shell inverts foreground and background it needs to be sure that it properly masks off the reserved bits and this is important since the foreground and background are not the same numbers of bits.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com> Reviewed-by: Tapan Shah <tapandshah@hp.com> Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15681 6f19259b-4bc3-4df7-8a09-765794883524
CodeModule: BaseTools - Adding the svn:external to the https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32
This change allows users to checkout the edk2 project ignoring the svn:externals.
CodeModule: BaseTools - Removing Win32 binaries to be replaced with an svn:external to the https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32
This change allows users to checkout the edk2 project ignoring the svn:externals.
StdLib/LibC/StdLib/Malloc.c: Revert cast removal to fix GCC build breakage.
The cast to (void**) is needed for the last parameter of the AllocatePool call in malloc(). This is because type CPOOL_HEAD** is not automatically promoted to void**, as required by AllocatePool().
This was originally addressed in SVN revision 15474 but removed again in 15664.
Signed off by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed by: Ravi Rangarajan <ravi.p.rangarajan@intel.com>
Reviewed by: Maurice Ma <maurice.ma@intel.com>
Reviewed by: Giri Mudusuru <giri.p.mudusuru@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
OVMF_VARS.fd and OVMF_CODE.fd split the variable store and the firmware
code in separate files.
The PCDs' values continue to depend only on FD_SIZE_1MB vs. FD_SIZE_2MB.
With the split files, it must be ensured on the QEMU command line that
OVMF_VARS.fd and OVMF_CODE.fd be contiguously mapped so that they end
exactly at 4GB. See QEMU commit 637a5acb (first released in v2.0.0).
In this patch we must take care to assign each PCD only once.
OvmfPkg: extract varstore-related FD Layout Regions to an include file
This saves code duplication between the Ia32, Ia32X64, and X64 flavors,
and enables the next patch to include the varstore in new FD files by
reference.