]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/ArmVExpressDxe: Platform specific driver for ARM VExpress based platform
authorOlivier Martin <olivier.martin@arm.com>
Sat, 1 Mar 2014 11:05:44 +0000 (11:05 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 1 Mar 2014 11:05:44 +0000 (11:05 +0000)
This driver should be used when adding code specific to a platform based on
ARM VExpress based board.

ArmFvpDxe driver has been renamed into ArmVExpressDxe driver to support the hardware
based platforms and the model based platforms.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15279 6f19259b-4bc3-4df7-8a09-765794883524

22 files changed:
ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c [deleted file]
ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf [deleted file]
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c [new file with mode: 0644]
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf [new file with mode: 0644]
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c [new file with mode: 0644]
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf [new file with mode: 0644]

diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c
deleted file mode 100644 (file)
index 1885b69..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2013, ARM Ltd. All rights reserved.<BR>\r
-\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include <Library/UefiLib.h>\r
-#include <Library/VirtioMmioDeviceLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-\r
-#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE    0x1c130000\r
-\r
-#pragma pack(1)\r
-typedef struct {\r
-  VENDOR_DEVICE_PATH                  Vendor;\r
-  EFI_DEVICE_PATH_PROTOCOL            End;\r
-} VIRTIO_BLK_DEVICE_PATH;\r
-#pragma pack()\r
-\r
-VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath =\r
-{\r
-  {\r
-    {\r
-      HARDWARE_DEVICE_PATH,\r
-      HW_VENDOR_DP,\r
-      {\r
-        (UINT8)( sizeof(VENDOR_DEVICE_PATH) ),\r
-        (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8)\r
-      }\r
-    },\r
-    EFI_CALLER_ID_GUID,\r
-  },\r
-  {\r
-    END_DEVICE_PATH_TYPE,\r
-    END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
-    {\r
-      sizeof (EFI_DEVICE_PATH_PROTOCOL),\r
-      0\r
-    }\r
-  }\r
-};\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-ArmFvpInitialise (\r
-  IN EFI_HANDLE         ImageHandle,\r
-  IN EFI_SYSTEM_TABLE   *SystemTable\r
-  )\r
-{\r
-  EFI_STATUS              Status;\r
-\r
-  Status = gBS->InstallProtocolInterface (&ImageHandle,\r
-                 &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,\r
-                 &mVirtioBlockDevicePath);\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  // Declare the Virtio BlockIo device\r
-  Status = VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE, ImageHandle);\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "ArmFvpDxe: Failed to install Virtio block device\n"));\r
-  }\r
-\r
-  return Status;\r
-}\r
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf
deleted file mode 100644 (file)
index bc74758..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#/** @file\r
-#\r
-#  Copyright (c) 2013, ARM Ltd. All rights reserved.<BR>\r
-#\r
-#  This program and the accompanying materials\r
-#  are licensed and made available under the terms and conditions of the BSD License\r
-#  which accompanies this distribution.  The full text of the license may be found at\r
-#  http://opensource.org/licenses/bsd-license.php\r
-#\r
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#**/\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010006\r
-  BASE_NAME                      = ArmFvpDxe\r
-  FILE_GUID                      = fe61bb5f-1b67-4c24-b346-73db42e873e5\r
-  MODULE_TYPE                    = UEFI_DRIVER\r
-  VERSION_STRING                 = 1.0\r
-  ENTRY_POINT                    = ArmFvpInitialise\r
-\r
-[Sources.common]\r
-  ArmFvpDxe.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  ArmPlatformPkg/ArmPlatformPkg.dec\r
-  OvmfPkg/OvmfPkg.dec\r
-\r
-[LibraryClasses]\r
-  UefiDriverEntryPoint\r
-  UefiBootServicesTableLib\r
-  VirtioMmioDeviceLib\r
-  BaseMemoryLib\r
index 8cbc2f51c715241f4474afc994fb57f4ab1edfce..d87a45a21d19951c47f97b4743baadd402e61599 100644 (file)
   ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf\r
   ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
   ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf\r
\r
+\r
+  #\r
+  # Platform\r
+  #\r
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf\r
+\r
   #\r
   # Filesystems\r
   #\r
index bcabb84f664db61f1d57f2d94d1c6b92e5a6d00a..3d3d888614d24c6993d851c6144bfc643b33cf74 100644 (file)
@@ -99,6 +99,11 @@ READ_LOCK_STATUS   = TRUE
   INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf\r
   INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf\r
 \r
+  #\r
+  # Platform\r
+  #\r
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf\r
+\r
   #\r
   # Multimedia Card Interface\r
   #\r
index 0199067db2d300005d86e90f88181d8ab43d1928..048d0f32aca054b967befa63c7dbc9d97299553e 100644 (file)
   ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf\r
   ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf\r
 \r
+  #\r
+  # Platform\r
+  #\r
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf\r
+\r
   #\r
   # Filesystems\r
   #\r
