/** @file
Copyright (c) 2021, ARM Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
VOID
InitVirtioDevices (
VOID
);
/**
Entrypoint of Platform Dxe Driver
@param ImageHandle[in] The firmware allocated handle for the EFI image.
@param SystemTable[in] A pointer to the EFI System Table.
@retval EFI_SUCCESS The entry point is executed successfully.
**/
EFI_STATUS
EFIAPI
ArmMorelloEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
EFI_RAM_DISK_PROTOCOL *RamDisk;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
Status = EFI_SUCCESS;
InitVirtioDevices ();
if (FeaturePcdGet (PcdRamDiskSupported)) {
Status = gBS->LocateProtocol (
&gEfiRamDiskProtocolGuid,
NULL,
(VOID**)&RamDisk
);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Couldn't find the RAM Disk protocol %r\n",
__FUNCTION__, Status));
return Status;
}
Status = RamDisk->Register (
(UINTN)PcdGet32 (PcdRamDiskBase),
(UINTN)PcdGet32 (PcdRamDiskSize),
&gEfiVirtualCdGuid,
NULL,
&DevicePath
);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "%a: Failed to register RAM Disk - %r\n",
__FUNCTION__, Status));
}
}
return Status;
}