[edk2] 答复: How to Configure the iSCSI target and the iSCSI Configuration in UEFI

2013-10-28 Thread JACK_C_ZHANG
Dear Jeff,

Thanks for your rapid reply.
I used the VMware 10 EFI for testing.
My test steps as below

1.   After building EDK2, copy shell.efi and IscsiDxe.efi to an USB HDD

2.   Boot VMware to EFI shell

3.   Load iscsiDxe.efi driver using command: load iscsiDxe.efi

4.   And I don’t know what or where to do the iscsi configuration next, 
even how to start to connect iscsi target.

After exit the shell, there is no iscsi menu in the Device Manager menu.
Could you help to give me some suggestion about this.
Really appreciate!!!


Regards,
Jack

发件人: Jeff Bobzin [mailto:bobzi...@gmail.com]
发送时间: 2013年10月26日 3:06
收件人: Jack C Zhang/WSH/Wistron; edk2-devel@lists.sourceforge.net
主题: RE: [edk2] How to Configure the iSCSI target and the iSCSI Configuration 
in UEFI

Dear Jack,

The configuration menu is published by the driver using Hii.
The platform user interface usually has an option called ‘Device Manager’ and 
the iSCSI driver configuration will be an option in the Device Manager.
Exit from the shell and look for this option in main menu.

But some older platform firmware versions will not update the Device Manager 
Driver List for a driver loaded from shell.
(These platforms only support menus from drivers included in the core firmware 
or from PCIe.)
So if you find Device Manager menu and no iSCSI is listed this could be a cause.

What is the platform you are testing on?

---Jeff Bobzin
Insyde Software

From: parmeshwr_pra...@dell.com [mailto:parmeshwr_pra...@dell.com]
Sent: Friday, October 25, 2013 5:31 AM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] How to Configure the iSCSI target and the iSCSI 
Configuration in UEFI

Hi Jack,

You can look more about iSCSI in UEFI spec 2.4, it is available in uefi website.
You can first boot through shell.efi the load iSCSI.

Regards
Param

From: jack_c_zh...@wistron.commailto:jack_c_zh...@wistron.com 
[mailto:jack_c_zh...@wistron.com]
Sent: Friday, October 25, 2013 1:23 PM
To: edk2-devel@lists.sourceforge.netmailto:edk2-devel@lists.sourceforge.net
Subject: [edk2] How to Configure the iSCSI target and the iSCSI Configuration 
in UEFI

Dear Experts,

I’m searching some information about iscsi boot in UEFI, and find your E-mail 
in the EDK-Dev mailing list from internet.
Could you help to provide some info about this?

I have downloaded IScsiDxe.efi and load it in the UEFI shell, but I don’t know 
what should do in the next?
How and where can I configure the iSCSI target and initiator name, or do the 
“ISCSI Configuration”?
In UEFI shell or using other tools?

Thanks a lot!


Regards,
Jack

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH v4 00/11] OvmfPkg: Introduce and use the new VIRTIO_DEVICE_PROTOCOL protocol

2013-10-28 Thread Laszlo Ersek
On 10/16/13 19:29, Olivier Martin wrote:
 Changelog from v3:
 --
 - Fixed 'write size' in VIRTIO_DEVICE_WRITE comment
 - Made all the functions of the protocol return EFI_STATUS
 - Removed 'VIRTIO_GET_GUEST_FEATURES   GetGuestFeatures'
 - Added a note about the fact VIRTIO_SET_QUEUE_ALIGN is a NOP
 - Fixed VIRTIO_GET_DEVICE_STATUS comment
 - Added a 'Revision' attribute to the protocol
 - Added a longer commit message to VirtioPciDeviceDxe patch
 - Clean comment in VirtioPciDeviceDxe
 - Empty the scope of VirtioPciUninit() to mirror VirtioPciInit()
 - Updated the comment of VIRTIO_SET_QUEUE_ADDRESS/VIRTIO_GET_QUEUE_ADDRESS
   with the required division by 4096
 - Added VIRTIO_DEVICE_PROTOCOL.SetPageSize() protocol member
 - Removed VirtioWriteDevice() and VirtioReadDevice() from VirtioLib.
 
 Limitation:
 ---
 - The ARM Foundation Model does not return a valid Vendor ID. As a
   consequence, the MMIO Virtio driver cannot return an error if the
   Vendor ID does not match the VirtIo Vendor ID.
 
 Not implemented:
 
 - [Laszlo] A VIRTIO_GET_QUEUE_SEL member / typedef could have been
   appropriate for PCI, but I agree that virtio-mmio allows write-only
   here.
 - [Laszlo] A VIRTIO_GET_QUEUE_NOTIFY member / typedef could have been
   appropriate for PCI, but I agree that virtio-mmio allows write-only
   here.
 - Did not make the change 'VIRTIO_CFG_WRITE (Device, 
 VIRTIO_MMIO_OFFSET_QUEUE_PFN, 0);'
   that fixes the VirtIo support in Linux
 - Did not implement VirtioPciGetDeviceName()
 
 Not changed:
 
 - Endianness: All the architectures supported by the UEFI spec
   are in 'little endian' mode.
 - Keep the PCI 64bit read/write break down into two 32bit accesses:
   The VirtiIo BlockIo driver makes (at least) one non 8-byte aligned
   access when trying to access the 'VIRTIO_BLK_CONFIG.Capacity' attribute.
   VIRTIO_BLK_CONFIG.Capacity is a 64bit field at the offset 0x0 of the
   device specific region. This region starts at the offset 20 (0x14) of
   the I/O region when there is no MSI-X capability.
 
 
 Olivier Martin (11):
   OvmfPkg/Virtio.h: Added the macros that define the Device Specific
 Configuration Offset
   OvmfPkg/Virtio.h: Added PCI/MMIO Virtio Headers Offsets
   OvmfPkg/Virtio.h: Added the Virtio Vendor and MMIO IDs
   OvmfPkg/VirtioDevice.h: Introduced VIRTIO_DEVICE_PROTOCOL protocol
   OvmfPkg/VirtioPciDeviceDxe: Implement VIRTIO_DEVICE_PROTOCOL for
 VirtIo Devices over PCI
   OvmfPkg/VirtioMmioDeviceLib: Implement VIRTIO_DEVICE_PROTOCOL for
 VirtIo Devices over MMIO
   OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL
   OvmfPkg/Virtio.h: Removed definition of VIRTIO_HDR
   ArmPlatformPkg/ArmVExpressPkg: Added the empty 'ArmFvpDxe' platform
 UEFI driver
   ArmPlatformPkg/ArmFvpDxe: Added Virtio Block support
   OvmfPkg/Virtio: Removed VirtioReadDevice() / VirtIoWriteDevice()
 functions
 
  .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c   |   73 +++
  .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf |   35 +
  .../ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc   |   10 +
  .../ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf   |6 +
  .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc   |   10 +
  .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf   |8 +-
  OvmfPkg/Include/IndustryStandard/Virtio.h  |   67 ++-
  OvmfPkg/Include/IndustryStandard/VirtioBlk.h   |   21 +-
  OvmfPkg/Include/IndustryStandard/VirtioNet.h   |   14 +-
  OvmfPkg/Include/IndustryStandard/VirtioScsi.h  |   27 +-
  OvmfPkg/Include/Library/VirtioLib.h|   77 +--
  OvmfPkg/Include/Library/VirtioMmioDeviceLib.h  |   65 ++
  OvmfPkg/Include/Protocol/VirtioDevice.h|  376 +++
  OvmfPkg/Library/VirtioLib/VirtioLib.c  |  158 +-
  .../Library/VirtioMmioDeviceLib/VirtioMmioDevice.c |  204 ++
  .../Library/VirtioMmioDeviceLib/VirtioMmioDevice.h |  147 +
  .../VirtioMmioDeviceFunctions.c|  304 +
  .../VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf|   43 ++
  OvmfPkg/OvmfPkg.dec|1 +
  OvmfPkg/OvmfPkgIa32.dsc|1 +
  OvmfPkg/OvmfPkgIa32.fdf|1 +
  OvmfPkg/OvmfPkgIa32X64.dsc |1 +
  OvmfPkg/OvmfPkgIa32X64.fdf |1 +
  OvmfPkg/OvmfPkgX64.dsc |1 +
  OvmfPkg/OvmfPkgX64.fdf |1 +
  OvmfPkg/VirtioBlkDxe/VirtioBlk.c   |  185 +++
  OvmfPkg/VirtioBlkDxe/VirtioBlk.h   |   32 +-
  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf |4 +-
  OvmfPkg/VirtioNetDxe/ComponentName.c   |6 +-
  OvmfPkg/VirtioNetDxe/DriverBinding.c   |  130 ++---
  OvmfPkg/VirtioNetDxe/Events.c  |2 +-
  OvmfPkg/VirtioNetDxe/SnpGetStatus.c|2 +-
  