index 1b316c7ab5bfa68cb0c36baf9f7223e50eac4384..53e5880f9d9db400189069585a7ee241a7337534 100644 (file)
@@ -172,6 +172,9 @@ READ_LOCK_STATUS   = TRUE
   INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf\r
 \r
   #\r
+  # Platform\r
+  #\r
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf\r
 \r
 !if $(EDK2_ARMVE_STANDALONE) != 1\r
   #\r
index 789fb58b900f118eb0fde3b64953963efd2ec9e5..dce5a389acb4abdea6e3d7c4d23035000540b7c1 100644 (file)
   #\r
   # Platform Driver\r
   #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf\r
   OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
 \r
   #\r
index b9b7c45f75db1aa018a0de5c8ce4644f63d7f778..97a7766483ce1820a9878219e02128a8903bf0b6 100644 (file)
@@ -183,7 +183,7 @@ READ_LOCK_STATUS   = TRUE
   #\r
   # Platform Driver\r
   #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf\r
   INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
 \r
   #\r
index 84374465650706b2473b06825cfadd6b8bcb1425..204ceb9741ffe9528205c901179ee2775b03278f 100644 (file)
   #\r
   EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
-\r
-  #\r
-  # Platform Driver\r
-  #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
+
+  #
+  # Platform Driver
+  #
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   \r
   #\r
   # FAT filesystem + GPT/MBR partitioning\r
index d7e8c38d86c51b1b041a09d329b9c28f40eb2c8c..3b56d0d548dc3cab91455e6aef00a90108601657 100644 (file)
@@ -182,12 +182,12 @@ READ_LOCK_STATUS   = TRUE
   INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
 \r
   #\r
-  # Platform  Driver\r
-  #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
-  #\r
+  # Platform  Driver
+  #
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+  #
   # UEFI application (Shell Embedded Boot Loader) \r
   #  \r
   INF ShellBinPkg/UefiShell/UefiShell.inf \r
index ef2baaafa4af13a92a3385f57ae4d2f3317442c2..8429c0208985ad931691b18eacf2676e2447d78a 100644 (file)
   #\r
   EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
-\r
-  #\r
-  # Platform Driver\r
-  #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
+
+  #
+  # Platform Driver
+  #
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   \r
   #\r
   # FAT filesystem + GPT/MBR partitioning\r
index 96684fa983ed883c6582f27c6ec807726064aec7..8f84f91da46e512c175c8e16065c8cb0bd0b9575 100644 (file)
@@ -182,12 +182,12 @@ READ_LOCK_STATUS   = TRUE
   INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
 \r
   #\r
-  # Platform  Driver\r
-  #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
-  #\r
+  # Platform  Driver
+  #
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+  #
   # UEFI application (Shell Embedded Boot Loader) \r
   #  \r
   INF ShellBinPkg/UefiShell/UefiShell.inf \r
index 924db8dc13f2e9f995c91b4ec8f9d292c0604ce9..edf87a007a19979a28181c5499b435e9b220f638 100644 (file)
   #\r
   EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
-\r
-  #\r
-  # Platform Driver\r
-  #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
+
+  #
+  # Platform Driver
+  #
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
   \r
   #\r
   # FAT filesystem + GPT/MBR partitioning\r
index 914e0da0fa73254fd951510a19e3dae61323aa91..67aa6af1fb5b9291d34f0159c01783da87ec9e01 100644 (file)
@@ -166,13 +166,13 @@ READ_LOCK_STATUS   = TRUE
   #\r
   INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
   INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
-\r
-  #\r
-  # Platform  Driver\r
-  #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
+
+  #
+  # Platform  Driver
+  #
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
   #\r
   # UEFI application (Shell Embedded Boot Loader) \r
   #  \r
index 02ac49ca6fbce78bdb66b099e777982b11b38e33..858bc58d2db30f092f30f6fb12b6e087f3460420 100644 (file)
   ArmPkg/Filesystem/SemihostFs/SemihostFs.inf\r
 \r
   #\r
-  # Platform Driver\r
-  #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
-  #\r
+  # Platform Driver
+  #
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+  #
   # FAT filesystem + GPT/MBR partitioning\r
   #\r
   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
index aa6d80d290993409d616247d04f53ee777ad6b2f..4e1c5a2aeed762ae376dc2b84de87348dbaad166 100644 (file)
@@ -155,12 +155,12 @@ READ_LOCK_STATUS   = TRUE
   INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
 \r
   #\r
-  # Platform Driver\r
-  #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
-  #\r
+  # Platform Driver
+  #
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+  #
   # UEFI application (Shell Embedded Boot Loader)\r
   #\r
   INF ShellBinPkg/UefiShell/UefiShell.inf\r
index 1b5b02c79e86ef1018792904cc95795d74f42baf..0ee4644a355aab6dc2ea3d91d759c56d58cacae1 100644 (file)
   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
  \r
   #\r
