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

Reply via email to