[edk2-devel] [PATCH edk2-platforms] Silicon/SynQuacer: Drop dependency on NorFlashPlatformLib

Ard Biesheuvel posted 1 patch 1 year, 6 months ago
Failed in applying to current master (apply log)
.../SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf |  3 +-
.../Drivers/Fip006Dxe/Fip006StandaloneMm.inf  |  2 +-
.../NorFlashSynQuacerLib.inf                  | 35 ----------
.../SynQuacer/Drivers/Fip006Dxe/NorFlash.h    | 14 +++-
.../SynQuacer/Drivers/Fip006Dxe/NorFlash.c    | 44 +++++++++++++
.../SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c |  7 --
.../SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c |  7 --
.../NorFlashSynQuacerLib/NorFlashSynQuacer.c  | 64 -------------------
8 files changed, 59 insertions(+), 117 deletions(-)
delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
[edk2-devel] [PATCH edk2-platforms] Silicon/SynQuacer: Drop dependency on NorFlashPlatformLib
Posted by Ard Biesheuvel 1 year, 6 months ago
Fip006Dxe is part of the SynQuacer platform, which is its only user, and
yet, it relies on NorFlashPlatformLib to carry the platform specific NOR
geometry. This library is tied to ArmPlatformPkg's NorFlashDxe, which
will be going away, so let's stop using it.

Since the abstraction serves no purpose here, let's just merge the
library with its only user.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 .../SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf |  3 +-
 .../Drivers/Fip006Dxe/Fip006StandaloneMm.inf  |  2 +-
 .../NorFlashSynQuacerLib.inf                  | 35 ----------
 .../SynQuacer/Drivers/Fip006Dxe/NorFlash.h    | 14 +++-
 .../SynQuacer/Drivers/Fip006Dxe/NorFlash.c    | 44 +++++++++++++
 .../SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c |  7 --
 .../SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c |  7 --
 .../NorFlashSynQuacerLib/NorFlashSynQuacer.c  | 64 -------------------
 8 files changed, 59 insertions(+), 117 deletions(-)
 delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
 delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c

diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
index f91fdcfbc46d..6c7ce663d8b0 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
@@ -24,11 +24,11 @@ [Sources]
   NorFlashFvb.c
 
 [Packages]
-  ArmPlatformPkg/ArmPlatformPkg.dec
   EmbeddedPkg/EmbeddedPkg.dec
   MdeModulePkg/MdeModulePkg.dec
   MdePkg/MdePkg.dec
   Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.dec
+  Silicon/Socionext/SynQuacer/SynQuacer.dec
 
 [LibraryClasses]
   BaseLib
@@ -40,7 +40,6 @@ [LibraryClasses]
   IoLib
   MemoryAllocationLib
   NorFlashInfoLib
-  NorFlashPlatformLib
   UefiBootServicesTableLib
   UefiDriverEntryPoint
   UefiLib
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
index 8f4184dcbd8b..014ad791defc 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
@@ -30,6 +30,7 @@ [Packages]
   MdeModulePkg/MdeModulePkg.dec
   MdePkg/MdePkg.dec
   Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.dec
+  Silicon/Socionext/SynQuacer/SynQuacer.dec
   StandaloneMmPkg/StandaloneMmPkg.dec
 
 [LibraryClasses]
@@ -40,7 +41,6 @@ [LibraryClasses]
   MemoryAllocationLib
   MmServicesTableLib
   NorFlashInfoLib
-  NorFlashPlatformLib
   StandaloneMmDriverEntryPoint
 
 [Guids]
