Star Zeng [Tue, 7 Jan 2014 09:28:33 +0000 (09:28 +0000)]
MdePkg PcdLib: Except for SizeOfBuffer is greater than the maximum size supported, align the behavior of LibPcdSetPtr with LibPcdSetN to handle error status returned.
Let the comments to be aligned with code behavior for LibPcdSetX APIs.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15056
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Tue, 7 Jan 2014 08:07:47 +0000 (08:07 +0000)]
This patch fix date/time op-code shows abnormal.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15055
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Tue, 7 Jan 2014 07:34:20 +0000 (07:34 +0000)]
Not update the status until parse the file info success.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15054
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Tue, 7 Jan 2014 06:24:16 +0000 (06:24 +0000)]
MtrrDebugPrintAllMtrrs() should loop until the max physical address is reached.
GetMemoryCacheTypeFromMtrrType () should return the default memory type instead of UC type for MTRR_CACHE_INVALID_TYPE.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15053
6f19259b-4bc3-4df7-8a09-
765794883524
Ruiyu Ni [Tue, 7 Jan 2014 02:23:10 +0000 (02:23 +0000)]
Enhance Shell 2.0 to not depend on keyboard driver implementation to fix the "CTRL+s" pause malfunction issue.
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Carsey Jaben <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15052
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Tue, 7 Jan 2014 01:51:08 +0000 (01:51 +0000)]
Add the comment for function 'IsValidSplit' in 'Shell.c'. Add code to check whether pointer 'DataBuffer' in 'DmpStore.c' is NULL before used.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15051
6f19259b-4bc3-4df7-8a09-
765794883524
Star Zeng [Mon, 6 Jan 2014 03:36:31 +0000 (03:36 +0000)]
MdeModulePkg CdExpressPei: Use correct PeiServices pointer to call low level BlockIoPpi->ReadBlocks.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15050
6f19259b-4bc3-4df7-8a09-
765794883524
Fu Siyuan [Mon, 6 Jan 2014 03:01:09 +0000 (03:01 +0000)]
Bug fix: IpSec driver treats BOOLEAN as EFI_STATUS in error handling code.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Dong, Guo <guo.dong@intel.com>
Reviewed-by: Jin, Eric <eric.jin@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15049
6f19259b-4bc3-4df7-8a09-
765794883524
Fu Siyuan [Mon, 6 Jan 2014 02:17:12 +0000 (02:17 +0000)]
Fix “reconnect -r” ASSERT after VLAN configured.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Zhang, Chao B <chao.b.zhang@intel.com>
Reviewed-by: Jin, Eric <eric.jin@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15048
6f19259b-4bc3-4df7-8a09-
765794883524
Fu Siyuan [Mon, 6 Jan 2014 02:08:05 +0000 (02:08 +0000)]
Update PXE driver to support PXE forced mode.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Dong, Guo <guo.dong@intel.com>
Reviewed-by: Jin, Eric <eric.jin@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15047
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Fri, 3 Jan 2014 19:57:36 +0000 (19:57 +0000)]
OvmfPkg: QemuFwCfgLib: implement for SEC
The QemuFwCfgSecLib library instance
- is stateless,
- has no library constructor,
- is available to SEC client code,
- must be queried with QemuFwCfgIsAvailable() before use,
- is restricted to SEC in order to limit the explicit querying
requirement. (There is no current user.)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15046
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Fri, 3 Jan 2014 19:57:26 +0000 (19:57 +0000)]
OvmfPkg: QemuFwCfgLib: extract stateful implementation
The current implementation of QemuFwCfgLib is:
- stateful
- implicitly initialized in the library constructor.
OVMF's SEC runs from read-only memory/flash. When the library is linked
into a SEC binary (which currently never happens), the
"mQemuFwCfgSupported" global variable becomes read-only, making the
library non-functional.
Extract the stateful, implicitly initialized library implementation into a
separate file, making room for a stateless, explicitly queried
implementation that's usable in SEC. Restrict the stateful implementation
to the current, non-SEC clients.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15045
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Fri, 3 Jan 2014 19:57:17 +0000 (19:57 +0000)]
OvmfPkg: QemuFwCfgLib: introduce InternalQemuFwCfgIsAvailable()
This internal function allows separation of library-internal and
for-clients external availability of fw_cfg.
The interface contract of QemuFwCfgIsAvailable() is changed so that now it
may modify fw_cfg state. All current users are compliant with the new
contract.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15044
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:43 +0000 (19:19 +0000)]
OvmfPkg/create-release.py: Read License.txt files
Rather than embedding the License information in this script,
we now read the License.txt files from MdePkg & FatBinPkg.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15043
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:38 +0000 (19:19 +0000)]
OvmfPkg/create-release.py: Support git hash versions
Previously we would run 'git svn info' if a .svn directory
wasn't found. This would fail if the current local commit
was not from git-svn.
Now we look for the svn info in the output from git log.
If the svn version is not in a git-svn-id tag from
git log, then we use the git commit hash.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15042
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:32 +0000 (19:19 +0000)]
OvmfPkg/create-release.py: Support GCC44 through GCC47
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15041
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:26 +0000 (19:19 +0000)]
OvmfPkg/create-release.py: Remove '-alpha' from filename
The source control revision is still the produced filename.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15040
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:20 +0000 (19:19 +0000)]
OvmfPkg/README: Update OVMF status
Remove 'Alpha' status tag. Let's just refer to the OVMF
releases by their revision control version.
Remove 'stabilize UEFI Linux' to-do item.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15039
6f19259b-4bc3-4df7-8a09-
765794883524
Jordan Justen [Fri, 3 Jan 2014 19:19:14 +0000 (19:19 +0000)]
OvmfPkg/README: Update information about running OVMF
The new instructions document -pflash & -bios options
for running OVMF on QEMU.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15038
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Fri, 3 Jan 2014 03:27:18 +0000 (03:27 +0000)]
Correct function comments of S3BootScriptSaveDispatch2().
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15037
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Thu, 2 Jan 2014 07:16:09 +0000 (07:16 +0000)]
Update the heap migration logic to avoid memory overflow.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15036
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Thu, 2 Jan 2014 02:38:32 +0000 (02:38 +0000)]
Correct the RemainingPages calculation in PEI AllocatePages service.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15035
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Tue, 31 Dec 2013 07:19:52 +0000 (07:19 +0000)]
Update MemoryAllocationLib AllocateAlignedPages API comments for memory overflow ASSERT case.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15034
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Tue, 31 Dec 2013 07:19:09 +0000 (07:19 +0000)]
Update MemoryAllocationLib.AllocateAlignedPages API comments for memory overflow ASSERT case.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15033
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Tue, 31 Dec 2013 04:46:53 +0000 (04:46 +0000)]
Keep consistent about the return value between the caller and callee.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15032
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Tue, 31 Dec 2013 04:01:17 +0000 (04:01 +0000)]
Set the type of variable 'StatusCode' as SHELL_STATUS to match the parameter type of function 'SetLastError'.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15031
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Mon, 30 Dec 2013 06:07:29 +0000 (06:07 +0000)]
Rollback the change 15021.
Signed-off-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15030
6f19259b-4bc3-4df7-8a09-
765794883524
David Woodhouse [Mon, 30 Dec 2013 01:14:13 +0000 (01:14 +0000)]
MdePkg: First instruction after clearing CR0.PE must be a far jmp.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15029
6f19259b-4bc3-4df7-8a09-
765794883524
David Woodhouse [Mon, 30 Dec 2013 01:12:10 +0000 (01:12 +0000)]
Clean up hard-coded offsets and other utter bogosity in Thunk16.S
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15028
6f19259b-4bc3-4df7-8a09-
765794883524
Star Zeng [Sun, 29 Dec 2013 07:14:57 +0000 (07:14 +0000)]
MdeModulePkg Pcd DXE: Handle the case gPcdDataBaseHobGuid HOB is not present.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15027
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 27 Dec 2013 08:10:37 +0000 (08:10 +0000)]
Update HostSequenceNo for Command packet instead for Response packet.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15026
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 27 Dec 2013 06:14:25 +0000 (06:14 +0000)]
Remove Debug message output from UpdateMailboxContent(), it may cause Mailbox locker nested issue.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15025
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Thu, 26 Dec 2013 21:05:17 +0000 (21:05 +0000)]
OvmfPkg: QemuFwCfgLib: drop bogus dependency on UefiBootServicesTableLib
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15024
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Thu, 26 Dec 2013 20:44:29 +0000 (20:44 +0000)]
OvmfPkg: PlatformPei: reuse PublishPeiMemory() in MemDetect()
Although SVN r14944 ("OvmfPkg: introduce PublishPeiMemory") copied a big
chunk of code from MemDetect(), calling the new PublishPeiMemory()
function in MemDetect() could not have replaced the original code in the
latter. However, with the help of the previous patch, we can do it now.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15023
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Thu, 26 Dec 2013 20:44:20 +0000 (20:44 +0000)]
OvmfPkg: PlatformPei: simplify memory range expressions in MemDetect()
Exploit that (MemoryBase + MemorySize) always equals LowerMemorySize.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15022
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Thu, 26 Dec 2013 04:19:37 +0000 (04:19 +0000)]
Keep consistent about the return value between the caller and callee.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15021
6f19259b-4bc3-4df7-8a09-
765794883524
Elvin Li [Wed, 25 Dec 2013 07:52:55 +0000 (07:52 +0000)]
Update XhcWaitOpRegBit to take Timout argument as microsecond.
Signed-off-by: Elvin Li <elvin.li@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15020
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Wed, 25 Dec 2013 00:55:33 +0000 (00:55 +0000)]
Fix ECC errors:1.Update the comments in function headers to follow the Doxygen special documentation. 2.Make the first line of text in a comment block end with a period. 3.Update the member variable name for SHELL_OPERATION_TYPES to follow the rules "Must contain lower case characters". 4. Return type of a function should exist and in the first line.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Dong, Eric <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15019
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Tue, 24 Dec 2013 07:25:31 +0000 (07:25 +0000)]
Add default way for switch in function 'RunCommandOrFile' of 'Shell.c'.
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Shumin Qiu <shumin.qiu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15018
6f19259b-4bc3-4df7-8a09-
765794883524
Wu Jiaxin [Mon, 23 Dec 2013 08:43:09 +0000 (08:43 +0000)]
Fix a bug for vlan ping failure.
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com >
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Jin Eric <eric.jin@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15017
6f19259b-4bc3-4df7-8a09-
765794883524
Star Zeng [Mon, 23 Dec 2013 06:41:36 +0000 (06:41 +0000)]
MdePkg PcdLib: Follow the comment of LibPcdGetNextToken to ASSERT when an invalid TokenNumber input.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15016
6f19259b-4bc3-4df7-8a09-
765794883524
Star Zeng [Mon, 23 Dec 2013 06:33:12 +0000 (06:33 +0000)]
MdeModulePkg Pcd: Extend PcdVpdBaseAddress to support PcdsPatchableInModule type.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15015
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 20 Dec 2013 22:33:01 +0000 (22:33 +0000)]
ShellPkg: fix DmpStore for deleting
This change allows DmpStore command to delete all variables whereas before it would stop after a single deletion due to looping errors. It uses a recursive function and deletes the last item returned from GetNextVariableName() first and then goes "backwards" to the first items.
This can't delete authenticated variables.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15014
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 20 Dec 2013 05:49:15 +0000 (05:49 +0000)]
Only save HostSequenceNo for new command in Debug Timer handler.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15013
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 20 Dec 2013 05:42:41 +0000 (05:42 +0000)]
1. Only dump CPU Context and CpuDeadLoop () for CPU exception.
2. mEnabledInterruptNum is total enabled interrupt number, InterruptType should less than mEnabledInterruptNum.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15012
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 20 Dec 2013 01:13:36 +0000 (01:13 +0000)]
ShellPkg: pre-verify split commands
This makes sure that all parts of commands split via pipe operation are valid before starting.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15011
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 19 Dec 2013 22:09:17 +0000 (22:09 +0000)]
ShellPkg: API name typo.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15010
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 19 Dec 2013 22:03:37 +0000 (22:03 +0000)]
ShellPkg: fix whitespace character trimming
This makes TrimSpaces() trim tab characters off the end of the string also (not just the beginning). Also updates loop to prevent buffer underrun.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15009
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 19 Dec 2013 21:55:13 +0000 (21:55 +0000)]
ShellPkg: CTRL-C stops a running script at the same time
This makes CTRL-C stop a running script after trying to stop the command. And adds comments to describe the behavior more clearly.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15008
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 19 Dec 2013 16:05:34 +0000 (16:05 +0000)]
ShellPkg: Refactor the RunCommand API
This almost completely splits the RunCommand API into sub-routines.
- the ProcessCommandLineToFinal API handles replacing the a found alias and any found environment variables. This will redirect "-?" to "help", if necessary. Upon return, the command line is complete and finalized. It may still have redirection in it, and those will get chopped off later (but no further modifications occur).
- the SetupAndRunCommandOrFile API handles updating and then later restoring StdIn, StdOut, and StdErr (and removing their information from the command line). It will call into RunCommandOrFile.
- the RunCommandOrFile API divides the logic to RunInternalCommand, RunScriptFile, or running an .EFI file directly.
- the RunInternalCommand API handles updating and then restoring Argc and Argv. It will run the internal command in between.
- the SetLastError API handles updating of the environment variable "lasterror"
- the DoHelpUpdateArgcArgv was changed to DoHelpUpdate and now works on the raw command line and not the argc/argv. This allows the processing to be moved earlier.
Note this change has the following positive side effects (this eliminates unnecessary step):
- Argc/Argv are only updated for internal commands (as they are library based)
- no Argv/Argc/StdIn/StdOut/StdErr processing is done for file system changes.
- The ProcessCommandLineToFinal API exists and it's critical to the ability to correctly pre-process split ("|") command lines ahead of time to verify their correctness.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15007
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Thu, 19 Dec 2013 02:03:42 +0000 (02:03 +0000)]
Converse the return value from 'int' to 'BOOLEAN' for function ‘ContainsSplit’ in Shell.c.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Ni, Ruiyu <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15006
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Wed, 18 Dec 2013 19:57:57 +0000 (19:57 +0000)]
OvmfPkg: VirtioBlkInit(): log topology attributes
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15005
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Wed, 18 Dec 2013 19:57:46 +0000 (19:57 +0000)]
OvmfPkg: VirtioBlkInit(): expose virtio-blk topology in BlockIo
UEFI spec virtio spec
======================================= =================================
LowestAlignedLba EFI_LBA (UINT64) alignment_offset u8
+-------------------------------------- +--------------------------------
| first LBA that is aligned to a | offset of first aligned
| physical block boundary (SCSI | logical block
| definition)
LogicalBlocksPerPhysicalBlock UINT32 physical_block_exp u8
+-------------------------------------- +--------------------------------
| number of logical blocks per | # of logical blocks per
| physical block [...] does not contain | physical block (log2)
| an exponential value
OptimalTransferLengthGranularity UINT32 opt_io_size le32
+-------------------------------------- +--------------------------------
| optimal transfer length granularity | optimal (suggested maximum) I/O
| as a number of logical blocks [...] A | size in blocks
| value of 0 means there is no reported
| optimal transfer length granularity
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15004
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Wed, 18 Dec 2013 19:57:36 +0000 (19:57 +0000)]
OvmfPkg/VirtioBlkDxe/VirtioBlk.c: rewrap overlong lines
Lines should be no longer than 79 characters.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15003
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Wed, 18 Dec 2013 19:57:28 +0000 (19:57 +0000)]
OvmfPkg: IndustryStandard/VirtioBlk: introduce topology-related definitions
Based on
<https://tools.oasis-open.org/version-control/browse/wsvn/virtio/virtio-v1.0-wd01-part1-specification.txt?rev=159>,
which is the last text format revision.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15002
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Wed, 18 Dec 2013 19:57:18 +0000 (19:57 +0000)]
OvmfPkg: IndustryStandard/VirtioBlk: add extra horizontal whitespace
We're going to introduce a new macro and a new VIRTIO_BLK_CONFIG member
that need realignment of existing definitions and comments. Separate out
the whitespace changes in this patch.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15001
6f19259b-4bc3-4df7-8a09-
765794883524
Ruiyu Ni [Wed, 18 Dec 2013 05:51:22 +0000 (05:51 +0000)]
Rollback the change to EFI_BOOT_KEY_DATA structure since UEFI Spec adds the clarification that bitfields are ordered such that bit 0 is the least significant bit.
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15000
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Wed, 18 Dec 2013 03:02:52 +0000 (03:02 +0000)]
Update code to avoid using potential NULL pointer.
Signed-off-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14999
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Tue, 17 Dec 2013 22:23:05 +0000 (22:23 +0000)]
ShellPkg: Add missing function header comments
I found that some function headers had insufficient/incorrect information.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14998
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Tue, 17 Dec 2013 21:40:41 +0000 (21:40 +0000)]
ShellPkg: Fix "for" command statement initialization.
The shell was failing to correctly parse up to the space only for “run (1 3)” and also losing the space for “in ” a b” c” for loop initialization. This fixes for initialization to be correct.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14997
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Tue, 17 Dec 2013 18:17:55 +0000 (18:17 +0000)]
OvmfPkg: QemuFlashFvbServicesRuntimeDxe: fix out-of-LBA write access
When QemuFlashWrite() is asked to write a range that includes the last
byte of the LBA, then the byte that the function uses to switch the flash
device back to read mode (ROMD mode in KVM speak) actually falls out of
the LBA.
Normally this doesn't cause visible problems. However, if the variable
store and the firmware code are backed by separate flash devices, as
implemented by
[Qemu-devel] [PATCH v2] hw/i386/pc_sysfw: support two flash drives
http://thread.gmane.org/gmane.comp.emulators.qemu/243678
plus
[edk2] [edk2 PATCH] OvmfPkg: split the variable store to a separate file
http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5045/focus=5046
then the READ_ARRAY_CMD not only reaches a different LBA, it reaches a
different qemu device. This results in a guest reboot soon after.
Fix this by ensuring that we always stay within the LBA just written when
issuing READ_ARRAY_CMD.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14996
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Tue, 17 Dec 2013 08:33:06 +0000 (08:33 +0000)]
Update code to support guid op nest in the statement.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14995
6f19259b-4bc3-4df7-8a09-
765794883524
Fu Siyuan [Tue, 17 Dec 2013 07:46:11 +0000 (07:46 +0000)]
Fix a bug in TCP driver’s component name print function.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Dong, Guo <guo.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14994
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Tue, 17 Dec 2013 06:21:33 +0000 (06:21 +0000)]
Fix two issues in PeiCore.
1. HOB address is not 8 byte alignment.
2. FV with the max supported PEIM can't be dispatched.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14993
6f19259b-4bc3-4df7-8a09-
765794883524
Eric Dong [Tue, 17 Dec 2013 05:00:17 +0000 (05:00 +0000)]
Get entire variable data for efi varstore at first time.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14992
6f19259b-4bc3-4df7-8a09-
765794883524
Ruiyu Ni [Tue, 17 Dec 2013 05:00:10 +0000 (05:00 +0000)]
Add the missing assignment of EFI_DISK_IO2_TOKEN::Token in FlushDiskEx() implementation. Without the assignment, system may hang sometimes.
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14991
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Tue, 17 Dec 2013 01:04:38 +0000 (01:04 +0000)]
Update code to ensure the pointer ‘CurrentName’ in function ‘PerformSingleMappingDisplay’ isn’t null before being processed.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14990
6f19259b-4bc3-4df7-8a09-
765794883524
Shumin Qiu [Mon, 16 Dec 2013 01:53:11 +0000 (01:53 +0000)]
Add a new line to initialize the variable “PassThruProtocol” in ConsoleWrapers.c to ensure the initialization not to be a part of its declaration.
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14989
6f19259b-4bc3-4df7-8a09-
765794883524
Star Zeng [Mon, 16 Dec 2013 01:34:01 +0000 (01:34 +0000)]
MdeModulePkg CapsuleRuntimeDxe: Get PcdMaxSizeNonPopulateCapsule and PcdMaxSizePopulateCapsule by PcdGet32 in EntryPoint.
PcdMaxSizeNonPopulateCapsule and PcdMaxSizePopulateCapsule are declared to support Dynamic, but used by FixedPcdGet32 in CapsuleRuntimeDxe.
QueryCapsuleCapabilities is a runtime interface and PCD protocol can’t be used in runtime environment.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14988
6f19259b-4bc3-4df7-8a09-
765794883524
Chris Ruffin [Sun, 15 Dec 2013 20:47:39 +0000 (20:47 +0000)]
OvmfPkg/QemuVideoDxe: child handles should have open parent protocol BY_CHILD_CONTROLLER
The QemuVideoDxe driver creates child controller handles, so it is acting
as a hybrid bus driver. The child handles should open the parent's bus
protocol BY_CHILD_CONTROLLER to properly maintain the protocol usage count.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chris Ruffin <chris.ruffin@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14987
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 13 Dec 2013 23:53:59 +0000 (23:53 +0000)]
ShellPkg: add error messages into function
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14986
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 13 Dec 2013 21:58:51 +0000 (21:58 +0000)]
ShellPkg: Refactor updating command line for help use
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14985
6f19259b-4bc3-4df7-8a09-
765794883524
lpleahy leroy.p.leahy [Fri, 13 Dec 2013 19:22:39 +0000 (19:22 +0000)]
Fix the non-blocking behavior for connect. The behavior was correct if the code polled the connect routine but was not correct when using select to complete the asynchronous request. This change fixes the select case by moving where some of the operations performed upon the connection completion.
Signed-off-by: lpleahy leroy.p.leahy@intel.com
Reviewed-by: Daniel Moura oxesoft@gmail.com
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14984
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 13 Dec 2013 18:45:43 +0000 (18:45 +0000)]
ShellPkg: Refactor change to current file system
This moves the initialization for handling file system changes into a separate function.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14983
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 13 Dec 2013 18:18:27 +0000 (18:18 +0000)]
ShellPkg: Refactor Split/Pipe based command lines
This moves the initialization for handling command lines with pipe ‘|’ into a separate function.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14982
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Fri, 13 Dec 2013 12:05:01 +0000 (12:05 +0000)]
ArmPlatformPkg/ArmFvpDxe: Added Virtio Block support
Right now the ARM Platform driver does not do much, but
I expect to move most platform specific code into platform
specific driver in the future.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- ensure / document that the VIRTIO_BLK_DEVICE_PATH structure must be
packed
- fix whitespace damage in definition of "mVirtioBlockDevicePath"
- the platform driver is added to all platform DSC and FDF files in the
previous patch; this patch focuses on virtio only
Change-Id: I3505bfc5b31085b8017bd9e6895a155bd7a2eee9
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14981
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Fri, 13 Dec 2013 12:03:55 +0000 (12:03 +0000)]
ArmPlatformPkg/ArmVExpressPkg: Added the empty 'ArmFvpDxe' platform UEFI driver
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- For uniformity, add the empty driver to
ArmVExpress-RTSM-AEMv8Ax4-foundation.* too in this patch, not just
ArmVExpress-RTSM-AEMv8Ax4.*. V4 added the empty driver to
ArmVExpress-RTSM-AEMv8Ax4-foundation.* not sooner than the next patch,
fusing it with other (= virtio) functionality. Let's split these changes
cleanly.
Change-Id: I7d635011c8d3ac59097c728b7c7786d8677c80cb
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14980
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 13 Dec 2013 06:15:50 +0000 (06:15 +0000)]
Check Context before use it.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14979
6f19259b-4bc3-4df7-8a09-
765794883524
Jeff Fan [Fri, 13 Dec 2013 04:46:47 +0000 (04:46 +0000)]
Fix meta file issue.
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Hesheng Chen <hesheng.chen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14978
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Fri, 13 Dec 2013 03:22:33 +0000 (03:22 +0000)]
UefiCpuPkg: S3Resume2Pei: align return stacks explicitly
S3RestoreConfig2() can optionally stack-switch to the SMM S3 Resume Entry
Point and ask it to transfer to S3ResumeExecuteBootScript().
Similarly, S3ResumeExecuteBootScript() stack-switches explicitly to the
boot script executor, and asks it to transfer to S3ResumeBootOs().
Currently the stack pointers specified for the SMM S3 Resume Entry Point
and the boot script executor to use for returning are derived from
addresses of the first local variables in S3RestoreConfig2() and
S3ResumeExecuteBootScript(), respectively.
Since (theoretically) the stack grows down as local variables are defined
and functions are called, the idea is presumably to allow the respective
callee to overwrite the caller's local variables. (The callees in
question can never return normally, only by explicit stack switching.)
Taking the address of "Status" is less portable than optimal however.
Compilers are free to juggle local variables at build time as they
please, including order and alignment on the stack. For example, when the
code is built for 64-bit PEI with gcc-4.8.2, the address of "Status"
trips up the alignment assertion in SwitchStack().
Let's align the address of "Status" down to CPU_STACK_ALIGNMENT
explicitly. If a compiler ensures such alignment and places "Status" at
the highest address automatically, then this change has no effect.
Otherwise, we'll prepare ReturnStackPointer values that (a) are correctly
aligned, (b) preserve the same amount or more (but never less) from the
caller's local variables than before, which should be safe.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed by: Jiewen Yao <Jiewen.Yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14977
6f19259b-4bc3-4df7-8a09-
765794883524
Feng Tian [Fri, 13 Dec 2013 01:43:27 +0000 (01:43 +0000)]
MdeModulePkg/XhciDxe: Fix ICC compiler build warning.
Signed-off-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14976
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Fri, 13 Dec 2013 00:13:59 +0000 (00:13 +0000)]
ShellPkg: add API for determining operation type
There are no callers for this new API yet. They will be added in the next commits.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14975
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 12 Dec 2013 21:44:23 +0000 (21:44 +0000)]
ShellPkg: Refactor Variable replacement into separate function
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14974
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 12 Dec 2013 21:16:38 +0000 (21:16 +0000)]
ShellPkg: Refactor Alias replacement into separate function
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14973
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 12 Dec 2013 18:42:18 +0000 (18:42 +0000)]
ShellPkg: refactor out leading and trailing space trimming
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14972
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 12 Dec 2013 17:55:37 +0000 (17:55 +0000)]
ShellPkg: typo in the last commit.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14971
6f19259b-4bc3-4df7-8a09-
765794883524
Laszlo Ersek [Thu, 12 Dec 2013 17:28:05 +0000 (17:28 +0000)]
OvmfPkg: Virtio drivers: fix incorrect casts in init functions
The recent patch
OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL
was fixed up at commit time, in order to silence warnings issued by the
Visual Studio compiler. Differences between the posted and committed
patch:
> diff --git a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
> -index
17b9f71..
96a0d9f 100644
> +index
17b9f71..
f09b0d1 100644
> --- a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
> +++ b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
> @@ -23,7 +23,6 @@
> @@ -994,7 +998,7 @@
> + // step 4c -- Report GPFN (guest-physical frame number) of queue.
> + //
> + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo,
> -+ (UINTN) Dev->Ring.Base >> EFI_PAGE_SHIFT);
> ++ (UINT32)(UINTN) Dev->Ring.Base >> EFI_PAGE_SHIFT);
> + if (EFI_ERROR (Status)) {
> + goto ReleaseQueue;
> + }
> @@ -1495,7 +1499,7 @@
> goto Exit;
> }
> diff --git a/OvmfPkg/VirtioNetDxe/SnpInitialize.c b/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> -index
6cee014..
8dcf9da 100644
> +index
6cee014..
4203fbd 100644
> --- a/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> +++ b/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> @@ -57,14 +57,15 @@ VirtioNetInitRing (
> @@ -1539,7 +1543,7 @@
> - Status = VIRTIO_CFG_WRITE (Dev, Generic.VhdrQueueAddress,
> - (UINTN) Ring->Base >> EFI_PAGE_SHIFT);
> + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo,
> -+ (UINTN) Ring->Base >> EFI_PAGE_SHIFT);
> ++ (UINT32)(UINTN) Ring->Base >> EFI_PAGE_SHIFT);
> if (EFI_ERROR (Status)) {
> - VirtioRingUninit (Ring);
> + goto ReleaseQueue;
> @@ -1721,7 +1725,7 @@
> Exit:
> gBS->RestoreTPL (OldTpl);
> diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c
> -index
b836fb3..
bcec676 100644
> +index
b836fb3..
2223c9c 100644
> --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c
> +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c
> @@ -38,7 +38,6 @@
> @@ -1908,7 +1912,7 @@
> + // step 4c -- Report GPFN (guest-physical frame number) of queue.
> + //
> + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo,
> -+ (UINTN) Dev->Ring.Base >> EFI_PAGE_SHIFT);
> ++ (UINT32)(UINTN) Dev->Ring.Base >> EFI_PAGE_SHIFT);
> if (EFI_ERROR (Status)) {
> goto ReleaseQueue;
> }
These casts are incorrect -- they throw away address bits >=32 before
shifting, which can break the drivers in guests with more than 4GB RAM.
The bug is clearly an artifact of the edk2 coding style, which requires
cast expressions to be written as
(type) expression
rather than the usual
(type)expression
The latter correctly reflects that casts have one of the strongest
bindings in C. The former actively obscures that fact. Cf.
(type) expr1 >> expr2
vs.
(type)expr1 >> expr2
Make sure we shift before we truncate.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14970
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Thu, 12 Dec 2013 17:27:27 +0000 (17:27 +0000)]
ShellPkg: Refactor out the searching for pipe characters
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14969
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:58:39 +0000 (16:58 +0000)]
OvmfPkg/Virtio: Removed VirtioReadDevice() / VirtIoWriteDevice() functions
These functions did not provide much more than the new protocol functions
VIRTIO_DEVICE_PROTOCOL.ReadDevice() / VIRTIO_DEVICE_PROTOCOL.WriteDevice().
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14968
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:58:30 +0000 (16:58 +0000)]
OvmfPkg/Virtio.h: Removed definition of VIRTIO_HDR
This definition is specific to VirtIo over PCI.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14967
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:58:22 +0000 (16:58 +0000)]
OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL
This change replaces the accesses to the PCI bus from the Block, Scsi and Net drivers by
the use of the new VIRTIO_DEVICE_PROTOCOL protocol that abstracts the transport layer.
It means these drivers can be used on PCI and MMIO transport layer.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- VirtioFlush(): update comment block in VirtioLib.[hc]; error code is
propagated from VirtIo->SetQueueNotify().
- VirtioBlkInit(): jump to Failed label if SetPageSize() fails
- VirtioBlkInit(): fixup comment, and add error handling, near
SetQueueNum() call
- VirtioBlkDriverBindingStart(): remove redundant (always false) check for
a subsystem device ID different from VIRTIO_SUBSYSTEM_BLOCK_DEVICE;
VirtioBlkDriverBindingSupported() handles it already
- VirtioNetGetFeatures(): update stale comment block
- VirtioNetGetFeatures(): retrieve MAC address byte for byte (open-coded
loop)
- VirtioNetDriverBindingStart(): remove redundant (always false) check for
a subsystem device ID different from VIRTIO_SUBSYSTEM_NETWORK_CARD;
VirtioNetDriverBindingSupported() handles it already
- VirtioNetInitRing(): call SetQueueNum() and SetQueueAlign() for proper
MMIO operation
- VirtioNetInitialize(): fix destination error label for when
SetPageSize() fails
- VirtioScsi.c: fix comment block of VIRTIO_CFG_WRITE()/VIRTIO_CFG_READ()
- VirtioScsiInit(): fix destination error label for when SetPageSize()
fails
- VirtioScsiInit(): call SetQueueNum() and SetQueueAlign() for proper MMIO
operation
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14966
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:57:59 +0000 (16:57 +0000)]
OvmfPkg/VirtioMmioDeviceLib: Implement VIRTIO_DEVICE_PROTOCOL for VirtIo Devices over MMIO
Why is the virtio-mmio implementation of the protocol a library,
instead of a driver binary?
The UEFI driver model would encourage to create a virtio-mmio driver
instead of a library. But the reasons why I created a library are:
- A virtio-mmio driver would imply an additional protocol that would
probably have a single attribute field:
typedef struct {
PHYSICAL_ADDRESS BaseAddress;
} VIRTIO_MMIO_DEVICE_PROTOCOL;
- There is no (easy) way to scan the available VirtIo devices on a
platform. So, the UEFI firmware for this platform would need a driver
to produce instances for every virtio devices it wants to expose in
UEFI. A single call to a helper library (ie: VirtioMmioDeviceLib)
make the porting easier.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- typo fix in VirtioMmioInstallDevice() comment block
- plug MmioDevice leak in VirtioMmioUninstallDevice()
- return EFI_INVALID_PARAMETER in VirtioMmioGetQueueAddress() if
QueueAddress is NULL
- VirtioMmioSetQueueSize(): fix return value (it's a status code)
- VirtioMmioSetPageSize(): check against EFI_PAGE_SIZE with "if" plus
EFI_UNSUPPORTED, rather than ASSERT()
- VirtioMmioDeviceWrite(), VirtioMmioDeviceRead(): remove redundant
(FieldSize > 8) checks
- VirtioMmioDeviceLib.inf: drop UefiDriverEntryPoint library dependency
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14965
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:57:49 +0000 (16:57 +0000)]
OvmfPkg/VirtioPciDeviceDxe: Implement VIRTIO_DEVICE_PROTOCOL for VirtIo Devices over PCI
This change implements the VIRTIO_DEVICE_PROTOCOL for the PCI transport
layer.
The VirtIo device drivers will interact with the PCI-based VirtIo devices
through this protocol implementation.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- updated comment block on VirtioPciDeviceRead()
- return EFI_UNSUPPORTED instead of failed ASSERT() in
VirtioPciSetPageSize()
- VirtioPciIoRead(): restore the original requirement that FieldSize equal
BufferSize exactly (not only divide it). The looping added in v4 did not
match the comment block, and the only place that used it in v4 (ie.
VirtioNetGetFeatures()) needs an open-coded loop anyway (will be done in
a later part of v5).
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14964
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Wed, 11 Dec 2013 16:57:40 +0000 (16:57 +0000)]
OvmfPkg/VirtioDevice.h: Introduced VIRTIO_DEVICE_PROTOCOL protocol
This protocol introduces an abstraction to access the VirtIo
Configuration and Device spaces.
The registers in these spaces are located at a different offset and have
a different width whether the transport layer is either PCI or MMIO. This
protocol would also allow to support VirtIo PCI devices with MSI-X
capability in a transparent way (Device space is at a different offset
when a PCIe device has MSI-X capability).
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
v5:
- add disclaimer (two instances) about the protocol being work in progress
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14963
6f19259b-4bc3-4df7-8a09-
765794883524
Elvin Li [Wed, 11 Dec 2013 08:53:19 +0000 (08:53 +0000)]
Add additional check mRuntimeSmbiosEntryPoint == NULL to avoid K9 error.
Signed-off-by: Elvin Li <elvin.li@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14962
6f19259b-4bc3-4df7-8a09-
765794883524
Liming Gao [Wed, 11 Dec 2013 08:22:43 +0000 (08:22 +0000)]
Correct INF file to make module pass ICC compiler.
Signed-off-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14961
6f19259b-4bc3-4df7-8a09-
765794883524
Daryl McDaniel [Tue, 10 Dec 2013 22:16:57 +0000 (22:16 +0000)]
StdLib: Update Copyright Notices.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <daryl.mcdaniel@intel.com>
Reviewed-by: Matthew Stanbro <Matthew.A.Stanbro@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14960
6f19259b-4bc3-4df7-8a09-
765794883524
Daryl McDaniel [Tue, 10 Dec 2013 21:42:59 +0000 (21:42 +0000)]
StdLib: Remove an unnecessary dependency from LibWchar.
LibWchar is now a standalone library which can be used independent of the rest of StdLib.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <daryl.mcdaniel@intel.com>
Reviewed-by: Matthew Stanbro <Matthew.A.Stanbro@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14959
6f19259b-4bc3-4df7-8a09-
765794883524
Jaben Carsey [Tue, 10 Dec 2013 18:41:35 +0000 (18:41 +0000)]
ShellPkg: Refactor Pipe handling
This moves some logic for handling command lines with pipe ‘|’ into a separate function.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14958
6f19259b-4bc3-4df7-8a09-
765794883524
Olivier Martin [Tue, 10 Dec 2013 16:39:54 +0000 (16:39 +0000)]
ARM Packages: Removed 'inline' keyword
'inline' keyword is not supported by the C89 (version used by EDK2).
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14957
6f19259b-4bc3-4df7-8a09-
765794883524