Add an initial platform DXE driver and support for ramdisk devices. Signed-off-by: Deepak Pandey <deepak.pan...@arm.com> Signed-off-by: Khasim Syed Mohammed <khasim.moham...@arm.com> --- .../N1Sdp/Drivers/PlatformDxe/PlatformDxe.c | 59 +++++++++++++++++++ .../N1Sdp/Drivers/PlatformDxe/PlatformDxe.inf | 47 +++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.c create mode 100644 Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.inf
diff --git a/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.c b/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.c new file mode 100644 index 0000000000..3f975fa5ac --- /dev/null +++ b/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.c @@ -0,0 +1,59 @@ +/** @file + + Copyright (c) 2021, ARM Limited. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Library/DebugLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Protocol/RamDisk.h> + +/** + 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 RAM disk has been registered. + @retval EFI_NOT_FOUND No RAM disk protocol instances were found. + @retval EFI_UNSUPPORTED The ImageType is not supported. + @retval Others Unexpected error happened. + +**/ +EFI_STATUS +EFIAPI +ArmN1SdpEntryPoint ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_RAM_DISK_PROTOCOL *RamDisk; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + + Status = EFI_UNSUPPORTED; + if (FeaturePcdGet (PcdRamDiskSupported)) { + Status = gBS->LocateProtocol (&gEfiRamDiskProtocolGuid, NULL, + (VOID**) &RamDisk); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: 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; +} diff --git a/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.inf b/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.inf new file mode 100644 index 0000000000..d74f09b46c --- /dev/null +++ b/Platform/ARM/N1Sdp/Drivers/PlatformDxe/PlatformDxe.inf @@ -0,0 +1,47 @@ +## @file +# Platform DXE driver for N1Sdp +# +# Copyright (c) 2021, ARM Limited. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001B + BASE_NAME = PlatformDxe + FILE_GUID = 116dcefb-aa53-46aa-81cd-49581684db55 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = ArmN1SdpEntryPoint + +[Sources.common] + PlatformDxe.c + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + Platform/ARM/N1Sdp/N1SdpPlatform.dec + +[LibraryClasses] + HobLib + UefiDriverEntryPoint + +[Protocols] + gEfiRamDiskProtocolGuid + +[Guids] + gEfiVirtualCdGuid ## SOMETIMES_CONSUMES ## GUID + +[FeaturePcd] + gArmN1SdpTokenSpaceGuid.PcdRamDiskSupported + +[FixedPcd] + gArmN1SdpTokenSpaceGuid.PcdRamDiskBase + gArmN1SdpTokenSpaceGuid.PcdRamDiskSize + +[Depex] + gEfiRamDiskProtocolGuid -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83392): https://edk2.groups.io/g/devel/message/83392 Mute This Topic: https://groups.io/mt/86841473/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-