summaryrefslogtreecommitdiff
path: root/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2013-11-12 18:34:52 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2013-11-12 18:34:52 +0000
commita4ce9ffd470dbbab07ad1a9caeab5049b5a4bb6a (patch)
tree355648c63c335393db9e84dffbd0e8da5998f413 /OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h
parent4313b26de098b959668e1c061f1242063d20e81e (diff)
downloadedk2-platforms-a4ce9ffd470dbbab07ad1a9caeab5049b5a4bb6a.tar.xz
OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe driver
If QEMU flash is detected, this module will install FirmwareVolumeBlock support for the QEMU flash device. It will also set PCDs with the results that: 1. OvmfPkg/EmuVariableFvbRuntimeDxe will be disabled 2. MdeModulePkg variable services will read/write flash directly Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Acked-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14839 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h')
-rw-r--r--OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h
new file mode 100644
index 0000000000..f77e880783
--- /dev/null
+++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h
@@ -0,0 +1,89 @@
+/** @file
+ OVMF support for QEMU system firmware flash device
+
+ Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef __QEMU_FLASH_H__
+#define __QEMU_FLASH_H__
+
+#include <Protocol/FirmwareVolumeBlock.h>
+
+/**
+ Read from QEMU Flash
+
+ @param[in] Lba The starting logical block index to read from.
+ @param[in] Offset Offset into the block at which to begin reading.
+ @param[in] NumBytes On input, indicates the requested read size. On
+ output, indicates the actual number of bytes read
+ @param[in] Buffer Pointer to the buffer to read into.
+
+**/
+EFI_STATUS
+QemuFlashRead (
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN *NumBytes,
+ IN UINT8 *Buffer
+ );
+
+
+/**
+ Write to QEMU Flash
+
+ @param[in] Lba The starting logical block index to write to.
+ @param[in] Offset Offset into the block at which to begin writing.
+ @param[in] NumBytes On input, indicates the requested write size. On
+ output, indicates the actual number of bytes written
+ @param[in] Buffer Pointer to the data to write.
+
+**/
+EFI_STATUS
+QemuFlashWrite (
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN *NumBytes,
+ IN UINT8 *Buffer
+ );
+
+
+/**
+ Erase a QEMU Flash block
+
+ @param Lba The logical block index to erase.
+
+**/
+EFI_STATUS
+QemuFlashEraseBlock (
+ IN EFI_LBA Lba
+ );
+
+
+/**
+ Initializes QEMU flash memory support
+
+ @retval EFI_WRITE_PROTECTED The QEMU flash device is not present.
+ @retval EFI_SUCCESS The QEMU flash device is supported.
+
+**/
+EFI_STATUS
+QemuFlashInitialize (
+ VOID
+ );
+
+
+VOID
+QemuFlashConvertPointers (
+ VOID
+ );
+
+#endif
+