From a4ab7df48fbb4d953b7ddc6d27b5bf9a0502fa64 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Sat, 1 Mar 2014 11:05:44 +0000 Subject: ArmPlatformPkg/ArmVExpressDxe: Platform specific driver for ARM VExpress based platform 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 git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15279 6f19259b-4bc3-4df7-8a09-765794883524 --- .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c | 75 ---------------------- .../ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf | 35 ---------- .../ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf | 5 ++ .../ArmVExpressPkg/ArmVExpress-CTA9x4.dsc | 5 ++ .../ArmVExpressPkg/ArmVExpress-CTA9x4.fdf | 3 + .../ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc | 2 +- .../ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf | 2 +- .../ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf | 14 ++-- .../ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc | 12 ++-- .../ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc | 12 ++-- .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf | 14 ++-- .../ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c | 75 ++++++++++++++++++++++ .../ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf | 35 ++++++++++ .../ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c | 25 ++++++++ .../ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf | 31 +++++++++ 22 files changed, 249 insertions(+), 175 deletions(-) delete mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c delete mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf create mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c create mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf create mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c create mode 100644 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf (limited to 'ArmPlatformPkg') diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c deleted file mode 100644 index 1885b6993d..0000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.c +++ /dev/null @@ -1,75 +0,0 @@ -/** @file - - Copyright (c) 2013, ARM Ltd. All rights reserved.
- - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include -#include - -#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000 - -#pragma pack(1) -typedef struct { - VENDOR_DEVICE_PATH Vendor; - EFI_DEVICE_PATH_PROTOCOL End; -} VIRTIO_BLK_DEVICE_PATH; -#pragma pack() - -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 -ArmFvpInitialise ( - IN EFI_HANDLE ImageHandle, - 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 Status; -} diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf deleted file mode 100644 index bc7475878b..0000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf +++ /dev/null @@ -1,35 +0,0 @@ -#/** @file -# -# Copyright (c) 2013, ARM Ltd. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#**/ - -[Defines] - INF_VERSION = 0x00010006 - BASE_NAME = ArmFvpDxe - FILE_GUID = fe61bb5f-1b67-4c24-b346-73db42e873e5 - MODULE_TYPE = UEFI_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = ArmFvpInitialise - -[Sources.common] - ArmFvpDxe.c - -[Packages] - MdePkg/MdePkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - OvmfPkg/OvmfPkg.dec - -[LibraryClasses] - UefiDriverEntryPoint - UefiBootServicesTableLib - VirtioMmioDeviceLib - BaseMemoryLib diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc index 8cbc2f51c7..d87a45a21d 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc @@ -248,7 +248,12 @@ ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf ArmPkg/Drivers/TimerDxe/TimerDxe.inf ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf - + + # + # Platform + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf + # # Filesystems # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf index bcabb84f66..3d3d888614 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf @@ -99,6 +99,11 @@ READ_LOCK_STATUS = TRUE INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf + # + # Platform + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf + # # Multimedia Card Interface # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc index 0199067db2..048d0f32ac 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc @@ -276,6 +276,11 @@ ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf + # + # Platform + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf + # # Filesystems # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf index 1b316c7ab5..53e5880f9d 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf @@ -172,6 +172,9 @@ READ_LOCK_STATUS = TRUE INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf # + # Platform + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf !if $(EDK2_ARMVE_STANDALONE) != 1 # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc index 789fb58b90..dce5a389ac 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc @@ -284,7 +284,7 @@ # # Platform Driver # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf OvmfPkg/VirtioBlkDxe/VirtioBlk.inf # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf index b9b7c45f75..97a7766483 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf @@ -183,7 +183,7 @@ READ_LOCK_STATUS = TRUE # # Platform Driver # - INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc index 8437446565..204ceb9741 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc @@ -267,12 +267,12 @@ # EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf - - # - # Platform Driver - # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + + # + # Platform Driver + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf # # FAT filesystem + GPT/MBR partitioning diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf index d7e8c38d86..3b56d0d548 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf @@ -182,12 +182,12 @@ READ_LOCK_STATUS = TRUE INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf # - # Platform Driver - # - INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - - # + # Platform Driver + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/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-A15_MPCore.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc index ef2baaafa4..8429c02089 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc @@ -269,12 +269,12 @@ # EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf - - # - # Platform Driver - # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + + # + # Platform Driver + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf # # FAT filesystem + GPT/MBR partitioning diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf index 96684fa983..8f84f91da4 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf @@ -182,12 +182,12 @@ READ_LOCK_STATUS = TRUE INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf # - # Platform Driver - # - INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - - # + # Platform Driver + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/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-A9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc index 924db8dc13..edf87a007a 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc @@ -269,12 +269,12 @@ # EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf - - # - # Platform Driver - # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + + # + # Platform Driver + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf # # FAT filesystem + GPT/MBR partitioning diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf index 914e0da0fa..67aa6af1fb 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf @@ -166,13 +166,13 @@ READ_LOCK_STATUS = TRUE # INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf - - # - # Platform Driver - # - INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - + + # + # Platform Driver + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + # # UEFI application (Shell Embedded Boot Loader) # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc index 02ac49ca6f..858bc58d2d 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc @@ -225,12 +225,12 @@ ArmPkg/Filesystem/SemihostFs/SemihostFs.inf # - # Platform Driver - # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - - # + # Platform Driver + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/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 aa6d80d290..4e1c5a2aee 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf @@ -155,12 +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 - - # + # Platform Driver + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/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 1b5b02c79e..0ee4644a35 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc @@ -259,12 +259,12 @@ ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf # - # Platform Driver - # - ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - - # + # Platform Driver + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/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.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf index 8da9561a34..83ceec4f63 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf @@ -163,13 +163,13 @@ READ_LOCK_STATUS = TRUE # INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf - - # - # Platform Driver - # - INF ArmPlatformPkg/ArmVExpressPkg/ArmFvpDxe/ArmFvpDxe.inf - INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf - + + # + # Platform Driver + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + # # UEFI application (Shell Embedded Boot Loader) # diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c new file mode 100644 index 0000000000..99a7cf7643 --- /dev/null +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c @@ -0,0 +1,75 @@ +/** @file + + Copyright (c) 2013-2014, ARM Ltd. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include +#include +#include +#include + +#define ARM_FVP_BASE_VIRTIO_BLOCK_BASE 0x1c130000 + +#pragma pack(1) +typedef struct { + VENDOR_DEVICE_PATH Vendor; + EFI_DEVICE_PATH_PROTOCOL End; +} VIRTIO_BLK_DEVICE_PATH; +#pragma pack() + +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 +ArmFvpInitialise ( + IN EFI_HANDLE ImageHandle, + 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 Status; +} diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf new file mode 100644 index 0000000000..6e7f0ccec4 --- /dev/null +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf @@ -0,0 +1,35 @@ +#/** @file +# +# Copyright (c) 2013-2014, ARM Ltd. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#**/ + +[Defines] + INF_VERSION = 0x00010006 + BASE_NAME = ArmFvpDxe + FILE_GUID = fe61bb5f-1b67-4c24-b346-73db42e873e5 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = ArmFvpInitialise + +[Sources.common] + ArmFvpDxe.c + +[Packages] + MdePkg/MdePkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + OvmfPkg/OvmfPkg.dec + +[LibraryClasses] + UefiDriverEntryPoint + UefiBootServicesTableLib + VirtioMmioDeviceLib + BaseMemoryLib diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c new file mode 100644 index 0000000000..bd7ef884de --- /dev/null +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c @@ -0,0 +1,25 @@ +/** @file + + Copyright (c) 2013-2014, ARM Ltd. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include + +EFI_STATUS +EFIAPI +ArmHwInitialise ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + return EFI_SUCCESS; +} diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf new file mode 100644 index 0000000000..21f513f6a5 --- /dev/null +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf @@ -0,0 +1,31 @@ +#/** @file +# +# Copyright (c) 2013-2014, ARM Ltd. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#**/ + +[Defines] + INF_VERSION = 0x00010006 + BASE_NAME = ArmFvpDxe + FILE_GUID = fe61bb5f-1b67-4c24-b346-73db42e873e5 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = ArmHwInitialise + +[Sources.common] + ArmHwDxe.c + +[Packages] + MdePkg/MdePkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + +[LibraryClasses] + UefiDriverEntryPoint -- cgit v1.2.3