Re: [edk2] [PATCH v4 01/11] OvmfPkg/Virtio.h: Added the macros that define the Device Specific Configuration Offset

2013-10-28 Thread Laszlo Ersek
On 10/16/13 19:29, Olivier Martin wrote:
 The Device Specific Configuration region is located at different locations
 for the VirtIo devices over PCI, PCI with MSI-X capability, MMIO.
 
 Contributed-under: TianoCore Contribution Agreement 1.0
 Signed-off-by: Olivier Martin olivier.mar...@arm.com
 ---
  OvmfPkg/Include/IndustryStandard/Virtio.h |7 +++
  1 files changed, 7 insertions(+), 0 deletions(-)
 
 diff --git a/OvmfPkg/Include/IndustryStandard/Virtio.h 
 b/OvmfPkg/Include/IndustryStandard/Virtio.h
 index 622a8de..e5abe1b 100644
 --- a/OvmfPkg/Include/IndustryStandard/Virtio.h
 +++ b/OvmfPkg/Include/IndustryStandard/Virtio.h
 @@ -35,6 +35,13 @@
  #define VIRTIO_SUBSYSTEM_MAC80211_WLAN  10
  
  //
 +// VirtIo Device Specific Configuration Offsets
 +//
 +#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_PCI 20
 +#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_PCI_WITH_MSI_X  24
 +#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_MMIO0x100
 +
 +//
  // Data in the communication area is defined as packed and accessed as
  // volatile.
  //
 

Reviewed-by: Laszlo Ersek ler...@redhat.com

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH v4 02/11] OvmfPkg/Virtio.h: Added PCI/MMIO Virtio Headers Offsets

2013-10-28 Thread Laszlo Ersek
On 10/16/13 19:29, Olivier Martin wrote:
 Offsets are different between the PCI and MMIO transport layer.
 
 Contributed-under: TianoCore Contribution Agreement 1.0
 Signed-off-by: Olivier Martin olivier.mar...@arm.com
 ---
  OvmfPkg/Include/IndustryStandard/Virtio.h |   35 
 +
  1 files changed, 35 insertions(+), 0 deletions(-)

Reviewed-by: Laszlo Ersek ler...@redhat.com

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH v4 03/11] OvmfPkg/Virtio.h: Added the Virtio Vendor and MMIO IDs

2013-10-28 Thread Laszlo Ersek
On 10/16/13 19:29, Olivier Martin wrote:
 Contributed-under: TianoCore Contribution Agreement 1.0
 Signed-off-by: Olivier Martin olivier.mar...@arm.com
 ---
  OvmfPkg/Include/IndustryStandard/Virtio.h |7 +++
  1 files changed, 7 insertions(+), 0 deletions(-)
 
 diff --git a/OvmfPkg/Include/IndustryStandard/Virtio.h 
 b/OvmfPkg/Include/IndustryStandard/Virtio.h
 index f1eb2ea..9b97e6d 100644
 --- a/OvmfPkg/Include/IndustryStandard/Virtio.h
 +++ b/OvmfPkg/Include/IndustryStandard/Virtio.h
 @@ -36,6 +36,13 @@
  #define VIRTIO_SUBSYSTEM_MAC80211_WLAN  10
  
  //
 +// Virtio IDs
 +//
 +#define VIRTIO_VENDOR_ID0x1AF4
 +#define VIRTIO_MMIO_MAGIC   0x74726976 // virt
 +
 +
 +//
  // VirtIo Device Specific Configuration Offsets
  //
  #define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_PCI 20
 

Reviewed-by: Laszlo Ersek ler...@redhat.com

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH] OvmfPkg/PlatformPei: emulated NV storage must be EfiRuntimeServicesData

2013-10-28 Thread Laszlo Ersek
SVN r14770 (OvmfPkg/PlatformPei: correctly align emulated NV storage)
made sure the emulated NV storage was allocated with correct alignment.

However, the AllocateRuntimePool() - AllocateAlignedPages() change
flipped the memory type from EfiRuntimeServicesData to
EfiBootServicesData. This causes variable services to access freed storage
at runtime. It crashes Windows 2008 R2 early at boot, for example.

Keep the alignment, but restore the memory type to EfiRuntimeServicesData,
by calling AllocateAlignedRuntimePages().

These helper functions are implemeted and documented in
MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek ler...@redhat.com
---
 OvmfPkg/PlatformPei/Platform.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index 1d9e93f..fb56e99 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -287,7 +287,7 @@ ReserveEmuVariableNvStore (
   //
   VariableStore =
 (EFI_PHYSICAL_ADDRESS)(UINTN)
-  AllocateAlignedPages (
+  AllocateAlignedRuntimePages (
 EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)),
 PcdGet32 (PcdFlashNvStorageFtwSpareSize)
 );
