| From 70e79ba5300f01a13422452c29e26c69042a0c8c Mon Sep 17 00:00:00 2001 |
| From: sahil <sahil@arm.com> |
| Date: Mon, 2 May 2022 18:50:08 +0530 |
| Subject: [PATCH] Platform/ARM/N1Sdp: NOR flash library for N1Sdp |
| |
| Add NOR flash library, this library provides APIs for getting the list |
| of NOR flash devices on the platform. |
| |
| Upstream-Status: Pending |
| Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com> |
| Signed-off-by: sahil <sahil@arm.com> |
| Change-Id: I39ad4143b7fad7e33b3b151a019a74f23e0ed441 |
| --- |
| .../Library/NorFlashLib/NorFlashLib.c | 52 +++++++++++++++++++ |
| .../Library/NorFlashLib/NorFlashLib.inf | 36 +++++++++++++ |
| 2 files changed, 88 insertions(+) |
| create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c |
| create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf |
| |
| diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c |
| new file mode 100644 |
| index 00000000..eee3d1c6 |
| --- /dev/null |
| +++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c |
| @@ -0,0 +1,52 @@ |
| +/** @file |
| + NOR flash lib for N1Sdp |
| + |
| + Copyright (c) 2023, ARM Limited. All rights reserved.<BR> |
| + |
| + SPDX-License-Identifier: BSD-2-Clause-Patent |
| + |
| +**/ |
| + |
| +#include <Library/DebugLib.h> |
| +#include <Library/IoLib.h> |
| +#include <Library/NorFlashPlatformLib.h> |
| +#include <NeoverseN1Soc.h> |
| +#include <PiDxe.h> |
| + |
| +#define FW_ENV_REGION_BASE FixedPcdGet32 (PcdFlashNvStorageVariableBase) |
| +#define FW_ENV_REGION_SIZE (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \ |
| + FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \ |
| + FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize)) |
| + |
| +STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = { |
| + { |
| + /// Environment variable region |
| + NEOVERSEN1SOC_SCP_QSPI_AHB_BASE, ///< device base |
| + FW_ENV_REGION_BASE, ///< region base |
| + FW_ENV_REGION_SIZE, ///< region size |
| + SIZE_4KB, ///< block size |
| + }, |
| +}; |
| + |
| +/** |
| + Get NOR flash region info |
| + |
| + @param[out] NorFlashDevices NOR flash regions info. |
| + @param[out] Count number of flash instance. |
| + |
| + @retval EFI_SUCCESS Success. |
| +**/ |
| +EFI_STATUS |
| +NorFlashPlatformGetDevices ( |
| + OUT NOR_FLASH_DESCRIPTION **NorFlashDevices, |
| + OUT UINT32 *Count |
| + ) |
| +{ |
| + if ((NorFlashDevices == NULL) || (Count == NULL)) { |
| + return EFI_INVALID_PARAMETER; |
| + } |
| + |
| + *NorFlashDevices = mNorFlashDevices; |
| + *Count = ARRAY_SIZE (mNorFlashDevices); |
| + return EFI_SUCCESS; |
| +} |
| diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf |
| new file mode 100644 |
| index 00000000..784856c8 |
| --- /dev/null |
| +++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf |
| @@ -0,0 +1,36 @@ |
| +## @file |
| +# NOR flash lib for N1Sdp |
| +# |
| +# Copyright (c) 2023, ARM Limited. All rights reserved.<BR> |
| +# |
| +# SPDX-License-Identifier: BSD-2-Clause-Patent |
| +# |
| +## |
| + |
| +[Defines] |
| + INF_VERSION = 0x0001001B |
| + BASE_NAME = NorFlashN1SdpLib |
| + FILE_GUID = 7006fcf1-a585-4272-92e3-b286b1dff5bb |
| + MODULE_TYPE = DXE_DRIVER |
| + VERSION_STRING = 1.0 |
| + LIBRARY_CLASS = NorFlashPlatformLib |
| + |
| +[Sources.common] |
| + NorFlashLib.c |
| + |
| +[Packages] |
| + MdeModulePkg/MdeModulePkg.dec |
| + MdePkg/MdePkg.dec |
| + Platform/ARM/ARM.dec |
| + Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec |
| + |
| +[LibraryClasses] |
| + BaseLib |
| + DebugLib |
| + IoLib |
| + |
| +[FixedPcd] |
| + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize |
| + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize |
| + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase |
| + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize |