Commit Graph

8606 Commits

Author SHA1 Message Date
jljusten 9607962def OVMF: Add support for saving the NV variables to disk following each SetVariable call.
Note:
* This only works before ExitBootServices
* For OVMF, variables are only preserved on the disk if there
  is a hard disk connected which has a writeable FAT file system.

The Ovmf/Library/EmuVariableFvbLib library will look for the
gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent PCD to be set to
a non-zero value.  If set, it is treated as an event handle, and
each write to the EmuVariableFvb will cause the event to be
signaled.

In this change, the OVMF platform BDS library sets up this event,
and sets the PCD so that after each write to the EMU Variable FVB,
the non-volatile variables will be saved out to the file system.

The end result is that NV variables that are written prior to the
ExitBootServices call should be preserved by storing them on the
disk.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9318 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:55 +00:00
jljusten 27f58ea1b2 OVMF: Convert from EmuVariableRuntimeDxe to VariableRuntimeDxe.
OVMF utilizes EmuVariableFvbRuntimeDxe to provide an emulated
variable firmware volume block device for non-volatile variables.
This allows the VariableRuntimeDxe and FaultTolerantWriteDxe
to function without a real non-volatile backing store.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9317 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:51 +00:00
jljusten 610698361d OVMF: Add library to customize the EMU Variable FVB driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9316 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:48 +00:00
jljusten 670d495b19 Add EmuVariableFvbRuntimeDxe driver.
This driver implements a firmware volume block protocol instance
which is stored in system memory.

The MdeModulePkg/Universal/Variable/RuntimeDxe and
MdeModulePkg/Universal/FaultTolerantWriteDxe drivers make use of
this FVB instance to provide variable services.

This driver links to a PlatformFvb library to allow for
platform specific processing to take place when data is written
to the FVB.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9315 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:45 +00:00
jljusten a876ae6f2f Add PlatformFvbLibNull instance of PlatformFvbLib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9314 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:43 +00:00
jljusten 921d5b47be Add PlatformFvbLib to allow platform customization of an FVB driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9313 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:40 +00:00
jljusten b6183e4195 Allow the FaultTolerantWriteDxe addresses to be dynamic PCD's.
PcdFlashNvStorageFtwWorkingBase and PcdFlashNvStorageFtwSpareBase are
now updated each time an FVB instance is installed.  This allows the
PCDs to be set at runtime at any time before the FVB is installed.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9312 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-26 07:15:38 +00:00
vanjeff eb14b48130 add security check
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9311 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-25 07:53:34 +00:00
AJFISH e8de46808a Fixed issues compiling for Apple gcc on IA-32
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9310 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-24 21:48:45 +00:00
eric_tian fbf926add9 sync comments on data structure to follow latest UEFI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9309 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-24 08:56:33 +00:00
rsun3 f60515255d Add HII animation related definitions into MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9308 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-24 06:19:13 +00:00
qhuang8 25a0aa5d93 Update definition aligned to UEFI2.3
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9307 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-24 06:08:28 +00:00
eric_tian eaf75bf4b8 sync the latest spec changes with code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9306 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-23 01:54:04 +00:00
jljusten 0f729825d0 NvVarsFileLib: Fix build warning with VS2005 on X64.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9305 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 23:44:17 +00:00
qhuang8 8a7bae20e1 Remove unnecessary -D flag for GNU assemblers. This flag should have no effect.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9304 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 09:55:30 +00:00
rsun3 82dae5efb3 Fix bug that home addresses for register parameters must be allocated for calling C function from X64 assembly code to follow x64 calling convention.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9303 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 09:19:59 +00:00
qhuang8 60bd4ccd45 Remove tabs in MdePkg source code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9302 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 02:49:53 +00:00
qhuang8 509dfd2172 Use UEFI EFI_FILE_PROTOCOL to replace EFI_FILE
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9301 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 02:49:20 +00:00
qhuang8 c0cf06d6da Use UEFI EFI_FILE_PROTOCOL to replace EFI_FILE
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9300 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 02:48:55 +00:00
qhuang8 b0b961c8f9 Use to use UEFI EFI_FILE_PROTOCOL to replace EFI_FILE
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9299 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 02:47:41 +00:00
qhuang8 79a36e6fe7 Fix small issues in SimpleFileSystem.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9298 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 02:33:21 +00:00
lgao4 f620c8894d Update definition aligned to UEFI2.3
1. TapeIo TAPE_HEADER is rename to EFI_TAPE_HEADER
2. Add IN modifier for parameter Direction and Type of TapeIo.TapeSpace
3. HII package header EFI_HII_DEVICE_PATH_PACKAGE is renamed to EFI_HII_DEVICE_PATH_PACKAGE_HDR.
4. HII package header EFI_HII_FORM_PACKAGE is renamed to EFI_HII_FORM_PACKAGE_HDR.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9297 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-22 01:35:39 +00:00
qhuang8 fa3e7746bb Remove some unicode characters in MdePkg source code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9296 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:44:09 +00:00
qhuang8 81bf52d6d8 Remove the error checking for multi-instance device path since Dxecore has been enhanced to handle that.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9295 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:35:01 +00:00
qhuang8 dc07b3d549 Enhance DxeCore LocateDevicePath() boot service to handle muli-instance device path.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9294 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:26:05 +00:00
qhuang8 47e1a80bbc Update partition driver to not produce BlockIo if a GPT with OS-specific field (BIT1) set in its partition attributes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9293 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:22:14 +00:00
qhuang8 7d9cf3f25e Fix several build break in Ovmf package.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9292 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:20:11 +00:00
qhuang8 b374d62a11 Update MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH in ECP to align with MdePkg definition for ECP shell to work correctly on EDKII platforms.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9291 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:19:20 +00:00
qhuang8 341515e026 Rename the structure name EFI_IFR_EQ_ID_LIST to EFI_IFR_EQ_ID_VALUE_LIST
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9290 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:17:12 +00:00
qhuang8 2654f6420f Rename the structure name EFI_IFR_EQ_ID_LIST to EFI_IFR_EQ_ID_VALUE_LIST
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9289 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:15:35 +00:00
qhuang8 29c18ab53f Clarify some definitions in HII Configure Routine Protocol
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9288 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:14:32 +00:00
qhuang8 8e7b8fb4d6 Clarify Signature field in EFI_PARTITION_ENTRY structure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9287 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:13:47 +00:00
qhuang8 add9c350e7 Add UEFI 2.2 and UEFI 2.3 signature.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9286 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:12:38 +00:00
qhuang8 e189264e48 Remove the restrain on the Year field in EFI_TIME structure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9285 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:12:04 +00:00
qhuang8 41c333aa68 Clarify Attribute field in EFI_PARTITION_ENTRY
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9284 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:11:08 +00:00
qhuang8 66d550f999 1. Fix incorrect definition of UEFI_CONFIG_LANG and UEFI_CONFIG_LANG_2. They should be zero-terminated ascii string.
2. Rename EFI_IFR_EQ_ID_LIST to EFI_IFR_EQ_ID_VALUE_LIST
3. Add EFI_HII_PACKAGE_ANIMATIONS package type 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9283 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 14:09:05 +00:00
klu2 595c3b6cf7 Add Ehci driver for handle USB 2.0 device.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9282 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-21 09:27:40 +00:00
vanjeff 807a798b0c align some comments.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9281 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-18 02:25:29 +00:00
vanjeff 3a7afaf648 Add some comments.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9280 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-18 02:19:18 +00:00
vanjeff abbfadd791 Updated network related definitions.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9279 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-17 02:37:58 +00:00
htao cf15d83bf5 Fix ICC build failure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9278 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-17 02:31:23 +00:00
klu2 df6434f27a Rollback patch temporary until receive legal approve.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9277 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-17 02:16:30 +00:00
lgao4 db0b7ad5f4 Make ASSERT statement more meaningful.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9276 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-17 01:57:24 +00:00
jljusten 14b21de964 OVMF BDS: Make use of NvVarsFileLib to make NV variable less volatile.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9275 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 16:29:03 +00:00
jljusten e955462be2 OVMF BDS: Implement routines to make it easier to scan through all PCI devices.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9274 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 16:29:00 +00:00
jljusten 4b45b3cb20 Add DXE_DRIVER to list of supported module types for BaseFileHandleLib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9273 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 16:28:58 +00:00
jljusten 5094454579 Implement NvVarsFileLib to save and restore non-volatile variables using a file.
This library provides an interface where variables can be saved and restored
using a file in a file system accessible to the firmware.  It is expected
that a platform BDS library will use this library.  The platform BDS
implementation can decide which devices to connect and then to attempt to use
for saving and restoring NV variables.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9272 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 16:28:55 +00:00
htao af2cfce391 Add RHSA (remapping hardware static Affinity) structure definition according to VT-d spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9271 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 09:44:55 +00:00
htao 533403e696 add SR-IOV support in EDK II.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9270 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 09:33:14 +00:00
htao 7fc72ecb0d add SR-IOV support in EDK II.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9269 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-16 09:32:06 +00:00