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.
StdLib: Move GetPass.c out of Uefi and into PosixLib. Create LibPosix to contain all functions from PosixLib instead of individual libraries. Retains the ability to use the individual libraries, except GetPass, for backwards compatibility.
StdLib/LibC/Uefi/GetPass.c
COPY to StdLib/PosixLib/GetPass/GetPass.c
DELETE
StdLib/PosixLib/GetPass/GetPass.c
NEW, COPIED from StdLib/LibC/Uefi/GetPass.c
StdLib/PosixLib/PosixLib.inf
Create a LibPosix library class to build all PosixLib functions into a single library.
Move GetPass from LibC/Uefi to PosixLib.inf
StdLib/LibC/Uefi/Uefi.inf
Remove GetPass.c from sources.
Remove IPF from VALID_ARCHITECTURES
Update VERSION_STRING
Align [Defines] on a two-character boundary
Olivier Martin [Tue, 15 Jul 2014 09:21:41 +0000 (09:21 +0000)]
ArmPkg/BdsLib: Removed PSCI discoverability from the Linux loader
Some platforms might decide to not support PSCI in their FDT-aware Linux
system even if their firmware supports it.
It is the responsibility of the platform engineer to provide the appropriate FDT.
The PCD gArmTokenSpaceGuid.PcdArmPsciSupport is not required anymore.
Jeff Fan [Fri, 11 Jul 2014 02:36:56 +0000 (02:36 +0000)]
1. Save/restore ICR high 32bit value and check Delivery Status before sending IPI. It could be fix the interrupted issue between ICR high/low writes by SMI handler.
2. Save/restore CPU Interrupt state around sending IPI. It could avoid sending IPI be interrupted by CPU interrupt handler.
3. Add note for SetApicMode() API that must not be called from an interrupt handler or SMI handler.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Kinney, Michael <michael.d.kinney@intel.com> Reviewed-by: Mudusuru, Giri <giri.p.mudusuru@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15652 6f19259b-4bc3-4df7-8a09-765794883524
Jeff Fan [Thu, 10 Jul 2014 02:12:27 +0000 (02:12 +0000)]
Introduce one PCD PcdCpuInitIpiDelayInMicroSeconds to specify the delay value after sending out INIT IPI instead of hard code 10 MicroSeconds.
Its default value is 10 millisecond per IA32 manual.
Platform could customize this PCD value for performance requirement.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Kinney, Michael <michael.d.kinney@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15650 6f19259b-4bc3-4df7-8a09-765794883524
Olivier Martin [Wed, 9 Jul 2014 05:19:24 +0000 (05:19 +0000)]
The UEFI specification does not say anything when the pointers passed to
WaitForEvent() are NULL.
Passing NULL pointer would cause a segmentation fault in the current code.
This change prevents to get segmentation faults in this case.
Update OpenSSL from 0.9.8w to the latest 0.9.8za.
Main changes include:
1. Update the patch file for 0.9.8za;
2. Update the install scripts to align the path for 0.9.8za;
3. OpensslLib.inf : Update the OPENSSL_PATH for 0.9.8za; enable more OPENSLL FLAGS to disable those un-used algorithms for better build performance and size;
4. Update the HOWTO file to align new OpenSSL version.