[edk2] 答复: How to Configure the iSCSI target and the iSCSI Configuration in UEFI
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
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
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
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
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
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
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
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
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
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
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
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?
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
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?
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?
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?
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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