-- 
1.8.3.1


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH] OvmfPkg/PlatformPei: emulated NV storage must be EfiRuntimeServicesData

2013-10-28 Thread Wei Liu
On Mon, Oct 28, 2013 at 01:04:33PM +0100, Laszlo Ersek wrote:
 SVN r14770 (OvmfPkg/PlatformPei: correctly align emulated NV storage)
 made sure the emulated NV storage was allocated with correct alignment.
 
 However, the AllocateRuntimePool() - AllocateAlignedPages() change
 flipped the memory type from EfiRuntimeServicesData to
 EfiBootServicesData. This causes variable services to access freed storage
 at runtime. It crashes Windows 2008 R2 early at boot, for example.
 
 Keep the alignment, but restore the memory type to EfiRuntimeServicesData,
 by calling AllocateAlignedRuntimePages().
 
 These helper functions are implemeted and documented in
 MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c.
 
 Contributed-under: TianoCore Contribution Agreement 1.0
 Signed-off-by: Laszlo Ersek ler...@redhat.com

Thanks!

 ---
  OvmfPkg/PlatformPei/Platform.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
 index 1d9e93f..fb56e99 100644
 --- a/OvmfPkg/PlatformPei/Platform.c
 +++ b/OvmfPkg/PlatformPei/Platform.c
 @@ -287,7 +287,7 @@ ReserveEmuVariableNvStore (
//
VariableStore =
  (EFI_PHYSICAL_ADDRESS)(UINTN)
 -  AllocateAlignedPages (
 +  AllocateAlignedRuntimePages (
  EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)),
  PcdGet32 (PcdFlashNvStorageFtwSpareSize)
  );
 -- 
 1.8.3.1

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH] OvmfPkg/PlatformPei: emulated NV storage must be EfiRuntimeServicesData

2013-10-28 Thread Laszlo Ersek
SVN r14770 (OvmfPkg/PlatformPei: correctly align emulated NV storage)
made sure the emulated NV storage was allocated with correct alignment.

However, the AllocateRuntimePool() - AllocateAlignedPages() change
flipped the memory type from EfiRuntimeServicesData to
EfiBootServicesData. This causes variable services to access freed storage
at runtime. It crashes Windows 2008 R2 early at boot, for example.

Keep the alignment, but restore the memory type to EfiRuntimeServicesData,
by calling AllocateAlignedRuntimePages().

These helper functions are implemeted and documented in
MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek ler...@redhat.com
---
 OvmfPkg/PlatformPei/Platform.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index 1d9e93f..fb56e99 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -287,7 +287,7 @@ ReserveEmuVariableNvStore (
   //
   VariableStore =
 (EFI_PHYSICAL_ADDRESS)(UINTN)
-  AllocateAlignedPages (
+  AllocateAlignedRuntimePages (
 EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)),
 PcdGet32 (PcdFlashNvStorageFtwSpareSize)
 );
-- 
1.8.3.1


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] efibootmgr error message

2013-10-28 Thread Parmeshwr_Prasad


Hi All,



When I try to delete the entry efibootmgr -b  -B I get the below message.

requested operation failed: status=8002

efivars: set_variable() failed: status=8009 in dmesg



May I please know what is this error  status 8002 mean? Why I'm 
getting this error.



Your help will be highly appreciated.

Best Regards,
Parmeshwr Prasad
Tel : +91-9743262018
[cid:image001.png@01CED40B.A6F117F0]

inline: image001.png--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] efibootmgr error message

2013-10-28 Thread Laszlo Ersek
On 10/28/13 13:59, parmeshwr_pra...@dell.com wrote:

 
 When I try to delete the entry “efibootmgr -b  –B” I get the below 
 message.
 
 requested operation failed: status=8002
 
 efivars: set_variable() failed: status=8009 in dmesg
 
  
 
 May I please know what is this error  status 8002 mean? Why I’m 
 getting this error. 

It shouldn't be hard to follow efibootmgr with gdb until it runs into
the above error.

The first status means EFI_INVALID_PARAMETER, the second one is
EFI_OUT_OF_RESOURCES.

Laszlo

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] efibootmgr throws error

2013-10-28 Thread Andrew Fish

On Oct 28, 2013, at 4:54 AM, b_b_si...@dell.com wrote:

 Hi All,
  
 When I try to delete the entry “efibootmgr -b  –B” I get the below 
 message.
 requested operation failed: status=8002
 efivars: set_variable() failed: status=8009 in dmesg
  
 May I please know what is this error  status 8002 mean? Why I’m 
 getting this error. 

In UEFI an Error Code has the high bit set. You can see a list of UEFI 
error/status code in Appendix D of the UEFI 2.4 spec. 

The edk2 source code is here:
https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/Base.h
https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/Uefi/UefiBaseType.h

This is an 2 is EFI_INVALID_PARAMETER error, and 9 is EFI_OUT_OF_RESOURCES. 

Thanks,

Andrew Fish

  
 Your help will be highly appreciated.
  
 Thanks in Advance.
  
 Regards
 Balaji Singh
  
 From: Prasad, Parmeshwr 
 Sent: Monday, October 28, 2013 10:09 AM
 To: edk2-devel@lists.sourceforge.net
 Cc: Singh, B B; Andrew Fish (af...@apple.com)
 Subject: efibootmgr throws error
  
  
 Hi All,
  
 I am using “efibootmngr” linux utility to change boot order
  
 Change order “efibootmgr -o ,”
 Now delete entry “efibootmgr -b  -B.”
  
 When I delete the boot entry it gives error.
 Any thought why this is happening ?
 Best Regards,
 Parmeshwr Prasad
 Tel : +91-9743262018
 image001.png

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH v3 00/10] OvmfPkg: Introduce and use the new VIRTIO_DEVICE_PROTOCOL protocol

2013-10-28 Thread Laszlo Ersek
On 09/28/13 20:51, Mark Salter wrote:
 On Fri, 2013-09-27 at 02:31 +0200, Laszlo Ersek wrote:
 Hi Mark,

 just my 2 cents:

 On 09/26/13 21:33, Mark Salter wrote:
 I've been trying out this patch series on AArch64 foundation model.
 I have UEFI booting a linux kernel image in an EFI system partition.
 But the kernel itself doesn't see the virtio device. If I boot with
 an UEFI image without virtio support built in, the same kernel does
 see the virtio disk device.

 So, could this be a case of the UEFI virtio driver not releasing the
 virtio device?

 Interesting. We'd only know for sure if we debugged into the kernel
 (drivers/virtio/virtio_mmio.c more precisely).
 
 Well, the virtio_blk probe fails with error of -ENOENT. I tracked that
 down to vm_setup_vq() in virtio_mmio.c:
 
   /* Queue shouldn't already be set up. */
   if (readl(vm_dev-base + VIRTIO_MMIO_QUEUE_PFN)) {
   err = -ENOENT;
   goto error_available;
   }