-  # Platform Driver\r
-  #\r
-  ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
-  #\r
+  # Platform Driver
+  #
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
+  #
   # FAT filesystem + GPT/MBR partitioning\r
   #\r
   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
index 8da9561a3401f194bdeda8c7a681505ac69a3ab1..83ceec4f638eec51c86b4081a67a7f124a964ef5 100644 (file)
@@ -163,13 +163,13 @@ READ_LOCK_STATUS   = TRUE
   #\r
   INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
   INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
-\r
-  #\r
-  # Platform Driver\r
-  #\r
-  INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf\r
-  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
-\r
+
+  #
+  # Platform Driver
+  #
+  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
+
   #\r
   # UEFI application (Shell Embedded Boot Loader)\r
   #\r
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c
new file mode 100644 (file)
index 0000000..99a7cf7
--- /dev/null
@@ -0,0 +1,75 @@
+/** @file\r
+\r
+  Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>\r
+\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#include <Library/UefiLib.h>\r
+#include <Library/VirtioMmioDeviceLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+\r
+#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE    0x1c130000\r
+\r
+#pragma pack(1)\r
+typedef struct {\r
+  VENDOR_DEVICE_PATH                  Vendor;\r
+  EFI_DEVICE_PATH_PROTOCOL            End;\r
+} VIRTIO_BLK_DEVICE_PATH;\r
+#pragma pack()\r
+\r
+VIRTIO_BLK_DEVICE_PATH mVirtioBlockDevicePath =\r
+{\r
+  {\r
+    {\r
+      HARDWARE_DEVICE_PATH,\r
+      HW_VENDOR_DP,\r
+      {\r
+        (UINT8)( sizeof(VENDOR_DEVICE_PATH) ),\r
+        (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    EFI_CALLER_ID_GUID,\r
+  },\r
+  {\r
+    END_DEVICE_PATH_TYPE,\r
+    END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
+    {\r
+      sizeof (EFI_DEVICE_PATH_PROTOCOL),\r
+      0\r
+    }\r
+  }\r
+};\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArmFvpInitialise (\r
+  IN EFI_HANDLE         ImageHandle,\r
+  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  )\r
+{\r
+  EFI_STATUS              Status;\r
+\r
+  Status = gBS->InstallProtocolInterface (&ImageHandle,\r
+                 &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,\r
+                 &mVirtioBlockDevicePath);\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  // Declare the Virtio BlockIo device\r
+  Status = VirtioMmioInstallDevice (ARM_FVP_BASE_VIRTIO_BLOCK_BASE, ImageHandle);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((EFI_D_ERROR, "ArmFvpDxe: Failed to install Virtio block device\n"));\r
+  }\r
+\r
+  return Status;\r
+}\r
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
new file mode 100644 (file)
index 0000000..6e7f0cc
--- /dev/null
@@ -0,0 +1,35 @@
+#/** @file\r
+#\r
+#  Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>\r
+#\r
+#  This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution.  The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+#**/\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010006\r
+  BASE_NAME                      = ArmFvpDxe\r
+  FILE_GUID                      = fe61bb5f-1b67-4c24-b346-73db42e873e5\r
+  MODULE_TYPE                    = UEFI_DRIVER\r
+  VERSION_STRING                 = 1.0\r
+  ENTRY_POINT                    = ArmFvpInitialise\r
+\r
+[Sources.common]\r
+  ArmFvpDxe.c\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  ArmPlatformPkg/ArmPlatformPkg.dec\r
+  OvmfPkg/OvmfPkg.dec\r
+\r
+[LibraryClasses]\r
+  UefiDriverEntryPoint\r
+  UefiBootServicesTableLib\r
+  VirtioMmioDeviceLib\r
+  BaseMemoryLib\r
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c
new file mode 100644 (file)
index 0000000..bd7ef88
--- /dev/null
@@ -0,0 +1,25 @@
+/** @file\r
+\r
+  Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>\r
+\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#include <Library/UefiLib.h>\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArmHwInitialise (\r
+  IN EFI_HANDLE         ImageHandle,\r
+  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  )\r
+{\r
+  return EFI_SUCCESS;\r
+}\r
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
new file mode 100644 (file)
index 0000000..21f513f
--- /dev/null
@@ -0,0 +1,31 @@
+#/** @file\r
+#\r
+#  Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>\r
+#\r
+#  This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution.  The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+#**/\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010006\r
+  BASE_NAME                      = ArmFvpDxe\r
+  FILE_GUID                      = fe61bb5f-1b67-4c24-b346-73db42e873e5\r
+  MODULE_TYPE                    = UEFI_DRIVER\r
+  VERSION_STRING                 = 1.0\r
+  ENTRY_POINT                    = ArmHwInitialise\r
+\r
+[Sources.common]\r
+  ArmHwDxe.c\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  ArmPlatformPkg/ArmPlatformPkg.dec\r
+\r
+[LibraryClasses]\r
+  UefiDriverEntryPoint\r