Il 17/09/2013 18:54, Olivier Martin ha scritto: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Olivier Martin <olivier.mar...@arm.com> > --- > .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c | 49 > +++++++++++++++++++- > .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf | 3 + > .../ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc | 10 ++++ > .../ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf | 6 ++ > .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc | 5 ++ > .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf | 1 + > 6 files changed, 73 insertions(+), 1 deletions(-) > > diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c > b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c > index 5242989..0cf5b7b 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c > @@ -13,6 +13,39 @@ > **/ > > #include <Library/UefiLib.h> > +#include <Library/VirtioMmioDeviceLib.h> > +#include <Library/DebugLib.h> > +#include <Library/UefiBootServicesTableLib.h> > + > +#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000 > + > +typedef struct { > + VENDOR_DEVICE_PATH Vendor; > + EFI_DEVICE_PATH_PROTOCOL End; > +} VIRTIO_BLK_DEVICE_PATH; > + > +VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath = > +{ > + { > + { > + HARDWARE_DEVICE_PATH, > + HW_VENDOR_DP, > + { > + (UINT8)( sizeof(VENDOR_DEVICE_PATH) ), > + (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8) > + } > + }, > + EFI_CALLER_ID_GUID, > + }, > + { > + END_DEVICE_PATH_TYPE, > + END_ENTIRE_DEVICE_PATH_SUBTYPE, > + { > + sizeof (EFI_DEVICE_PATH_PROTOCOL), > + 0 > + } > + } > +}; > > EFI_STATUS > EFIAPI > @@ -21,6 +54,20 @@ ArmFvpInitialise ( > IN EFI_SYSTEM_TABLE *SystemTable > ) > { > + EFI_STATUS Status; > + > + Status = gBS->InstallProtocolInterface (&ImageHandle, > + &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE, > + &mVirtioBlockDevicePath); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + > + // Declare the Virtio BlockIo device > + Status = VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE, > ImageHandle); > + if (EFI_ERROR (Status)) { > + DEBUG ((EFI_D_ERROR, "ArmFvpDxe: Failed to install Virtio block > device\n")); > + } > > - return EFI_SUCCESS; > + return Status; > } > diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > index 280b670..baaa19c 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > @@ -26,10 +26,13 @@ > [Packages] > MdePkg/MdePkg.dec > ArmPlatformPkg/ArmPlatformPkg.dec > + OvmfPkg/OvmfPkg.dec > > [LibraryClasses] > UefiDriverEntryPoint > UefiBootServicesTableLib > + VirtioMmioDeviceLib > + BaseMemoryLib > > [Depex] > TRUE > diff --git > a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc > b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc > index 4ba827b..c67e695 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc > @@ -34,6 +34,10 @@ > ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf > > ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressFoundationLib.inf > > + # Virtio Support > + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > + > VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf > + > > ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf > > TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf > @@ -225,6 +229,12 @@ > ArmPkg/Filesystem/SemihostFs/SemihostFs.inf > > # > + # Platform Driver > + # > + ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > + > + # > # FAT filesystem + GPT/MBR partitioning > # > MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > diff --git > a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf > b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf > index a358b06..8bb0aa6 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf > @@ -155,6 +155,12 @@ READ_LOCK_STATUS = TRUE > INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > > # > + # Platform Driver > + # > + INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > + > + # > # UEFI application (Shell Embedded Boot Loader) > # > INF ShellBinPkg/UefiShell/UefiShell.inf > diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc > b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc > index f01f42a..1426d8f 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc > @@ -40,6 +40,10 @@ > > TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf > > + # VirtIo Support > + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > + > VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf > + > [LibraryClasses.common.SEC] > ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf > > ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf > @@ -258,6 +262,7 @@ > # Platform Driver > # > ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > > # > # FAT filesystem + GPT/MBR partitioning > diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf > b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf > index 4210e6c..577b80b 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf > @@ -168,6 +168,7 @@ READ_LOCK_STATUS = TRUE > # Platform Driver > # > INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf > + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > > # > # UEFI application (Shell Embedded Boot Loader) >
Why no virtio-scsi? Paolo ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel