diff options
author | Abner Chang <abner.chang@hpe.com> | 2021-10-11 21:39:13 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-10-14 06:25:52 +0000 |
commit | e0c23cba5eaeb6c934a10ecdabcb235ef5d63799 (patch) | |
tree | f9ac286c1a35b5b3c4658b6015d83cb598b74dfe /ArmVirtPkg | |
parent | b21c6794de7903f4ead34d8a7ed57f675380676d (diff) | |
download | edk2-e0c23cba5eaeb6c934a10ecdabcb235ef5d63799.tar.gz |
ArmVirtPkg/VirtioFdtDxe: Relocate VirtioFdtDxe to OvmfPkg/Fdt
Relocate VirtioFdtDxe to OvmfPkg/Fdt, this driver is leverage by
both ARM and RISC-V archs.
Signed-off-by: Abner Chang <abner.chang@hpe.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Daniel Schaefer <daniel.schaefer@hpe.com>
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <jiewen.yao@intel.com>
Diffstat (limited to 'ArmVirtPkg')
-rw-r--r-- | ArmVirtPkg/ArmVirtCloudHv.dsc | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtCloudHv.fdf | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtKvmTool.dsc | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtKvmTool.fdf | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemu.dsc | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 2 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemuKernel.dsc | 2 | ||||
-rw-r--r-- | ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c | 118 | ||||
-rw-r--r-- | ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf | 46 |
9 files changed, 7 insertions, 171 deletions
diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc b/ArmVirtPkg/ArmVirtCloudHv.dsc index e071623476..7559386a1d 100644 --- a/ArmVirtPkg/ArmVirtCloudHv.dsc +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc @@ -293,7 +293,7 @@ #
# Platform Driver
#
- ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
diff --git a/ArmVirtPkg/ArmVirtCloudHv.fdf b/ArmVirtPkg/ArmVirtCloudHv.fdf index 7ecf5ca88d..81c539590a 100644 --- a/ArmVirtPkg/ArmVirtCloudHv.fdf +++ b/ArmVirtPkg/ArmVirtCloudHv.fdf @@ -105,7 +105,7 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
- INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc index 0c5da4427e..9d23072d8f 100644 --- a/ArmVirtPkg/ArmVirtKvmTool.dsc +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc @@ -291,7 +291,7 @@ # Platform Driver
#
ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf
- ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
diff --git a/ArmVirtPkg/ArmVirtKvmTool.fdf b/ArmVirtPkg/ArmVirtKvmTool.fdf index 0535d36b7d..14a5fce43a 100644 --- a/ArmVirtPkg/ArmVirtKvmTool.fdf +++ b/ArmVirtPkg/ArmVirtKvmTool.fdf @@ -119,7 +119,7 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
- INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf
INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index 209c294fcd..891e065311 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -405,7 +405,7 @@ #
# Platform Driver
#
- ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc index 279b905edd..f6a538df72 100644 --- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc +++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc @@ -40,7 +40,7 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
- INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc index 10c01a7f34..a8bb83b288 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -340,7 +340,7 @@ #
# Platform Driver
#
- ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+ OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
diff --git a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c b/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c deleted file mode 100644 index 9625693b15..0000000000 --- a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c +++ /dev/null @@ -1,118 +0,0 @@ -/** @file
-* Virtio FDT client protocol driver for virtio,mmio DT node
-*
-* Copyright (c) 2014 - 2016, Linaro Ltd. All rights reserved.<BR>
-*
-* SPDX-License-Identifier: BSD-2-Clause-Patent
-*
-**/
-
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/DebugLib.h>
-#include <Library/DevicePathLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/VirtioMmioDeviceLib.h>
-
-#include <Guid/VirtioMmioTransport.h>
-
-#include <Protocol/FdtClient.h>
-
-#pragma pack (1)
-typedef struct {
- VENDOR_DEVICE_PATH Vendor;
- UINT64 PhysBase;
- EFI_DEVICE_PATH_PROTOCOL End;
-} VIRTIO_TRANSPORT_DEVICE_PATH;
-#pragma pack ()
-
-EFI_STATUS
-EFIAPI
-InitializeVirtioFdtDxe (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status, FindNodeStatus;
- FDT_CLIENT_PROTOCOL *FdtClient;
- INT32 Node;
- CONST UINT64 *Reg;
- UINT32 RegSize;
- VIRTIO_TRANSPORT_DEVICE_PATH *DevicePath;
- EFI_HANDLE Handle;
- UINT64 RegBase;
-
- Status = gBS->LocateProtocol (&gFdtClientProtocolGuid, NULL,
- (VOID **)&FdtClient);
- ASSERT_EFI_ERROR (Status);
-
- for (FindNodeStatus = FdtClient->FindCompatibleNode (FdtClient,
- "virtio,mmio", &Node);
- !EFI_ERROR (FindNodeStatus);
- FindNodeStatus = FdtClient->FindNextCompatibleNode (FdtClient,
- "virtio,mmio", Node, &Node)) {
-
- Status = FdtClient->GetNodeProperty (FdtClient, Node, "reg",
- (CONST VOID **)&Reg, &RegSize);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "%a: GetNodeProperty () failed (Status == %r)\n",
- __FUNCTION__, Status));
- continue;
- }
-
- ASSERT (RegSize == 16);
-
- //
- // Create a unique device path for this transport on the fly
- //
- RegBase = SwapBytes64 (*Reg);
- DevicePath = (VIRTIO_TRANSPORT_DEVICE_PATH *)CreateDeviceNode (
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- sizeof (VIRTIO_TRANSPORT_DEVICE_PATH));
- if (DevicePath == NULL) {
- DEBUG ((EFI_D_ERROR, "%a: Out of memory\n", __FUNCTION__));
- continue;
- }
-
- CopyGuid (&DevicePath->Vendor.Guid, &gVirtioMmioTransportGuid);
- DevicePath->PhysBase = RegBase;
- SetDevicePathNodeLength (&DevicePath->Vendor,
- sizeof (*DevicePath) - sizeof (DevicePath->End));
- SetDevicePathEndNode (&DevicePath->End);
-
- Handle = NULL;
- Status = gBS->InstallProtocolInterface (&Handle,
- &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
- DevicePath);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "%a: Failed to install the EFI_DEVICE_PATH "
- "protocol on a new handle (Status == %r)\n",
- __FUNCTION__, Status));
- FreePool (DevicePath);
- continue;
- }
-
- Status = VirtioMmioInstallDevice (RegBase, Handle);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "%a: Failed to install VirtIO transport @ 0x%Lx "
- "on handle %p (Status == %r)\n", __FUNCTION__, RegBase,
- Handle, Status));
-
- Status = gBS->UninstallProtocolInterface (Handle,
- &gEfiDevicePathProtocolGuid, DevicePath);
- ASSERT_EFI_ERROR (Status);
- FreePool (DevicePath);
- continue;
- }
- }
-
- if (EFI_ERROR (FindNodeStatus) && FindNodeStatus != EFI_NOT_FOUND) {
- DEBUG ((EFI_D_ERROR, "%a: Error occurred while iterating DT nodes "
- "(FindNodeStatus == %r)\n", __FUNCTION__, FindNodeStatus));
- }
-
- return EFI_SUCCESS;
-}
diff --git a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf b/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf deleted file mode 100644 index 9d5ae7b12f..0000000000 --- a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf +++ /dev/null @@ -1,46 +0,0 @@ -## @file
-# Virtio FDT client protocol driver for virtio,mmio DT node
-#
-# Copyright (c) 2014 - 2016, Linaro Ltd. All rights reserved.<BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = VirtioFdtDxe
- FILE_GUID = 0049858F-8CA7-4CCD-918B-D952CBF32975
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
-
- ENTRY_POINT = InitializeVirtioFdtDxe
-
-[Sources]
- VirtioFdtDxe.c
-
-[Packages]
- ArmVirtPkg/ArmVirtPkg.dec
- EmbeddedPkg/EmbeddedPkg.dec
- MdePkg/MdePkg.dec
- OvmfPkg/OvmfPkg.dec
-
-[LibraryClasses]
- BaseLib
- BaseMemoryLib
- DebugLib
- DevicePathLib
- MemoryAllocationLib
- UefiBootServicesTableLib
- UefiDriverEntryPoint
- VirtioMmioDeviceLib
-
-[Guids]
- gVirtioMmioTransportGuid
-
-[Protocols]
- gEfiDevicePathProtocolGuid ## PRODUCES
- gFdtClientProtocolGuid ## CONSUMES
-
-[Depex]
- gFdtClientProtocolGuid
|