diff --git a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf b/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
deleted file mode 100644
index c1ed3c4d1ca8..000000000000
--- a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
+++ /dev/null
@@ -1,35 +0,0 @@
-#/** @file
-#
-#  Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-#**/
-
-[Defines]
-  INF_VERSION                    = 0x0001001A
-  BASE_NAME                      = NorFlashSynQuacerLib
-  FILE_GUID                      = 8279227C-C555-4D75-B439-D8A959635CDD
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = NorFlashPlatformLib
-
-[Sources]
-  NorFlashSynQuacer.c
-
-[Packages]
-  ArmPlatformPkg/ArmPlatformPkg.dec
-  ArmPkg/ArmPkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  MdePkg/MdePkg.dec
-  Silicon/Socionext/SynQuacer/SynQuacer.dec
-
-[LibraryClasses]
-  BaseLib
-
-[FixedPcd]
-  gArmTokenSpaceGuid.PcdFdBaseAddress
-  gArmTokenSpaceGuid.PcdFdSize
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
index 3cb86ab588e0..a287b9e396fb 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
@@ -22,7 +22,6 @@
 
 #include <Library/DebugLib.h>
 #include <Library/IoLib.h>
-#include <Library/NorFlashPlatformLib.h>
 
 #include "Fip006Reg.h"
 
@@ -291,6 +290,19 @@ NorFlashReadID (
   OUT UINT8               JedecId[3]
   );
 
+typedef struct {
+  UINTN    DeviceBaseAddress;       // Start address of the Device Base Address (DBA)
+  UINTN    RegionBaseAddress;       // Start address of one single region
+  UINTN    Size;
+  UINTN    BlockSize;
+} NOR_FLASH_DESCRIPTION;
+
+EFI_STATUS
+NorFlashPlatformGetDevices (
+  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
+  OUT UINT32                  *Count
+  );
+
 #define SPINOR_SR_WIP                 BIT0  // Write in progress
 #define SPINOR_FSR_READY              BIT7  // Flag Status Register: ready
 
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
index b2ca0033ac13..978b2e1e4c63 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
@@ -15,8 +15,35 @@
 #include <Library/UefiBootServicesTableLib.h>
 #include <Library/UefiLib.h>
 
+#include <Platform/MemoryMap.h>
+
 #include "NorFlash.h"
 