This is a host (AArch64 foundation model) problem. The current (0.9.5)
virtio spec doesn't spell it out, but from the feedback I got [1] [2], a
full device reset should reset all QueuePFNs too.

(And qemu actually does this on the host side (see [2] again).)

[1]
http://thread.gmane.org/gmane.linux.kernel.virtualization/21022/focus=21027
[2]
https://lists.oasis-open.org/archives/virtio-comment/201310/msg1.html


On the guest side, the kernel does reset the virtio device up-front:

Checking the current upstream kernel, I believe that virtio-mmio is
initialized first, and virtio-blk comes on top of virtio-mmio.

#1:

virtio_mmio_probe() [drivers/virtio/virtio_mmio.c]
  register_virtio_device() [drivers/virtio/virtio.c]

/* We always start by resetting the device, in case a previous
 * driver messed it up.  This also tests that code path a little. */
dev-config-reset(dev)
  vm_reset() [drivers/virtio/virtio_mmio.c] -- via funcptr
writel(0, vm_dev-base + VIRTIO_MMIO_STATUS);

/* device_register() causes the bus infrastructure to look for a
 * matching driver. */
err = device_register(dev-dev);

#2:

virtblk_probe() [drivers/block/virtio_blk.c]
  init_vq()
virtio_find_single_vq() [include/linux/virtio_config.h]
  vdev-config-find_vqs()
vm_find_vqs() [drivers/virtio/virtio_mmio.c] -- via funcptr
  vm_setup_vq()
/* Queue shouldn't already be set up. */
readl(vm_dev-base + VIRTIO_MMIO_QUEUE_PFN)
err = -ENOENT

So, AFAICS, the guest kernel correctly resets the device first, still in
virtio-mmio (the comment is instructive), but then it finds a nonzero
QueuePFN field in virtio-blk.

This looks like an emulator/host problem to me.

Thanks,
Laszlo


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] How to append to DB?

2013-10-28 Thread Michael
Hi, I need to add an entry in the DB from uefi app. How can I do that 
with the UEFI application? I tried to do it in custom mode, but an error 
occurs security violation. Am I doing something wrong?
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH] OvmfPkg/PlatformPei: emulated NV storage must be EfiRuntimeServicesData

2013-10-28 Thread Jordan Justen
Reviewed-by: Jordan Justen jordan.l.jus...@intel.com

On Mon, Oct 28, 2013 at 5:04 AM, Laszlo Ersek ler...@redhat.com wrote:
 SVN r14770 (OvmfPkg/PlatformPei: correctly align emulated NV storage)
 made sure the emulated NV storage was allocated with correct alignment.

 However, the AllocateRuntimePool() - AllocateAlignedPages() change
 flipped the memory type from EfiRuntimeServicesData to
 EfiBootServicesData. This causes variable services to access freed storage
 at runtime. It crashes Windows 2008 R2 early at boot, for example.

 Keep the alignment, but restore the memory type to EfiRuntimeServicesData,
 by calling AllocateAlignedRuntimePages().

 These helper functions are implemeted and documented in
 MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c.

 Contributed-under: TianoCore Contribution Agreement 1.0
 Signed-off-by: Laszlo Ersek ler...@redhat.com
 ---
  OvmfPkg/PlatformPei/Platform.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
 index 1d9e93f..fb56e99 100644
 --- a/OvmfPkg/PlatformPei/Platform.c
 +++ b/OvmfPkg/PlatformPei/Platform.c
 @@ -287,7 +287,7 @@ ReserveEmuVariableNvStore (
//
VariableStore =
  (EFI_PHYSICAL_ADDRESS)(UINTN)
 -  AllocateAlignedPages (
 +  AllocateAlignedRuntimePages (
  EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)),
  PcdGet32 (PcdFlashNvStorageFtwSpareSize)
  );
 --
 1.8.3.1


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 edk2-devel mailing list
 edk2-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/edk2-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] How to append to DB?

2013-10-28 Thread Carsey, Jaben
What DB?  I am not sure what you want...

-Jaben

From: Michael [mailto:jollh...@riseup.net] 
Sent: Monday, October 28, 2013 10:59 AM
To: edk2-devel@lists.sourceforge.net
Subject: [edk2] How to append to DB?

Hi, I need to add an entry in the DB from uefi app. How can I do that with the 
UEFI application? I tried to do it in custom mode, but an error occurs security 
violation. Am I doing something wrong? 

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] How to append to DB?

2013-10-28 Thread Andrew Fish

On Oct 28, 2013, at 12:27 PM, Carsey, Jaben jaben.car...@intel.com wrote:

 What DB?

I assume he means the key database, as defined in Chapter 27 Secure Boot and 
Driver Signing. 

Thanks,

Andrew Fish

  I am not sure what you want...
 
 -Jaben
 
 From: Michael [mailto:jollh...@riseup.net] 
 Sent: Monday, October 28, 2013 10:59 AM
 To: edk2-devel@lists.sourceforge.net
 Subject: [edk2] How to append to DB?
 
 Hi, I need to add an entry in the DB from uefi app. How can I do that with 
 the UEFI application? I tried to do it in custom mode, but an error occurs 
 security violation. Am I doing something wrong? 
 
 --
 Android is increasing in popularity, but the open development platform that
 developers love is also attractive to malware creators. Download this white
 paper to learn more about secure code signing practices that can help keep
 Android apps secure.
 http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
 ___
 edk2-devel mailing list
 edk2-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/edk2-devel


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] How to append to DB?

2013-10-28 Thread Michael

On 28.10.2013 23:27, Carsey, Jaben wrote:

What DB?  I am not sure what you want...

-Jaben

From: Michael [mailto:jollh...@riseup.net]
Sent: Monday, October 28, 2013 10:59 AM
To: edk2-devel@lists.sourceforge.net
Subject: [edk2] How to append to DB?

Hi, I need to add an entry in the DB from uefi app. How can I do that with the 
UEFI application? I tried to do it in custom mode, but an error occurs security 
violation. Am I doing something wrong?

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel
DB -- signature database, contains the trusted keys used for 
authenticating any applications or drivers executed in the UEFI environment
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] How to append to DB?

2013-10-28 Thread Jarlstrom, Laurie
Hi Michael,
A good place to start is with the Security Package on Edk II.  
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=SecurityPkg
There are also a couple PDFs for HOW TO enable security and sign UEFI 
Applications.

thanks,
Laurie

laurie.jarlst...@intel.commailto:laurie.jarlst...@intel.com
EFI / Framework Technical
Marketing Engineering Team
(503) 712-9395
From: Michael [mailto:jollh...@riseup.net]
Sent: Monday, October 28, 2013 1:49 PM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] How to append to DB?

On 28.10.2013 23:27, Carsey, Jaben wrote:

What DB?  I am not sure what you want...



-Jaben



