summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-12-17Get entire variable data for efi varstore at first time.Eric Dong1-1/+27
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
2013-12-17Add the missing assignment of EFI_DISK_IO2_TOKEN::Token in FlushDiskEx() ↵Ruiyu Ni1-0/+1
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
2013-12-17Update code to ensure the pointer ‘CurrentName’ in function ↵Shumin Qiu1-0/+7
‘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
2013-12-16Add a new line to initialize the variable “PassThruProtocol” in ↵Shumin Qiu1-1/+3
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
2013-12-16MdeModulePkg CapsuleRuntimeDxe: Get PcdMaxSizeNonPopulateCapsule and ↵Star Zeng1-3/+9
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
2013-12-15OvmfPkg/QemuVideoDxe: child handles should have open parent protocol ↵Chris Ruffin1-1/+32
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
2013-12-13ShellPkg: add error messages into functionJaben Carsey1-1/+8
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
2013-12-13ShellPkg: Refactor updating command line for help useJaben Carsey1-23/+55
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
2013-12-13Fix the non-blocking behavior for connect. The behavior was correct if the ↵lpleahy leroy.p.leahy3-12/+16
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
2013-12-13ShellPkg: Refactor change to current file systemJaben Carsey1-6/+40
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
2013-12-13ShellPkg: Refactor Split/Pipe based command linesJaben Carsey1-17/+31
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
2013-12-13ArmPlatformPkg/ArmFvpDxe: Added Virtio Block supportOlivier Martin8-1/+81
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
2013-12-13ArmPlatformPkg/ArmVExpressPkg: Added the empty 'ArmFvpDxe' platform UEFI driverOlivier Martin6-1/+79
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
2013-12-13Check Context before use it.Jeff Fan1-1/+1
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
2013-12-13Fix meta file issue.Jeff Fan1-1/+1
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
2013-12-13UefiCpuPkg: S3Resume2Pei: align return stacks explicitlyLaszlo Ersek1-2/+12
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
2013-12-13MdeModulePkg/XhciDxe: Fix ICC compiler build warning.Feng Tian1-1/+1
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
2013-12-13ShellPkg: add API for determining operation typeJaben Carsey2-0/+69
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
2013-12-12ShellPkg: Refactor Variable replacement into separate functionJaben Carsey1-20/+42
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
2013-12-12ShellPkg: Refactor Alias replacement into separate functionJaben Carsey1-41/+76
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
2013-12-12ShellPkg: refactor out leading and trailing space trimmingJaben Carsey1-26/+34
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
2013-12-12ShellPkg: typo in the last commit.Jaben Carsey1-1/+2
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
2013-12-12OvmfPkg: Virtio drivers: fix incorrect casts in init functionsLaszlo Ersek3-3/+3
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
2013-12-12ShellPkg: Refactor out the searching for pipe charactersJaben Carsey1-4/+22
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
2013-12-11OvmfPkg/Virtio: Removed VirtioReadDevice() / VirtIoWriteDevice() functionsOlivier Martin5-168/+35
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
2013-12-11OvmfPkg/Virtio.h: Removed definition of VIRTIO_HDROlivier Martin1-18/+0
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
2013-12-11OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOLOlivier Martin27-532/+388
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
2013-12-11OvmfPkg/VirtioMmioDeviceLib: Implement VIRTIO_DEVICE_PROTOCOL for VirtIo ↵Olivier Martin5-0/+789
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
2013-12-11OvmfPkg/VirtioPciDeviceDxe: Implement VIRTIO_DEVICE_PROTOCOL for VirtIo ↵Olivier Martin4-0/+1172
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
2013-12-11OvmfPkg/VirtioDevice.h: Introduced VIRTIO_DEVICE_PROTOCOL protocolOlivier Martin2-0/+383
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
2013-12-11Add additional check mRuntimeSmbiosEntryPoint == NULL to avoid K9 error.Elvin Li1-1/+1
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
2013-12-11Correct INF file to make module pass ICC compiler.Liming Gao9-18/+18
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
2013-12-10StdLib: Update Copyright Notices.Daryl McDaniel2-4/+2
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
2013-12-10StdLib: Remove an unnecessary dependency from LibWchar.Daryl McDaniel2-5/+1
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
2013-12-10ShellPkg: Refactor Pipe handlingJaben Carsey1-12/+29
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
2013-12-10ARM Packages: Removed 'inline' keywordOlivier Martin2-6/+6
'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
2013-12-10ArmPkg/AArch64Mmu.h: Fix 'Shift is >= width of type'Olivier Martin1-6/+6
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@14956 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-10ArmPkg/ArmDisassemblerLib: Fixed logical/bitwise operator confusionOlivier Martin1-6/+6
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@14955 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-10ArmPkg/ArmMpCoreInfo.h: Fixed macro definitionOlivier Martin1-1/+1
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@14954 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-101. Add ISCSI iBFT CHAP types to IScsiBootFirmwareTable.h.Fu Siyuan3-8/+23
2. Fix ISCSI iBFT's CHAP type mismatch bug caused by 14918. Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Dong, Guo <guo.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14953 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-10Per PI 1.3 spec, when Reserved bit set in the SlaveAddress parameter, ↵Elvin Li1-0/+22
EFI_NOT_FOUND should be returned in EFI_I2C_HOST_PROTOCOL.QueueRequest(). Signed-off-by: Elvin Li <elvin.li@intel.com> Reviewed-by: Leahy Leroy P <leroy.p.leahy@intel.com> Reviewed-by: Lin Jie <jie.lin@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14952 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-09ShellPkg: Remove invalid ASSERTJaben Carsey1-1/+0
There was an assumption that this API would never fail. That is not true and the return value is checked just a few lines later. 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@14951 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-09ShellPkg: Add support for CTRL-C within shell user promptingJaben Carsey1-0/+21
This allows for the user to get out of answering a question with CTRL-C 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@14950 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-09Refine code to fix potential code bug.Eric Dong2-8/+9
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@14949 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-09Refine code to fix potential code bug.Eric Dong1-2/+3
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@14948 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-09Follow Shell specification to make sure the “command.man” file is always ↵Shumin Qiu2-14/+19
used no matter “command.efi -?” or “command -?” is typed. 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@14947 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-08OvmfPkg: enable Xen specific pathWei Liu5-5/+29
This patch sets PcdPciDisableBusEnumeration to true then makes use of PublishPeiMemory and XenMemMapInitialization to construct memory map for Xen guest. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14946 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-08OvmfPkg: introduce XenMemMapInitializationWei Liu3-1/+109
This function parses E820 map provided by Xen and arrange memory maps accordingly. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> [jordan.l.justen@intel.com: XenGetE820Map: VS2010 compat; add assert] Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14945 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-08OvmfPkg: introduce PublishPeiMemoryWei Liu2-1/+40
MemDetect actully does too many things, the underlying platform might want to have more control over memory layout. Extract the functionality of publishing PEI memory to a dedicated function. Also fixed wrong comment while I was there. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14944 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-08OvmfPkg: detect Xen earlierWei Liu3-12/+13
This is useful for initializing memory map. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14943 6f19259b-4bc3-4df7-8a09-765794883524