+#define FW_CODE_REGION_BASE SYNQUACER_SPI_NOR_BASE
+#define FW_CODE_REGION_SIZE (FW_ENV_REGION_BASE - FW_CODE_REGION_BASE)
+
+#define FW_ENV_REGION_BASE  FixedPcdGet32 (PcdFlashNvStorageVariableBase)
+#define FW_ENV_REGION_SIZE  (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \
+                             FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \
+                             FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))
+
+STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = {
+  {
+    // UEFI code region
+    SYNQUACER_SPI_NOR_BASE,                             // device base
+    FW_CODE_REGION_BASE,                                // region base
+    FW_CODE_REGION_SIZE,                                // region size
+    SIZE_64KB,                                          // block size
+  },
+  {
+    // Environment variable region
+    SYNQUACER_SPI_NOR_BASE,                             // device base
+    FW_ENV_REGION_BASE,                                 // region base
+    FW_ENV_REGION_SIZE,                                 // region size
+    SIZE_64KB,                                          // block size
+  },
+};
+
 STATIC CONST UINT16 mFip006NullCmdSeq[] = {
   CSDC (CSDC_END, CSDC_CONT_NON_CONTINUOUS, CSDC_TRP_MBM, CSDC_DEC_DECODE),
   CSDC (CSDC_END, CSDC_CONT_NON_CONTINUOUS, CSDC_TRP_MBM, CSDC_DEC_DECODE),
@@ -995,3 +1022,20 @@ NorFlashReadID (
   NorFlashSetHostCommand (Instance, SPINOR_OP_READ_4B);
   return EFI_SUCCESS;
 }
+
+EFI_STATUS
+NorFlashPlatformGetDevices (
+  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
+  OUT UINT32                  *Count
+  )
+{
+  if (NorFlashDevices == NULL ||
+      Count == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  *Count = ARRAY_SIZE (mNorFlashDevices);
+  *NorFlashDevices = mNorFlashDevices;
+
+  return EFI_SUCCESS;
+}
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
index d87b62956ded..aa380cd9aec3 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
@@ -229,13 +229,6 @@ NorFlashInitialise (
       EFI_MEMORY_UC | EFI_MEMORY_RUNTIME);
   ASSERT_EFI_ERROR (Status);
 
-  Status = NorFlashPlatformInitialization ();
-  if (EFI_ERROR (Status)) {
-    DEBUG ((DEBUG_ERROR,
-      "NorFlashInitialise: Fail to initialize Nor Flash devices\n"));
-    return Status;
-  }
-
   // Initialize NOR flash instances
   Status = NorFlashPlatformGetDevices (&NorFlashDevices, &mNorFlashDeviceCount);
   if (EFI_ERROR (Status)) {
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
index 7daec948a995..718b19b33117 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
@@ -106,13 +106,6 @@ NorFlashInitialise (
   NOR_FLASH_DESCRIPTION*  NorFlashDevices;
   BOOLEAN                 ContainVariableStorage;
 
-  Status = NorFlashPlatformInitialization ();
-  if (EFI_ERROR (Status)) {
-    DEBUG ((DEBUG_ERROR,
-      "NorFlashInitialise: Fail to initialize Nor Flash devices\n"));
-    return Status;
-  }
-
   // Initialize NOR flash instances
   Status = NorFlashPlatformGetDevices (&NorFlashDevices, &mNorFlashDeviceCount);
   if (EFI_ERROR (Status)) {
diff --git a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c b/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
deleted file mode 100644
index b2d1c39e2c61..000000000000
--- a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/** @file
-
- Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
- **/
-
-#include <Base.h>
-#include <Uefi.h>
-#include <Library/BaseLib.h>
-#include <Library/NorFlashPlatformLib.h>
-
-#include <Platform/MemoryMap.h>
-
-#define FW_CODE_REGION_BASE SYNQUACER_SPI_NOR_BASE
-#define FW_CODE_REGION_SIZE (FW_ENV_REGION_BASE - FW_CODE_REGION_BASE)
-
-#define FW_ENV_REGION_BASE  FixedPcdGet32 (PcdFlashNvStorageVariableBase)
-#define FW_ENV_REGION_SIZE  (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \
-                             FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \
-                             FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))
-
-STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = {
-  {
-    // UEFI code region
-    SYNQUACER_SPI_NOR_BASE,                             // device base
-    FW_CODE_REGION_BASE,                                // region base
-    FW_CODE_REGION_SIZE,                                // region size
-    SIZE_64KB,                                          // block size
-  },
-  {
-    // Environment variable region
-    SYNQUACER_SPI_NOR_BASE,                             // device base
-    FW_ENV_REGION_BASE,                                 // region base
-    FW_ENV_REGION_SIZE,                                 // region size
-    SIZE_64KB,                                          // block size
-  },
-};
-
-EFI_STATUS
-NorFlashPlatformInitialization (
-  VOID
-  )
-{
-  return EFI_SUCCESS;
-}
-
-EFI_STATUS
-NorFlashPlatformGetDevices (
-  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
-  OUT UINT32                  *Count
-  )
-{
-  if (NorFlashDevices == NULL ||
-      Count == NULL) {
-    return EFI_INVALID_PARAMETER;
-  }
-
-  *Count = ARRAY_SIZE (mNorFlashDevices);
-  *NorFlashDevices = mNorFlashDevices;
-
-  return EFI_SUCCESS;
-}
-- 
2.35.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95387): https://edk2.groups.io/g/devel/message/95387
Mute This Topic: https://groups.io/mt/94428762/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms] Silicon/SynQuacer: Drop dependency on NorFlashPlatformLib
Posted by Leif Lindholm 1 year, 6 months ago
On Wed, Oct 19, 2022 at 13:51:36 +0200, Ard Biesheuvel wrote:
> Fip006Dxe is part of the SynQuacer platform, which is its only user, and
> yet, it relies on NorFlashPlatformLib to carry the platform specific NOR
> geometry. This library is tied to ArmPlatformPkg's NorFlashDxe, which
> will be going away, so let's stop using it.
> 
> Since the abstraction serves no purpose here, let's just merge the
> library with its only user.
> 
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>

/
    Leif

> ---
>  .../SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf |  3 +-
>  .../Drivers/Fip006Dxe/Fip006StandaloneMm.inf  |  2 +-
>  .../NorFlashSynQuacerLib.inf                  | 35 ----------
>  .../SynQuacer/Drivers/Fip006Dxe/NorFlash.h    | 14 +++-
>  .../SynQuacer/Drivers/Fip006Dxe/NorFlash.c    | 44 +++++++++++++
>  .../SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c |  7 --
>  .../SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c |  7 --
>  .../NorFlashSynQuacerLib/NorFlashSynQuacer.c  | 64 -------------------
>  8 files changed, 59 insertions(+), 117 deletions(-)
>  delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
>  delete mode 100644 Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
> 
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
> index f91fdcfbc46d..6c7ce663d8b0 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
> @@ -24,11 +24,11 @@ [Sources]
>    NorFlashFvb.c
>  
>  [Packages]
> -  ArmPlatformPkg/ArmPlatformPkg.dec
>    EmbeddedPkg/EmbeddedPkg.dec
>    MdeModulePkg/MdeModulePkg.dec
>    MdePkg/MdePkg.dec
>    Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.dec
> +  Silicon/Socionext/SynQuacer/SynQuacer.dec
>  
>  [LibraryClasses]
>    BaseLib
> @@ -40,7 +40,6 @@ [LibraryClasses]
>    IoLib
>    MemoryAllocationLib
>    NorFlashInfoLib
> -  NorFlashPlatformLib
>    UefiBootServicesTableLib
>    UefiDriverEntryPoint
>    UefiLib
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
> index 8f4184dcbd8b..014ad791defc 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf
> @@ -30,6 +30,7 @@ [Packages]
>    MdeModulePkg/MdeModulePkg.dec
>    MdePkg/MdePkg.dec
>    Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.dec
> +  Silicon/Socionext/SynQuacer/SynQuacer.dec
>    StandaloneMmPkg/StandaloneMmPkg.dec
>  
>  [LibraryClasses]
> @@ -40,7 +41,6 @@ [LibraryClasses]
>    MemoryAllocationLib
>    MmServicesTableLib
>    NorFlashInfoLib
> -  NorFlashPlatformLib
>    StandaloneMmDriverEntryPoint
>  
>  [Guids]
> diff --git a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf b/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
> deleted file mode 100644
> index c1ed3c4d1ca8..000000000000
> --- a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -#/** @file
> -#
> -#  Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
> -#  SPDX-License-Identifier: BSD-2-Clause-Patent
> -#
> -#**/
> -
> -[Defines]
> -  INF_VERSION                    = 0x0001001A
> -  BASE_NAME                      = NorFlashSynQuacerLib
> -  FILE_GUID                      = 8279227C-C555-4D75-B439-D8A959635CDD
> -  MODULE_TYPE                    = BASE
> -  VERSION_STRING                 = 1.0
> -  LIBRARY_CLASS                  = NorFlashPlatformLib
> -
> -[Sources]
> -  NorFlashSynQuacer.c
> -
> -[Packages]
> -  ArmPlatformPkg/ArmPlatformPkg.dec
> -  ArmPkg/ArmPkg.dec
> -  MdeModulePkg/MdeModulePkg.dec
> -  MdePkg/MdePkg.dec
> -  Silicon/Socionext/SynQuacer/SynQuacer.dec
> -
> -[LibraryClasses]
> -  BaseLib
> -
> -[FixedPcd]
> -  gArmTokenSpaceGuid.PcdFdBaseAddress
> -  gArmTokenSpaceGuid.PcdFdSize
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
> index 3cb86ab588e0..a287b9e396fb 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.h
> @@ -22,7 +22,6 @@
>  
>  #include <Library/DebugLib.h>
>  #include <Library/IoLib.h>
> -#include <Library/NorFlashPlatformLib.h>
>  
>  #include "Fip006Reg.h"
>  
> @@ -291,6 +290,19 @@ NorFlashReadID (
>    OUT UINT8               JedecId[3]
>    );
>  
> +typedef struct {
> +  UINTN    DeviceBaseAddress;       // Start address of the Device Base Address (DBA)
> +  UINTN    RegionBaseAddress;       // Start address of one single region
> +  UINTN    Size;
> +  UINTN    BlockSize;
> +} NOR_FLASH_DESCRIPTION;
> +
> +EFI_STATUS
> +NorFlashPlatformGetDevices (
> +  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
> +  OUT UINT32                  *Count
> +  );
> +
>  #define SPINOR_SR_WIP                 BIT0  // Write in progress
>  #define SPINOR_FSR_READY              BIT7  // Flag Status Register: ready
>  
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
> index b2ca0033ac13..978b2e1e4c63 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlash.c
> @@ -15,8 +15,35 @@
>  #include <Library/UefiBootServicesTableLib.h>
>  #include <Library/UefiLib.h>
>  
> +#include <Platform/MemoryMap.h>
> +
>  #include "NorFlash.h"
>  
> +#define FW_CODE_REGION_BASE SYNQUACER_SPI_NOR_BASE
> +#define FW_CODE_REGION_SIZE (FW_ENV_REGION_BASE - FW_CODE_REGION_BASE)
> +
> +#define FW_ENV_REGION_BASE  FixedPcdGet32 (PcdFlashNvStorageVariableBase)
> +#define FW_ENV_REGION_SIZE  (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \
> +                             FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \
> +                             FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))
> +
> +STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = {
> +  {
> +    // UEFI code region
> +    SYNQUACER_SPI_NOR_BASE,                             // device base
> +    FW_CODE_REGION_BASE,                                // region base
> +    FW_CODE_REGION_SIZE,                                // region size
> +    SIZE_64KB,                                          // block size
> +  },
> +  {
> +    // Environment variable region
> +    SYNQUACER_SPI_NOR_BASE,                             // device base
> +    FW_ENV_REGION_BASE,                                 // region base
> +    FW_ENV_REGION_SIZE,                                 // region size
> +    SIZE_64KB,                                          // block size
> +  },
> +};
> +
>  STATIC CONST UINT16 mFip006NullCmdSeq[] = {
>    CSDC (CSDC_END, CSDC_CONT_NON_CONTINUOUS, CSDC_TRP_MBM, CSDC_DEC_DECODE),
>    CSDC (CSDC_END, CSDC_CONT_NON_CONTINUOUS, CSDC_TRP_MBM, CSDC_DEC_DECODE),
> @@ -995,3 +1022,20 @@ NorFlashReadID (
>    NorFlashSetHostCommand (Instance, SPINOR_OP_READ_4B);
>    return EFI_SUCCESS;
>  }
> +
> +EFI_STATUS
> +NorFlashPlatformGetDevices (
> +  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
> +  OUT UINT32                  *Count
> +  )
> +{
> +  if (NorFlashDevices == NULL ||
> +      Count == NULL) {
> +    return EFI_INVALID_PARAMETER;
> +  }
> +
> +  *Count = ARRAY_SIZE (mNorFlashDevices);
> +  *NorFlashDevices = mNorFlashDevices;
> +
> +  return EFI_SUCCESS;
> +}
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
> index d87b62956ded..aa380cd9aec3 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashDxe.c
> @@ -229,13 +229,6 @@ NorFlashInitialise (
>        EFI_MEMORY_UC | EFI_MEMORY_RUNTIME);
>    ASSERT_EFI_ERROR (Status);
>  
> -  Status = NorFlashPlatformInitialization ();
> -  if (EFI_ERROR (Status)) {
> -    DEBUG ((DEBUG_ERROR,
> -      "NorFlashInitialise: Fail to initialize Nor Flash devices\n"));
> -    return Status;
> -  }
> -
>    // Initialize NOR flash instances
>    Status = NorFlashPlatformGetDevices (&NorFlashDevices, &mNorFlashDeviceCount);
>    if (EFI_ERROR (Status)) {
> diff --git a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
> index 7daec948a995..718b19b33117 100644
> --- a/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
> +++ b/Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/NorFlashSmm.c
> @@ -106,13 +106,6 @@ NorFlashInitialise (
>    NOR_FLASH_DESCRIPTION*  NorFlashDevices;
>    BOOLEAN                 ContainVariableStorage;
>  
> -  Status = NorFlashPlatformInitialization ();
> -  if (EFI_ERROR (Status)) {
> -    DEBUG ((DEBUG_ERROR,
> -      "NorFlashInitialise: Fail to initialize Nor Flash devices\n"));
> -    return Status;
> -  }
> -
>    // Initialize NOR flash instances
>    Status = NorFlashPlatformGetDevices (&NorFlashDevices, &mNorFlashDeviceCount);
>    if (EFI_ERROR (Status)) {
> diff --git a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c b/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
> deleted file mode 100644
> index b2d1c39e2c61..000000000000
> --- a/Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/** @file
> -
> - Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> - **/
> -
> -#include <Base.h>
> -#include <Uefi.h>
> -#include <Library/BaseLib.h>
> -#include <Library/NorFlashPlatformLib.h>
> -
> -#include <Platform/MemoryMap.h>
> -
> -#define FW_CODE_REGION_BASE SYNQUACER_SPI_NOR_BASE
> -#define FW_CODE_REGION_SIZE (FW_ENV_REGION_BASE - FW_CODE_REGION_BASE)
> -
> -#define FW_ENV_REGION_BASE  FixedPcdGet32 (PcdFlashNvStorageVariableBase)
> -#define FW_ENV_REGION_SIZE  (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \
> -                             FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \
> -                             FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))
> -
> -STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = {
> -  {
> -    // UEFI code region
> -    SYNQUACER_SPI_NOR_BASE,                             // device base
> -    FW_CODE_REGION_BASE,                                // region base
> -    FW_CODE_REGION_SIZE,                                // region size
> -    SIZE_64KB,                                          // block size
> -  },
> -  {
> -    // Environment variable region
> -    SYNQUACER_SPI_NOR_BASE,                             // device base
> -    FW_ENV_REGION_BASE,                                 // region base
> -    FW_ENV_REGION_SIZE,                                 // region size
> -    SIZE_64KB,                                          // block size
> -  },
> -};
> -
> -EFI_STATUS
> -NorFlashPlatformInitialization (
> -  VOID
> -  )
> -{
> -  return EFI_SUCCESS;
> -}
> -
> -EFI_STATUS
> -NorFlashPlatformGetDevices (
> -  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
> -  OUT UINT32                  *Count
> -  )
> -{
> -  if (NorFlashDevices == NULL ||
> -      Count == NULL) {
> -    return EFI_INVALID_PARAMETER;
> -  }
> -
> -  *Count = ARRAY_SIZE (mNorFlashDevices);
> -  *NorFlashDevices = mNorFlashDevices;
> -
> -  return EFI_SUCCESS;
> -}
> -- 
> 2.35.1
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95404): https://edk2.groups.io/g/devel/message/95404
Mute This Topic: https://groups.io/mt/94428762/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms] Silicon/SynQuacer: Drop dependency on NorFlashPlatformLib
Posted by Ard Biesheuvel 1 year, 6 months ago
On Wed, 19 Oct 2022 at 15:50, Leif Lindholm <quic_llindhol@quicinc.com> wrote:
>
> On Wed, Oct 19, 2022 at 13:51:36 +0200, Ard Biesheuvel wrote:
> > Fip006Dxe is part of the SynQuacer platform, which is its only user, and
> > yet, it relies on NorFlashPlatformLib to carry the platform specific NOR
> > geometry. This library is tied to ArmPlatformPkg's NorFlashDxe, which
> > will be going away, so let's stop using it.
> >
> > Since the abstraction serves no purpose here, let's just merge the
> > library with its only user.
> >
> > Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
>
> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
>


Thanks

Pushed as cf45696d243a..85280b124e5a


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95408): https://edk2.groups.io/g/devel/message/95408
Mute This Topic: https://groups.io/mt/94428762/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-