From: Michael [mailto:jollh...@riseup.net]

Sent: Monday, October 28, 2013 10:59 AM

To: edk2-devel@lists.sourceforge.netmailto:edk2-devel@lists.sourceforge.net

Subject: [edk2] How to append to DB?



Hi, I need to add an entry in the DB from uefi app. How can I do that with the 
UEFI application? I tried to do it in custom mode, but an error occurs security 
violation. Am I doing something wrong?



--

Android is increasing in popularity, but the open development platform that

developers love is also attractive to malware creators. Download this white

paper to learn more about secure code signing practices that can help keep

Android apps secure.

http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk

___

edk2-devel mailing list

edk2-devel@lists.sourceforge.netmailto:edk2-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/edk2-devel
DB -- signature database, contains the trusted keys used for authenticating any 
applications or drivers executed in the UEFI environment
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] How to append to DB?

2013-10-28 Thread Michael

On 29.10.2013 00:58, Jarlstrom, Laurie wrote:


Hi Michael,

A good place to start is with the Security Package on Edk II. 
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=SecurityPkg 



There are also a couple PDFs for HOW TO enable security and sign 
UEFI Applications.


thanks,

Laurie

laurie.jarlst...@intel.com mailto:laurie.jarlst...@intel.com

*/EFI / Framework Technical /*

*/Marketing Engineering Team/*

*/(503) 712-9395/*

*From:*Michael [mailto:jollh...@riseup.net]
*Sent:* Monday, October 28, 2013 1:49 PM
*To:* edk2-devel@lists.sourceforge.net
*Subject:* Re: [edk2] How to append to DB?

On 28.10.2013 23:27, Carsey, Jaben wrote:

What DB?  I am not sure what you want...

  


-Jaben

  


From: Michael [mailto:jollh...@riseup.net]

Sent: Monday, October 28, 2013 10:59 AM

To:edk2-devel@lists.sourceforge.net  
mailto:edk2-devel@lists.sourceforge.net

Subject: [edk2] How to append to DB?

  


Hi, I need to add an entry in the DB from uefi app. How can I do that with 
the UEFI application? I tried to do it in custom mode, but an error occurs 
security violation. Am I doing something wrong?

  



--

Android is increasing in popularity, but the open development platform that

developers love is also attractive to malware creators. Download this white

paper to learn more about secure code signing practices that can help keep

Android apps secure.

http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk

___

edk2-devel mailing list

edk2-devel@lists.sourceforge.net  mailto:edk2-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/edk2-devel

DB -- signature database, contains the trusted keys used for 
authenticating any applications or drivers executed in the UEFI 
environment




--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk


___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel
Thx, but me don't need signing uefi image, me need append my der cert 
(or siglist) to DB from uefi app.
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 8/8] OvmfPkg/build.sh: Support --enable-flash switch

2013-10-28 Thread Jordan Justen
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/build.sh |   40 +---
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
index f64ea91..e491eff 100755
--- a/OvmfPkg/build.sh
+++ b/OvmfPkg/build.sh
@@ -48,6 +48,7 @@ PLATFORMFILE=
 THREADNUMBER=1
 LAST_ARG=
 RUN_QEMU=no
+ENABLE_FLASH=no
 
 #
 # Pick a default tool type for a given OS
@@ -106,6 +107,9 @@ do
 shift
 break
 ;;
+  --enable-flash)
+ENABLE_FLASH=yes
+;;
   *)
 BUILD_OPTIONS=$BUILD_OPTIONS $arg
 ;;
@@ -165,17 +169,27 @@ if [ -z $PLATFORMFILE ]; then
   PLATFORMFILE=$WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc
 fi
 
-ADD_QEMU_HDA=yes
-for arg in $@
-do
-  case $arg in
--hd[a-d]|-fd[ab]|-cdrom)
-  ADD_QEMU_HDA=no
-  break
+if [[ $RUN_QEMU == yes ]]; then
+  qemu_version=$($QEMU_COMMAND -version 21 | tail -1 | awk '{print $4}')
+  case $qemu_version in
+1.[6-9].*|1.[1-9][0-9].*|2.*.*)
+  ENABLE_FLASH=yes
   ;;
   esac
+
+  ADD_QEMU_HDA=yes
+  for arg in $@
+  do
+case $arg in
+  -hd[a-d]|-fd[ab]|-cdrom)
+ADD_QEMU_HDA=no
+break
+;;
+  esac
 done
 
+fi
+
 #
 # Uncomment this block for parameter parsing debug
 #
@@ -208,16 +222,20 @@ fi
 
 
 if [[ $RUN_QEMU == yes ]]; then
+  qemu_version=$($QEMU_COMMAND -version 21 | tail -1 | awk '{print $4}')
   if [[ ! -d $QEMU_FIRMWARE_DIR ]]; then
 mkdir $QEMU_FIRMWARE_DIR
   fi
   ln -sf $FV_DIR/OVMF.fd $QEMU_FIRMWARE_DIR/bios.bin
-  if [[ $ADD_QEMU_HDA == yes ]]; then
-AUTO_QEMU_HDA=-hda fat:$BUILD_ROOT_ARCH
+  if [[ $ENABLE_FLASH == yes ]]; then
+QEMU_COMMAND=$QEMU_COMMAND -pflash $QEMU_FIRMWARE_DIR/bios.bin
   else
-AUTO_QEMU_HDA=
+QEMU_COMMAND=$QEMU_COMMAND -L $QEMU_FIRMWARE_DIR
+  fi
+  if [[ $ADD_QEMU_HDA == yes ]]; then
+QEMU_COMMAND=$QEMU_COMMAND -hda fat:$BUILD_ROOT_ARCH
   fi
-  QEMU_COMMAND=$QEMU_COMMAND -L $QEMU_FIRMWARE_DIR $AUTO_QEMU_HDA $*
+  QEMU_COMMAND=$QEMU_COMMAND $*
   echo Running: $QEMU_COMMAND
   $QEMU_COMMAND
   exit $?
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 0/8] OVMF support for QEMU's PC System Flash

2013-10-28 Thread Jordan Justen
https://github.com/jljusten/edk2.git ovmf-nvvars-v1

This series implements support for QEMU's emulated
system flash.

This allows for persistent UEFI non-volatile variables.

Previously we attemptedto emulate non-volatile
variables in a few ways, but each of them would fail
in particular situations.

To use:
 * QEMU version 1.1 or newer is required without KVM
 * KVM support requires Linux 3.7 and QEMU 1.6
 * Run QEMU with -pflash OVMF.fd instead of -L or -bios
   or use OvmfPkg/build.sh --enable-flash qemu ...

See also:
 * http://wiki.qemu.org/Features/PC_System_Flash

Jordan Justen (8):
  OvmfPkg: Increase DEBUG build size to 2MB by default
  OvmfPkg: Add flash PCD items
  OvmfPkg: Add NV Variable storage within FD
  OvmfPkg/AcpiPlatformDxe/Qemu: Allow high runtime memory regions
  OvmfPkg/EmuVariableFvbRuntimeDxe: Disable if flash variables are
supported
  OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe driver
  OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe to firmware image
  OvmfPkg/build.sh: Support --enable-flash switch

 OvmfPkg/AcpiPlatformDxe/Qemu.c |   37 +-
 OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c |6 +
 OvmfPkg/OvmfPkg.dec|   12 +-
 OvmfPkg/OvmfPkgIa32.dsc|1 +
 OvmfPkg/OvmfPkgIa32.fdf|  109 +-
 OvmfPkg/OvmfPkgIa32X64.dsc |1 +
 OvmfPkg/OvmfPkgIa32X64.fdf |  109 +-
 OvmfPkg/OvmfPkgX64.dsc |1 +
 OvmfPkg/OvmfPkgX64.fdf |  109 +-
 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbInfo.c   |  137 +++
 .../FvbServicesRuntimeDxe.inf  |   83 ++
 .../FwBlockService.c   | 1224 
 .../FwBlockService.h   |  184 +++
 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c |  262 +
 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h |   89 ++
 OvmfPkg/build.sh   |   40 +-
 16 files changed, 2331 insertions(+), 73 deletions(-)
 create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbInfo.c
 create mode 100644 
OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c
 create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h
 create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c
 create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h

-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 4/8] OvmfPkg/AcpiPlatformDxe/Qemu: Allow high runtime memory regions

2013-10-28 Thread Jordan Justen
Previously we would only search for MMIO regions that were also
above every EfiGcdMemoryTypeReserved and EfiGcdMemoryTypeSystemMemory
region.

Now we just search for the largest EfiGcdMemoryTypeMemoryMappedIo
region.

This will allow us to mark the flash memory as a runtime memory
region in order to allow runtime access of variables stored in
flash.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
Cc: Laszlo Ersek ler...@redhat.com
---
 OvmfPkg/AcpiPlatformDxe/Qemu.c |   37 -
 1 file changed, 12 insertions(+), 25 deletions(-)

diff --git a/OvmfPkg/AcpiPlatformDxe/Qemu.c b/OvmfPkg/AcpiPlatformDxe/Qemu.c
index 8a6ecf7..cab3219 100644
--- a/OvmfPkg/AcpiPlatformDxe/Qemu.c
+++ b/OvmfPkg/AcpiPlatformDxe/Qemu.c
@@ -1,7 +1,7 @@
 /** @file
   OVMF ACPI QEMU support
 
-  Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.BR
+  Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.BR
 
   Copyright (C) 2012, Red Hat, Inc.
 
@@ -232,16 +232,12 @@ PopulateFwData(
 
   Status = gDS-GetMemorySpaceMap (NumDesc, AllDesc);
   if (Status == EFI_SUCCESS) {
-UINT64 NonMmio32MaxExclTop;
-UINT64 Mmio32MinBase;
-UINT64 Mmio32MaxExclTop;
 UINTN CurDesc;
+CONST EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Mmio32Desc;
 
 Status = EFI_UNSUPPORTED;
 
-NonMmio32MaxExclTop = 0;
-Mmio32MinBase = BASE_4GB;
-Mmio32MaxExclTop = 0;
+Mmio32Desc = NULL;
 
 for (CurDesc = 0; CurDesc  NumDesc; ++CurDesc) {
   CONST EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Desc;
@@ -253,21 +249,16 @@ PopulateFwData(
   if (ExclTop = BASE_4GB) {
 switch (Desc-GcdMemoryType) {
   case EfiGcdMemoryTypeNonExistent:
-break;
-
   case EfiGcdMemoryTypeReserved:
   case EfiGcdMemoryTypeSystemMemory:
-if (NonMmio32MaxExclTop  ExclTop) {
-  NonMmio32MaxExclTop = ExclTop;
-}
 break;
 
   case EfiGcdMemoryTypeMemoryMappedIo:
-if (Mmio32MinBase  Desc-BaseAddress) {
-  Mmio32MinBase = Desc-BaseAddress;
-}
-if (Mmio32MaxExclTop  ExclTop) {
-  Mmio32MaxExclTop = ExclTop;
+if (Mmio32Desc == NULL ||
+Desc-Length  Mmio32Desc-Length ||
+(Desc-Length == Mmio32Desc-Length 
+ Desc-BaseAddress  Mmio32Desc-BaseAddress)) {
+  Mmio32Desc = Desc;
 }
 break;
 
@@ -277,14 +268,10 @@ PopulateFwData(
   }
 }
 
-if (Mmio32MinBase  NonMmio32MaxExclTop) {
-  Mmio32MinBase = NonMmio32MaxExclTop;
-}
-
-if (Mmio32MinBase  Mmio32MaxExclTop) {
-  FwData-PciWindow32.Base   = Mmio32MinBase;
-  FwData-PciWindow32.End= Mmio32MaxExclTop - 1;
-  FwData-PciWindow32.Length = Mmio32MaxExclTop - Mmio32MinBase;
+if (Mmio32Desc != NULL) {
+  FwData-PciWindow32.Base   = Mmio32Desc-BaseAddress;
+  FwData-PciWindow32.End= Mmio32Desc-BaseAddress + 
Mmio32Desc-Length - 1;
+  FwData-PciWindow32.Length = Mmio32Desc-Length;
 
   FwData-PciWindow64.Base   = 0;
   FwData-PciWindow64.End= 0;
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 2/8] OvmfPkg: Add flash PCD items

2013-10-28 Thread Jordan Justen
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/OvmfPkg.dec |   12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec
index d874f0c..01fe469 100644
--- a/OvmfPkg/OvmfPkg.dec
+++ b/OvmfPkg/OvmfPkg.dec
@@ -1,7 +1,7 @@
 ## @file
 #  EFI/Framework Open Virtual Machine Firmware (OVMF) platform
 #
-#  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.BR
+#  Copyright (c) 2006 - 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
@@ -68,6 +68,16 @@
   gUefiOvmfPkgTokenSpaceGuid.PcdVirtioScsiMaxTargetLimit|31|UINT16|6
   gUefiOvmfPkgTokenSpaceGuid.PcdVirtioScsiMaxLunLimit|7|UINT32|7
 
+[PcdsFixedAtBuild]
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase|0x0|UINT32|0x8
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize|0x0|UINT32|0x9
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize|0x0|UINT32|0xa
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize|0|UINT32|0xb
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase|0x0|UINT32|0xc
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase|0x0|UINT32|0xd
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase|0x0|UINT32|0xe
+  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress|0x0|UINT32|0xf
+
 [PcdsDynamic, PcdsDynamicEx]
   gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent|0|UINT64|2
 
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 5/8] OvmfPkg/EmuVariableFvbRuntimeDxe: Disable if flash variables are supported

2013-10-28 Thread Jordan Justen
If QEMU flash is supported, then the PcdFlashNvStorageVariableBase64
will be set by the flash FVB driver. If it is set to a non-zero value,
then we disable memory based variables.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c |6 ++
 1 file changed, 6 insertions(+)

diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c 
b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
index c7c3fcb..7a8beb3 100644
--- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
+++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
@@ -819,6 +819,12 @@ FvbInitialize (
 return EFI_INVALID_PARAMETER;
   }
 
+  if (PcdGet64 (PcdFlashNvStorageVariableBase64) != 0) {
+DEBUG ((EFI_D_INFO, Disabling EMU Variable FVB since 
+flash variables appear to be supported.\n));
+return EFI_ABORTED;
+  }
+
   //
   // By default we will initialize the FV contents.  But, if
   // PcdEmuVariableNvStoreReserved is non-zero, then we will
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 7/8] OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe to firmware image

2013-10-28 Thread Jordan Justen
This driver will support a flash FVB implementation if QEMU flash
is detected.

The driver is added to the apriori list to make sure it runs
before the EmuVariableFvbRuntimeDxe driver. If this driver detects
flash support, then it will disable the EmuVariableFvbRuntimeDxe
driver by setting PcdFlashNvStorageVariableBase64.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/OvmfPkgIa32.dsc|1 +
 OvmfPkg/OvmfPkgIa32.fdf|2 ++
 OvmfPkg/OvmfPkgIa32X64.dsc |1 +
 OvmfPkg/OvmfPkgIa32X64.fdf |2 ++
 OvmfPkg/OvmfPkgX64.dsc |1 +
 OvmfPkg/OvmfPkgX64.fdf |2 ++
 6 files changed, 9 insertions(+)

diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
index dd8270b..40ea397 100644
--- a/OvmfPkg/OvmfPkgIa32.dsc
+++ b/OvmfPkg/OvmfPkgIa32.dsc
@@ -410,6 +410,7 @@
   OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
   OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
   OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
 LibraryClasses
   PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf
diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index 03cdedc..4150a8d 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -240,6 +240,7 @@ READ_LOCK_STATUS   = TRUE
 APRIORI DXE {
   INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+  INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 }
 
 #
@@ -266,6 +267,7 @@ INF  
PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
 INF  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
 INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
 INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 INF  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
 INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
 
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
index 8c66550..106ba42 100644
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
@@ -417,6 +417,7 @@
   OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
   OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
   OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
 LibraryClasses
   PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index 407516c..490b3fc 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -240,6 +240,7 @@ READ_LOCK_STATUS   = TRUE
 APRIORI DXE {
   INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+  INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 }
 
 #
@@ -266,6 +267,7 @@ INF  
PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
 INF  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
 INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
 INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 INF  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
 INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
 
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
index 5ab3d63..06b3536 100644
--- a/OvmfPkg/OvmfPkgX64.dsc
+++ b/OvmfPkg/OvmfPkgX64.dsc
@@ -415,6 +415,7 @@
   OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
   OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
   OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
 LibraryClasses
   PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index aef64dd..e76d0bd 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -240,6 +240,7 @@ READ_LOCK_STATUS   = TRUE
 APRIORI DXE {
   INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+  INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 }
 
 #
@@ -266,6 +267,7 @@ INF  
PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
 INF  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
 INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
 INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
+INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
 INF  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
 INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
 
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper 

[edk2] [PATCH 1/8] OvmfPkg: Increase DEBUG build size to 2MB by default

2013-10-28 Thread Jordan Justen
The 1MB image with full debug and the shell included is too
large to implement flash based non-volatile variable.

After this change, building with -D FD_SIZE_1MB will
force the smaller flash size.

The default size for RELEASE build remains at 1MB, so using
-b RELEASE on the build command line will result in a
1MB flash size. For RELEASE builds -D FD_SIZE_2MB can be
used to produce a 2MB flash image.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/OvmfPkgIa32.fdf|   14 ++
 OvmfPkg/OvmfPkgIa32X64.fdf |   14 ++
 OvmfPkg/OvmfPkgX64.fdf |   14 ++
 3 files changed, 42 insertions(+)

diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index df4f227..40f0651 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -14,7 +14,21 @@
 ##
 
 

+
+#
+# Default flash size for DEBUG build is 2MB. For RELEASE it is 1MB.
+#
+# Defining FD_SIZE_1MB or FD_SIZE_2MB on the build command line can
+# override this.
+#
+[Defines]
+!if $(TARGET) == RELEASE
 !ifndef $(FD_SIZE_2MB)
+DEFINE FD_SIZE_1MB=
+!endif
+!endif
+
+!ifdef $(FD_SIZE_1MB)
 [FD.OVMF]
 BaseAddress   = 0xFFF0
 Size  = 0x0010
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index d93a7ff..f5fa4ed 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -14,7 +14,21 @@
 ##
 
 

+
+#
+# Default flash size for DEBUG build is 2MB. For RELEASE it is 1MB.
+#
+# Defining FD_SIZE_1MB or FD_SIZE_2MB on the build command line can
+# override this.
+#
+[Defines]
+!if $(TARGET) == RELEASE
 !ifndef $(FD_SIZE_2MB)
+DEFINE FD_SIZE_1MB=
+!endif
+!endif
+
+!ifdef $(FD_SIZE_1MB)
 [FD.OVMF]
 BaseAddress   = 0xFFF0
 Size  = 0x0010
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index deee977..329e989 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -14,7 +14,21 @@
 ##
 
 

+
+#
+# Default flash size for DEBUG build is 2MB. For RELEASE it is 1MB.
+#
+# Defining FD_SIZE_1MB or FD_SIZE_2MB on the build command line can
+# override this.
+#
+[Defines]
+!if $(TARGET) == RELEASE
 !ifndef $(FD_SIZE_2MB)
+DEFINE FD_SIZE_1MB=
+!endif
+!endif
+
+!ifdef $(FD_SIZE_1MB)
 [FD.OVMF]
 BaseAddress   = 0xFFF0
 Size  = 0x0010
-- 
1.7.10.4


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


[edk2] [PATCH 3/8] OvmfPkg: Add NV Variable storage within FD

2013-10-28 Thread Jordan Justen
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 OvmfPkg/OvmfPkgIa32.fdf|   93 ++--
 OvmfPkg/OvmfPkgIa32X64.fdf |   93 ++--
 OvmfPkg/OvmfPkgX64.fdf |   93 ++--
 3 files changed, 243 insertions(+), 36 deletions(-)

diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index 40f0651..03cdedc 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -30,26 +30,95 @@ DEFINE FD_SIZE_1MB=
 
 !ifdef $(FD_SIZE_1MB)
 [FD.OVMF]
-BaseAddress   = 0xFFF0
-Size  = 0x0010
+BaseAddress   = 0xFFF0|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
+Size  = 0x0010|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize
 ErasePolarity = 1
-BlockSize = 0x1000
+BlockSize = 0x1000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize
 NumBlocks = 0x100
+!else
+[FD.OVMF]
+BaseAddress   = 0xFFE0|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
+Size  = 0x0020|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize
+ErasePolarity = 1
+BlockSize = 0x1000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize
+NumBlocks = 0x200
+!endif
+
+0x|0xe000
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
+#NV_VARIABLE_STORE
+DATA = {
+  ## This is the EFI_FIRMWARE_VOLUME_HEADER
+  # ZeroVector []
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  # FileSystemGuid: gEfiSystemNvDataFvGuid =
+  #  { 0xFFF12B8D, 0x7696, 0x4C8B,
+  #{ 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
+  0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
+  0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
+  # FvLength: 0x2
+  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+  #Signature _FVH   #Attributes
+  0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00,
+  #HeaderLength #CheckSum #ExtHeaderOffset #Reserved #Revision
+  0x48, 0x00, 0x19, 0xF9, 0x00, 0x00, 0x00, 0x02,
+  #Blockmap[0]: 2 Blocks * 0x1 Bytes / Block
+  0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  #Blockmap[1]: End
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  ## This is the VARIABLE_STORE_HEADER
+!if $(SECURE_BOOT_ENABLE) == TRUE
+  #Signature: gEfiAuthenticatedVariableGuid =
+  #  { 0xaaf32c78, 0x947b, 0x439a,
+  #{ 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }}
+  0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43,
+  0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92,
+!else
+  #Signature: gEfiVariableGuid =
+  #  { 0xddcf3616, 0x3275, 0x4164,
+  #{ 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
+  0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,
+  0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,
+!endif
+  #Size: 0xe000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) 
- 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xdfb8
+  # This can speed up the Variable Dispatch a bit.
+  0xB8, 0xDF, 0x00, 0x00,
+  #FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32
+  0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+}
 
-0x|0x000EC000
+0xe000|0x1000
+#NV_EVENT_LOG
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize
+
+0xf000|0x1000
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
+#NV_FTW_WORKING
+DATA = {
+  # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER-Signature = 
gEdkiiWorkingBlockSignatureGuid =
+  #  { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65,  0x0, 0xfd, 0x9f, 0x1b, 
0x95 }}
+  0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49,
+  0xa0, 0xce, 0x65,  0x0, 0xfd, 0x9f, 0x1b, 0x95,
+  # Crc:UINT32#WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved
+  0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF,
+  # WriteQueueSize: UINT64
+  0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+}
+
+0x0001|0x0001
+#NV_FTW_SPARE
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
+
+!ifdef $(FD_SIZE_1MB)
+0x0002|0x000CC000
 FV = FVMAIN_COMPACT
 
 0x000EC000|0x14000
 FV = SECFV
-!else
-[FD.OVMF]
-BaseAddress   = 0xFFE0
-Size  = 0x0020
-ErasePolarity = 1
-BlockSize = 0x1000
-NumBlocks = 0x200
 
-0x|0x001CC000
+!else
+0x0002|0x001AC000
 FV = FVMAIN_COMPACT
 
 0x001CC000|0x34000
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index f5fa4ed..407516c 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -30,26 +30,95 @@ DEFINE FD_SIZE_1MB=
 
 !ifdef $(FD_SIZE_1MB)
 [FD.OVMF]
-BaseAddress   = 0xFFF0
-Size  = 0x0010
+BaseAddress   = 0xFFF0|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
+Size  

[edk2] UEFI SCT few queries

2013-10-28 Thread Prabhakar Kushwaha

Hi List,

I am new to UEFI and exploring about SCT.  I have very basic question 
regarding SCT.


1)  In order to use SCT in an organization, do we require any special 
license?
2)  Looks like SCT compliance testing is only internal to an 
organization. We don't require to publish its details outside of the 
organization?
3)  If anyone want to contribute to SCT test cases. Which forum/list 
he/she can be used?


Please guide me.

Regards,
Prabhakar
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] UEFI SCT few queries

2013-10-28 Thread Li, Ruth
Hi Prabhakar,

Recommend you bring your question to UTWG group. Email: 
u...@uefi.orgmailto:u...@uefi.org

Thanks,
Ruth
From: Prabhakar Kushwaha [mailto:prabha...@freescale.com]
Sent: Tuesday, October 29, 2013 12:17 PM
To: boot-architect...@lists.linaro.org; edk2-devel@lists.sourceforge.net; 
b45...@freescale.com
Subject: [edk2] UEFI SCT few queries

Hi List,

I am new to UEFI and exploring about SCT.  I have very basic question regarding 
SCT.

1)  In order to use SCT in an organization, do we require any special license?
2)  Looks like SCT compliance testing is only internal to an organization. We 
don't require to publish its details outside of the organization?
3)  If anyone want to contribute to SCT test cases. Which forum/list he/she can 
be used?

Please guide me.

Regards,
Prabhakar
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] [PATCH v4 00/11] OvmfPkg: Introduce and use the new VIRTIO_DEVICE_PROTOCOL protocol

2013-10-28 Thread Olivier Martin
Unfortunately, the caller (the VirtIo Block driver) does not know if the access 
is unaligned.
The VirtIo Block driver does not necessary know if the transport layer is PCI 
and has not got PCI-X capability (case when the access is unaligned).

One other solution would be to handle the 64bit unaligned access in the VirtIo 
PCI driver. Such as we are doing now by splitting the 64bit access into two 
32bit accesses; except when the access is aligned we would do a single 64bit 
access.


From: Jordan Justen [jljus...@gmail.com]
Sent: 23 October 2013 22:57
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [PATCH v4 00/11] OvmfPkg: Introduce and use the new 
VIRTIO_DEVICE_PROTOCOL protocol

On Wed, Oct 16, 2013 at 10:29 AM, Olivier Martin olivier.mar...@arm.com wrote:
 Not changed:
 
 - Endianness: All the architectures supported by the UEFI spec
   are in 'little endian' mode.
 - Keep the PCI 64bit read/write break down into two 32bit accesses:
   The VirtiIo BlockIo driver makes (at least) one non 8-byte aligned
   access when trying to access the 'VIRTIO_BLK_CONFIG.Capacity' attribute.
   VIRTIO_BLK_CONFIG.Capacity is a 64bit field at the offset 0x0 of the
   device specific region. This region starts at the offset 20 (0x14) of
   the I/O region when there is no MSI-X capability.

The caller making this I/O access has idea they are making an unaligned access?

If the caller knows that it is unaligned and they know that it is okay
(based on device specific knowledge) to split accesses apart, then the
caller should split the access.

-Jordan

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England  Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England  Wales, Company No:  2548782


--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel