3 Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #include <Library/UefiLib.h>
16 #include <Library/VirtioMmioDeviceLib.h>
17 #include <Library/DebugLib.h>
18 #include <Library/UefiBootServicesTableLib.h>
20 #define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000
24 VENDOR_DEVICE_PATH Vendor
;
25 EFI_DEVICE_PATH_PROTOCOL End
;
26 } VIRTIO_BLK_DEVICE_PATH
;
29 VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath
=
36 (UINT8
)( sizeof(VENDOR_DEVICE_PATH
) ),
37 (UINT8
)((sizeof(VENDOR_DEVICE_PATH
)) >> 8)
44 END_ENTIRE_DEVICE_PATH_SUBTYPE
,
46 sizeof (EFI_DEVICE_PATH_PROTOCOL
),
55 IN EFI_HANDLE ImageHandle
,
56 IN EFI_SYSTEM_TABLE
*SystemTable
61 Status
= gBS
->InstallProtocolInterface (&ImageHandle
,
62 &gEfiDevicePathProtocolGuid
, EFI_NATIVE_INTERFACE
,
63 &mVirtioBlockDevicePath
);
64 if (EFI_ERROR (Status
)) {
68 // Declare the Virtio BlockIo device
69 Status
= VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE
, ImageHandle
);
70 if (EFI_ERROR (Status
)) {
71 DEBUG ((EFI_D_ERROR
, "ArmFvpDxe: Failed to install Virtio block device\n"));