Browse Source

Silicon/SynQuacer: Drop dependency on NorFlashPlatformLib

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>
Ard Biesheuvel 1 year ago
parent
commit
85280b124e

+ 0 - 1
Platform/Socionext/DeveloperBox/DeveloperBox.dsc.inc

@@ -110,7 +110,6 @@
   PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.inf
 
   NorFlashInfoLib|EmbeddedPkg/Library/NorFlashInfoLib/NorFlashInfoLib.inf
-  NorFlashPlatformLib|Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
 
   VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf
   VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf

+ 1 - 4
Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc

@@ -493,10 +493,7 @@
   #
   # Variable services
   #
-  Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf {
-    <LibraryClasses>
-      NorFlashPlatformLib|Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf
-  }
+  Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf
   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
     <LibraryClasses>

+ 1 - 2
Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006Dxe.inf

@@ -24,11 +24,11 @@
   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 @@
   IoLib
   MemoryAllocationLib
   NorFlashInfoLib
-  NorFlashPlatformLib
   UefiBootServicesTableLib
   UefiDriverEntryPoint
   UefiLib

+ 1 - 1
Silicon/Socionext/SynQuacer/Drivers/Fip006Dxe/Fip006StandaloneMm.inf

@@ -30,6 +30,7 @@
   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 @@
   MemoryAllocationLib
   MmServicesTableLib
   NorFlashInfoLib
-  NorFlashPlatformLib
   StandaloneMmDriverEntryPoint
 
 [Guids]

+ 44 - 0
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;
+}

+ 13 - 1
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
 

+ 0 - 7
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)) {

+ 0 - 7
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)) {

+ 0 - 64
Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacer.c

@@ -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;
-}

+ 0 - 35
Silicon/Socionext/SynQuacer/Library/NorFlashSynQuacerLib/NorFlashSynQuacerLib.inf

@@ -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