Replace SocLib with new SocLib in which code structure has been
changed.

Signed-off-by: Pankaj Bansal <pankaj.ban...@nxp.com>
---
 .../Drivers/PlatformDxe/PlatformDxe.inf       |   3 +-
 Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc  |   3 +-
 .../Library/ArmPlatformLib/ArmPlatformLib.c   |  53 ++++++-
 .../Library/ArmPlatformLib/ArmPlatformLib.inf |   6 +-
 Silicon/NXP/Chassis2/Include/Chassis.h        |  12 ++
 Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc  |   1 +
 .../Chassis2/LS1043A/Library/SocLib/SocLib.c  |  28 ++++
 .../LS1043A/Library/SocLib/SocLib.inf         |   8 ++
 .../Chassis2/Library/ChassisLib/ChassisLib.c  |  25 ++++
 Silicon/NXP/Drivers/I2cDxe/I2cDxe.c           |   2 +-
 Silicon/NXP/Drivers/I2cDxe/I2cDxe.h           |   7 +-
 Silicon/NXP/Include/Chassis2/NxpSoc.h         |  53 -------
 Silicon/NXP/Include/Library/ChassisLib.h      |   2 -
 Silicon/NXP/Include/Library/SocLib.h          |   1 -
 Silicon/NXP/LS1043A/Include/Soc.h             |  44 ------
 Silicon/NXP/LS1043A/LS1043A.dec               |  16 ---
 Silicon/NXP/LS1043A/LS1043A.dsc.inc           |  33 -----
 .../BaseSerialPortLib16550.c                  |  11 +-
 .../BaseSerialPortLib16550.inf                |   3 +-
 Silicon/NXP/Library/SocLib/Chassis.c          |  76 ----------
 Silicon/NXP/Library/SocLib/Chassis2/Soc.c     |  96 -------------
 Silicon/NXP/Library/SocLib/LS1043aSocLib.inf  |  44 ------
 Silicon/NXP/Library/SocLib/NxpChassis.h       | 136 ------------------
 23 files changed, 142 insertions(+), 521 deletions(-)
 delete mode 100644 Silicon/NXP/Include/Chassis2/NxpSoc.h
 delete mode 100644 Silicon/NXP/LS1043A/Include/Soc.h
 delete mode 100644 Silicon/NXP/LS1043A/LS1043A.dec
 delete mode 100644 Silicon/NXP/LS1043A/LS1043A.dsc.inc
 delete mode 100644 Silicon/NXP/Library/SocLib/Chassis.c
 delete mode 100644 Silicon/NXP/Library/SocLib/Chassis2/Soc.c
 delete mode 100644 Silicon/NXP/Library/SocLib/LS1043aSocLib.inf
 delete mode 100644 Silicon/NXP/Library/SocLib/NxpChassis.h

diff --git a/Platform/NXP/LS1043aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf 
b/Platform/NXP/LS1043aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf
index 126a1174fa..95f60b00f0 100644
--- a/Platform/NXP/LS1043aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf
+++ b/Platform/NXP/LS1043aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf
@@ -25,7 +25,8 @@
   MdeModulePkg/MdeModulePkg.dec
   Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.dec
   Silicon/NXP/NxpQoriqLs.dec
-  Silicon/NXP/LS1043A/LS1043A.dec
+  Silicon/NXP/Chassis2/Chassis2.dec
+  Silicon/NXP/Chassis2/LS1043A/LS1043A.dec
 
 [LibraryClasses]
   BaseLib
diff --git a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc 
b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
index bc6fa4f19d..4bc7f6ef97 100644
--- a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
+++ b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
@@ -23,7 +23,8 @@
   FLASH_DEFINITION               = Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf
 
 !include Silicon/NXP/NxpQoriqLs.dsc.inc
-!include Silicon/NXP/LS1043A/LS1043A.dsc.inc
+!include Silicon/NXP/Chassis2/Chassis2.dsc.inc
+!include Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc
 
 [LibraryClasses.common]
   
ArmPlatformLib|Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
diff --git a/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.c 
b/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.c
index 718c71bf02..821d413a3e 100644
--- a/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.c
+++ b/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.c
@@ -14,7 +14,10 @@
 #include <Library/ArmPlatformLib.h>
 #include <Ppi/ArmMpCoreInfo.h>
 
-extern VOID SocInit (VOID);
+#include <Library/DebugLib.h>
+#include <Library/I2cLib.h>
+#include <Library/SocLib.h>
+#include <Ppi/NxpPlatformGetClock.h>
 
 /**
   Return the current Boot Mode
@@ -30,6 +33,49 @@ ArmPlatformGetBootMode (
   return BOOT_WITH_FULL_CONFIGURATION;
 }
 
+/**
+  Get the clocks supplied by Platform(Board) to NXP Layerscape SOC
+
+  The core can be of type ARM or PowerPC or Hardware Accelerator.
+  If the core is enabled and of type ARM EFI_SUCCESS is returned and a code 
for type of ARM core is returned
+
+  @param[in]    ClockType  Type of clock
+  @param[in]    ...              Variable argument list which is parsed based 
on ClockType
+
+  @return         Actual Clock Frequency. return value 0 should be interpreted 
as clock not provided by Board.
+**/
+UINT64
+EFIAPI
+NxpPlatformGetClock(
+  IN  UINT32  ClockType,
+  ...
+  )
+{
+  UINT64      Clock;
+  VA_LIST     Args;
+
+  Clock = 0;
+
+  VA_START (Args, ClockType);
+
+  switch (ClockType) {
+  case NXP_SYSTEM_CLOCK:
+    Clock = 100 * 1000 * 1000; // 100 MHz
+    break;
+  case NXP_I2C_CLOCK:
+  case NXP_UART_CLOCK:
+    Clock = NxpPlatformGetClock (NXP_SYSTEM_CLOCK);
+    Clock = SocGetClock (Clock, ClockType, Args);
+    break;
+  default:
+    break;
+  }
+
+  VA_END (Args);
+
+  return Clock;
+}
+
 /**
  Placeholder for Platform Initialization
 **/
@@ -38,9 +84,9 @@ ArmPlatformInitialize (
   IN  UINTN   MpId
   )
 {
- SocInit ();
+  SocInit ();
 
- return EFI_SUCCESS;
+  return EFI_SUCCESS;
 }
 
 ARM_CORE_INFO LS1043aMpCoreInfoCTA53x4[] = {
@@ -69,6 +115,7 @@ PrePeiCoreGetMpCoreInfo (
 }
 
 ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo };
+NXP_PLATFORM_GET_CLOCK_PPI mPlatformGetClockPpi = { NxpPlatformGetClock };
 
 EFI_PEI_PPI_DESCRIPTOR      gPlatformPpiTable[] = {
   {
diff --git 
a/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf 
b/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
index 6396d2982b..8b79fd7490 100644
--- a/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
+++ b/Platform/NXP/LS1043aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
@@ -20,11 +20,14 @@
   EmbeddedPkg/EmbeddedPkg.dec
   MdePkg/MdePkg.dec
   Silicon/NXP/NxpQoriqLs.dec
-  Silicon/NXP/LS1043A/LS1043A.dec
+  Silicon/NXP/Chassis2/Chassis2.dec
+  Silicon/NXP/Chassis2/LS1043A/LS1043A.dec
 
 [LibraryClasses]
   ArmLib
   SocLib
+  I2cLib
+  DebugLib
 
 [Sources.common]
   AArch64/NxpQoriqLsHelper.S    | GCC
@@ -36,3 +39,4 @@
 
 [FixedPcd]
   gArmTokenSpaceGuid.PcdArmPrimaryCore
+  gArmPlatformTokenSpaceGuid.PcdCoreCount
diff --git a/Silicon/NXP/Chassis2/Include/Chassis.h 
b/Silicon/NXP/Chassis2/Include/Chassis.h
index 48ba2e7bfb..8f26faf297 100644
--- a/Silicon/NXP/Chassis2/Include/Chassis.h
+++ b/Silicon/NXP/Chassis2/Include/Chassis.h
@@ -20,6 +20,18 @@
 #define  TP_ITYPE_VERSION_A53   0x2
 #define  TP_ITYPE_VERSION_A72   0x4
 
+/* SMMU Defintions */
+#define SMMU_BASE_ADDR             0x09000000
+#define SMMU_REG_SCR0              (SMMU_BASE_ADDR + 0x0)
+#define SMMU_REG_SACR              (SMMU_BASE_ADDR + 0x10)
+#define SMMU_REG_IDR1              (SMMU_BASE_ADDR + 0x24)
+#define SMMU_REG_NSCR0             (SMMU_BASE_ADDR + 0x400)
+#define SMMU_REG_NSACR             (SMMU_BASE_ADDR + 0x410)
+
+#define SCR0_USFCFG_MASK           0x00000400
+#define SCR0_CLIENTPD_MASK         0x00000001
+#define SACR_PAGESIZE_MASK         0x00010000
+
 /**
   The Device Configuration Unit provides general purpose configuration and 
status for the
   device. These registers only support 32-bit accesses.
diff --git a/Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc 
b/Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc
index 4511203443..8440e5f0f3 100644
--- a/Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc
+++ b/Silicon/NXP/Chassis2/LS1043A/LS1043A.dsc.inc
@@ -8,6 +8,7 @@
 
 [LibraryClasses.common]
   SocLib|Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.inf
+  
SerialPortLib|Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
 
 
################################################################################
 #
diff --git a/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.c 
b/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.c
index 2a08ad87db..24241e9b02 100644
--- a/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.c
+++ b/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.c
@@ -4,8 +4,10 @@
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
  **/
+#include <Soc.h>
 #include <Library/ChassisLib.h>
 #include <Library/SocLib.h>
+#include <Library/SerialPortLib.h>
 
 /**
   Return the input clock frequency to an IP Module.
@@ -66,8 +68,34 @@ SocInit (
   VOID
   )
 {
+  UINT64              BaudRate;
+  UINT32              ReceiveFifoDepth;
+  EFI_PARITY_TYPE     Parity;
+  UINT8               DataBits;
+  EFI_STOP_BITS_TYPE  StopBits;
+  UINT32              Timeout;
+
+  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
+  ReceiveFifoDepth = FixedPcdGet16 (PcdUartDefaultReceiveFifoDepth);  // Use 
default FIFO depth
+  Timeout = 0;
+  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
+  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
+  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
+
   ChassisInit ();
 
+  //
+  // Early init serial Port to get board information.
+  //
+  SerialPortSetAttributes (
+    &BaudRate,
+    &ReceiveFifoDepth,
+    &Timeout,
+    &Parity,
+    &DataBits,
+    &StopBits
+  );
+
   return;
 }
 
diff --git a/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.inf 
b/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.inf
index c9a4fbc01f..fb39424bc5 100644
--- a/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.inf
+++ b/Silicon/NXP/Chassis2/LS1043A/Library/SocLib/SocLib.inf
@@ -29,4 +29,12 @@
 
 [LibraryClasses]
   ChassisLib
+  PcdLib
+  SerialPortLib
 
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth
diff --git a/Silicon/NXP/Chassis2/Library/ChassisLib/ChassisLib.c 
b/Silicon/NXP/Chassis2/Library/ChassisLib/ChassisLib.c
index fa6a36e96f..e7573a0e06 100644
--- a/Silicon/NXP/Chassis2/Library/ChassisLib/ChassisLib.c
+++ b/Silicon/NXP/Chassis2/Library/ChassisLib/ChassisLib.c
@@ -150,6 +150,29 @@ SocGetMpCoreInfo (
   return CoreCount;
 }
 
+/*
+ * Setup SMMU in bypass mode
+ * and also set its pagesize
+ */
+STATIC
+VOID
+SmmuInit (
+  VOID
+  )
+{
+  UINT32 Value;
+
+  /* set pagesize as 64K and ssmu-500 in bypass mode */
+  Value = (MmioRead32 ((UINTN)SMMU_REG_SACR) | SACR_PAGESIZE_MASK);
+  MmioWrite32 ((UINTN)SMMU_REG_SACR, Value);
+
+  Value = (MmioRead32 ((UINTN)SMMU_REG_SCR0) | SCR0_CLIENTPD_MASK) & 
~SCR0_USFCFG_MASK;
+  MmioWrite32 ((UINTN)SMMU_REG_SCR0, Value);
+
+  Value = (MmioRead32 ((UINTN)SMMU_REG_NSCR0) | SCR0_CLIENTPD_MASK) & 
~SCR0_USFCFG_MASK;
+  MmioWrite32 ((UINTN)SMMU_REG_NSCR0, Value);
+}
+
 /**
   Function to initialize Chassis Specific functions
  **/
@@ -183,4 +206,6 @@ ChassisInit (
     &DataBits,
     &StopBits
   );
+
+  SmmuInit();
 }
diff --git a/Silicon/NXP/Drivers/I2cDxe/I2cDxe.c 
b/Silicon/NXP/Drivers/I2cDxe/I2cDxe.c
index 8e3a82efca..e79b106c8d 100644
--- a/Silicon/NXP/Drivers/I2cDxe/I2cDxe.c
+++ b/Silicon/NXP/Drivers/I2cDxe/I2cDxe.c
@@ -50,7 +50,7 @@ SetBusFrequency (
 
   I2cBase = (UINTN)(I2c->Dev->Resources[0].AddrRangeMin);
 
-  I2cClock = GetBusFrequency ();
+  I2cClock = mPlatformGetClockPpi.PlatformGetClock (NXP_I2C_CLOCK, 0);
 
   I2cInitialize (I2cBase, I2cClock, *BusClockHertz);
 
diff --git a/Silicon/NXP/Drivers/I2cDxe/I2cDxe.h 
b/Silicon/NXP/Drivers/I2cDxe/I2cDxe.h
index 88316f3133..f446f0d4f9 100644
--- a/Silicon/NXP/Drivers/I2cDxe/I2cDxe.h
+++ b/Silicon/NXP/Drivers/I2cDxe/I2cDxe.h
@@ -13,6 +13,7 @@
 #include <Library/UefiLib.h>
 #include <Uefi.h>
 
+#include <Ppi/NxpPlatformGetClock.h>
 #include <Protocol/I2cMaster.h>
 #include <Protocol/NonDiscoverableDevice.h>
 
@@ -37,11 +38,7 @@ typedef struct {
   NON_DISCOVERABLE_DEVICE         *Dev;
 } NXP_I2C_MASTER;
 
-extern
-UINT64
-GetBusFrequency (
-  VOID
-  );
+extern NXP_PLATFORM_GET_CLOCK_PPI mPlatformGetClockPpi;
 
 EFI_STATUS
 NxpI2cInit (
diff --git a/Silicon/NXP/Include/Chassis2/NxpSoc.h 
b/Silicon/NXP/Include/Chassis2/NxpSoc.h
deleted file mode 100644
index 6812beafe4..0000000000
--- a/Silicon/NXP/Include/Chassis2/NxpSoc.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/** Soc.h
-*  Header defining the Base addresses, sizes, flags etc for chassis 1
-*
-*  Copyright 2017-2020 NXP
-*
-*  SPDX-License-Identifier: BSD-2-Clause-Patent
-*
-**/
-
-#ifndef NXP_SOC_H_
-#define NXP_SOC_H_
-
-#define CLK_FREQ                   100000000
-
-#define CHASSIS2_DCFG_ADDRESS      0x1EE0000
-
-/* SMMU Defintions */
-#define SMMU_BASE_ADDR             0x09000000
-#define SMMU_REG_SCR0              (SMMU_BASE_ADDR + 0x0)
-#define SMMU_REG_SACR              (SMMU_BASE_ADDR + 0x10)
-#define SMMU_REG_IDR1              (SMMU_BASE_ADDR + 0x24)
-#define SMMU_REG_NSCR0             (SMMU_BASE_ADDR + 0x400)
-#define SMMU_REG_NSACR             (SMMU_BASE_ADDR + 0x410)
-
-#define SCR0_USFCFG_MASK           0x00000400
-#define SCR0_CLIENTPD_MASK         0x00000001
-#define SACR_PAGESIZE_MASK         0x00010000
-#define IDR1_PAGESIZE_MASK         0x80000000
-
-typedef struct {
-  UINTN FreqSystemBus;
-} SYS_INFO;
-
-/* Device Configuration and Pin Control */
-typedef struct {
-  UINT8    Res0[0x100-0x00];
-  UINT32   RcwSr[16];      /* Reset control word status */
-#define CHASSIS2_RCWSR0_SYS_PLL_RAT_SHIFT  25
-#define CHASSIS2_RCWSR0_SYS_PLL_RAT_MASK  0x1f
-} CCSR_GUR;
-
-VOID
-GetSysInfo (
-  OUT SYS_INFO *
-  );
-
-UINT32
-EFIAPI
-GurRead (
-  IN  UINTN     Address
-  );
-
-#endif /* NXP_SOC_H_ */
diff --git a/Silicon/NXP/Include/Library/ChassisLib.h 
b/Silicon/NXP/Include/Library/ChassisLib.h
index b51b024374..d07c59b82d 100644
--- a/Silicon/NXP/Include/Library/ChassisLib.h
+++ b/Silicon/NXP/Include/Library/ChassisLib.h
@@ -9,8 +9,6 @@
 #ifndef __CHASSIS_LIB_H__
 #define __CHASSIS_LIB_H__
 
-#include <Chassis.h>
-
 /**
   Read Dcfg register
 **/
diff --git a/Silicon/NXP/Include/Library/SocLib.h 
b/Silicon/NXP/Include/Library/SocLib.h
index 3def396171..700e877bdf 100644
--- a/Silicon/NXP/Include/Library/SocLib.h
+++ b/Silicon/NXP/Include/Library/SocLib.h
@@ -8,7 +8,6 @@
 #ifndef __SOC_LIB_H__
 #define __SOC_LIB_H__
 
-#include <Soc.h>
 #include <Uefi.h>
 #include <Ppi/ArmMpCoreInfo.h>
 #include <Ppi/NxpPlatformGetClock.h>
diff --git a/Silicon/NXP/LS1043A/Include/Soc.h 
b/Silicon/NXP/LS1043A/Include/Soc.h
deleted file mode 100644
index c1e00394af..0000000000
--- a/Silicon/NXP/LS1043A/Include/Soc.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/** @file
-
-  Copyright 2020 NXP
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-#ifndef __SOC_H__
-#define __SOC_H__
-
-/**
-  Soc Memory Map
-**/
-#define LS1043A_DRAM0_PHYS_ADDRESS   0x80000000
-#define LS1043A_DRAM0_SIZE           SIZE_2GB
-#define LS1043A_DRAM1_PHYS_ADDRESS   0x880000000
-#define LS1043A_DRAM1_SIZE           0x780000000 // 30 GB
-
-#define LS1043A_CCSR_PHYS_ADDRESS    0x1000000
-#define LS1043A_CCSR_SIZE            0xF000000
-
-#define LS1043A_IFC0_PHYS_ADDRESS    0x60000000
-#define LS1043A_IFC0_SIZE            SIZE_512MB
-#define LS1043A_IFC1_PHYS_ADDRESS    0x620000000
-#define LS1043A_IFC1_SIZE            0xE0000000 // 3.5 GB
-
-#define LS1043A_QSPI_PHYS_ADDRESS    0x40000000
-#define LS1043A_QSPI_SIZE            SIZE_512MB
-
-#define LS1043A_QMAN_SW_PORTAL_PHYS_ADDRESS    0x500000000
-#define LS1043A_QMAN_SW_PORTAL_SIZE            SIZE_128MB
-#define LS1043A_BMAN_SW_PORTAL_PHYS_ADDRESS    0x508000000
-#define LS1043A_BMAN_SW_PORTAL_SIZE            SIZE_128MB
-
-#define LS1043A_PCI0_PHYS_ADDRESS    0x4000000000
-#define LS1043A_PCI1_PHYS_ADDRESS    0x4800000000
-#define LS1043A_PCI2_PHYS_ADDRESS    0x5000000000
-#define LS1043A_PCI_SIZE             SIZE_32GB
-
-#define LS1043A_I2C0_PHYS_ADDRESS    0x2180000
-#define LS1043A_I2C_SIZE             0x10000
-#define LS1043A_I2C_NUM_CONTROLLERS  4
-
-#endif
diff --git a/Silicon/NXP/LS1043A/LS1043A.dec b/Silicon/NXP/LS1043A/LS1043A.dec
deleted file mode 100644
index cd79949790..0000000000
--- a/Silicon/NXP/LS1043A/LS1043A.dec
+++ /dev/null
@@ -1,16 +0,0 @@
-# LS1043A.dec
-#
-# Copyright 2017-2019 NXP
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-#
-
-[Defines]
-  DEC_SPECIFICATION              = 0x0001001A
-
-[Guids.common]
-  gNxpLs1043ATokenSpaceGuid      = {0x6834fe45, 0x4aee, 0x4fc6, {0xbc, 0xb5, 
0xff, 0x45, 0xb7, 0xa8, 0x71, 0xf2}}
-
-[Includes]
-  Include
diff --git a/Silicon/NXP/LS1043A/LS1043A.dsc.inc 
b/Silicon/NXP/LS1043A/LS1043A.dsc.inc
deleted file mode 100644
index 7ebbb1a495..0000000000
--- a/Silicon/NXP/LS1043A/LS1043A.dsc.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-#  LS1043A.dsc
-#  LS1043A Soc package.
-#
-#  Copyright 2017-2020 NXP
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-#
-
-[LibraryClasses.common]
-  SocLib|Silicon/NXP/Library/SocLib/LS1043aSocLib.inf
-  
SerialPortLib|Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
-
-################################################################################
-#
-# Pcd Section - list of all EDK II PCD Entries defined by this Platform
-#
-################################################################################
-[PcdsDynamicDefault.common]
-
-  #
-  # ARM General Interrupt Controller
-  gArmTokenSpaceGuid.PcdGicDistributorBase|0x01401000
-  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x01402000
-
-[PcdsFixedAtBuild.common]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x021c0500
-
-  #
-  # Big Endian IPs
-  #
-  gNxpQoriqLsTokenSpaceGuid.PcdGurBigEndian|TRUE
-##
diff --git 
a/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c 
b/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
index 6b2aa46ff6..2e35f09d8f 100644
--- a/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
+++ b/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
@@ -15,6 +15,9 @@
 #include <Library/PcdLib.h>
 #include <Library/IoLib.h>
 #include <Library/BaseLib.h>
+#include <Ppi/NxpPlatformGetClock.h>
+
+extern NXP_PLATFORM_GET_CLOCK_PPI mPlatformGetClockPpi;
 
 //
 // 16550 UART register offsets and bitfields
@@ -42,12 +45,6 @@
 #define   B_UART_MSR_RI       BIT6
 #define   B_UART_MSR_DCD      BIT7
 
-extern
-UINT64
-GetBusFrequency (
-  VOID
-  );
-
 /**
   Read an 8-bit 16550 register.  If PcdSerialUseMmio is TRUE, then the value 
is read from
   MMIO space.  If PcdSerialUseMmio is FALSE, then the value is read from I/O 
space.  The
@@ -577,7 +574,7 @@ SerialPortSetAttributes (
     return RETURN_UNSUPPORTED;
   }
 
-  SerialClock = GetBusFrequency ();
+  SerialClock = mPlatformGetClockPpi.PlatformGetClock (NXP_UART_CLOCK, 0);
   if (SerialClock == 0) {
     return EFI_DEVICE_ERROR;
   }
diff --git 
a/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf 
b/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
index 45ae9dc0af..7823bc5be5 100644
--- a/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
+++ b/Silicon/NXP/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
@@ -19,11 +19,12 @@
 [Packages]
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
+  Silicon/NXP/NxpQoriqLs.dec
 
 [LibraryClasses]
   PcdLib
   IoLib
-  SocLib
+  ArmPlatformLib
 
 [Sources]
   BaseSerialPortLib16550.c
diff --git a/Silicon/NXP/Library/SocLib/Chassis.c 
b/Silicon/NXP/Library/SocLib/Chassis.c
deleted file mode 100644
index 1ef99e8de2..0000000000
--- a/Silicon/NXP/Library/SocLib/Chassis.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/** @file
-  SoC specific Library containg functions to initialize various SoC components
-
-  Copyright 2017-2020 NXP
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-#ifdef CHASSIS2
-#include <Chassis2/NxpSoc.h>
-#elif CHASSIS3
-#include <Chassis3/NxpSoc.h>
-#endif
-#include <Library/ArmSmcLib.h>
-#include <Library/BaseLib.h>
-#include <Library/IoAccessLib.h>
-#include <Library/DebugLib.h>
-#include <Library/IoLib.h>
-#include <Library/PcdLib.h>
-#include <Library/PrintLib.h>
-#include <Library/SerialPortLib.h>
-
-#include "NxpChassis.h"
-
-UINT32
-EFIAPI
-GurRead (
-  IN  UINTN     Address
-  )
-{
-  if (FixedPcdGetBool (PcdGurBigEndian)) {
-    return SwapMmioRead32 (Address);
-  } else {
-    return MmioRead32 (Address);
-  }
-}
-
-/*
- * Return system bus frequency
- */
-UINT64
-GetBusFrequency (
-   VOID
-  )
-{
-  SYS_INFO SocSysInfo;
-
-  GetSysInfo (&SocSysInfo);
-
-  return SocSysInfo.FreqSystemBus;
-}
-
-/*
- * Setup SMMU in bypass mode
- * and also set its pagesize
- */
-VOID
-SmmuInit (
-  VOID
-  )
-{
-  UINT32 Value;
-
-  /* set pagesize as 64K and ssmu-500 in bypass mode */
-  Value = (MmioRead32 ((UINTN)SMMU_REG_SACR) | SACR_PAGESIZE_MASK);
-  MmioWrite32 ((UINTN)SMMU_REG_SACR, Value);
-
-  Value = (MmioRead32 ((UINTN)SMMU_REG_SCR0) | SCR0_CLIENTPD_MASK) & 
~SCR0_USFCFG_MASK;
-  MmioWrite32 ((UINTN)SMMU_REG_SCR0, Value);
-
-  Value = (MmioRead32 ((UINTN)SMMU_REG_NSCR0) | SCR0_CLIENTPD_MASK) & 
~SCR0_USFCFG_MASK;
-  MmioWrite32 ((UINTN)SMMU_REG_NSCR0, Value);
-}
-
diff --git a/Silicon/NXP/Library/SocLib/Chassis2/Soc.c 
b/Silicon/NXP/Library/SocLib/Chassis2/Soc.c
deleted file mode 100644
index a3dabc93d1..0000000000
--- a/Silicon/NXP/Library/SocLib/Chassis2/Soc.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/** @Soc.c
-  SoC specific Library containg functions to initialize various SoC components
-
-  Copyright 2017-2020 NXP
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-#include <NxpChassis.h>
-#include <Chassis2/NxpSoc.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/DebugLib.h>
-#include <Library/IoAccessLib.h>
-#include <Library/IoLib.h>
-#include <Library/PcdLib.h>
-#include <Library/PrintLib.h>
-#include <Library/SerialPortLib.h>
-
-/**
-  Calculate the frequency of various controllers and
-  populate the passed structure with frequuencies.
-
-  @param  PtrSysInfo            Input structure to populate with
-                                frequencies.
-**/
-VOID
-GetSysInfo (
-  OUT SYS_INFO *PtrSysInfo
-  )
-{
-  CCSR_GUR     *GurBase;
-  UINTN        SysClk;
-
-  GurBase = (CCSR_GUR *)CHASSIS2_DCFG_ADDRESS;
-  SysClk = CLK_FREQ;
-
-  SetMem (PtrSysInfo, sizeof (SYS_INFO), 0);
-
-  PtrSysInfo->FreqSystemBus = SysClk;
-
-  //
-  // selects the platform clock:SYSCLK ratio and calculate
-  // system frequency
-  //
-  PtrSysInfo->FreqSystemBus *= (GurRead ((UINTN)&GurBase->RcwSr[0]) >>
-                CHASSIS2_RCWSR0_SYS_PLL_RAT_SHIFT) &
-                CHASSIS2_RCWSR0_SYS_PLL_RAT_MASK;
-}
-
-/**
-  Function to initialize SoC specific constructs
-  CPU Info
-  SoC Personality
-  Board Personality
-  RCW prints
- **/
-VOID
-SocInit (
-  VOID
-  )
-{
-  UINT64              BaudRate;
-  UINT32              ReceiveFifoDepth;
-  EFI_PARITY_TYPE     Parity;
-  UINT8               DataBits;
-  EFI_STOP_BITS_TYPE  StopBits;
-  UINT32              Timeout;
-
-  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
-  ReceiveFifoDepth = 0;         // Use default FIFO depth
-  Timeout = 0;
-  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
-  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
-  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
-
-  SmmuInit ();
-
-  //
-  // Early init serial Port to get board information.
-  //
-  SerialPortSetAttributes (
-    &BaudRate,
-    &ReceiveFifoDepth,
-    &Timeout,
-    &Parity,
-    &DataBits,
-    &StopBits
-  );
-  DEBUG ((DEBUG_INIT, "\nUEFI firmware (version %s built at %a on %a)\n",
-          (CHAR16*)PcdGetPtr (PcdFirmwareVersionString), __TIME__, __DATE__));
-
-  return;
-}
diff --git a/Silicon/NXP/Library/SocLib/LS1043aSocLib.inf 
b/Silicon/NXP/Library/SocLib/LS1043aSocLib.inf
deleted file mode 100644
index d8707927b7..0000000000
--- a/Silicon/NXP/Library/SocLib/LS1043aSocLib.inf
+++ /dev/null
@@ -1,44 +0,0 @@
-#  @file
-#
-#  Copyright 2017-2020 NXP
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-
-[Defines]
-  INF_VERSION                    = 0x0001001A
-  BASE_NAME                      = SocLib
-  FILE_GUID                      = e868c5ca-9729-43ae-bff4-438c67de8c68
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = SocLib
-
-[Packages]
-  ArmPkg/ArmPkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  MdePkg/MdePkg.dec
-  Silicon/NXP/NxpQoriqLs.dec
-  Silicon/NXP/LS1043A/LS1043A.dec
-
-[LibraryClasses]
-  ArmSmcLib
-  BaseLib
-  DebugLib
-  IoAccessLib
-  SerialPortLib
-
-[Sources.common]
-  Chassis.c
-  Chassis2/Soc.c
-
-[BuildOptions]
-  GCC:*_*_*_CC_FLAGS = -DCHASSIS2
-
-[FixedPcd]
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
-  gNxpQoriqLsTokenSpaceGuid.PcdGurBigEndian
-  gNxpQoriqLsTokenSpaceGuid.PcdPlatformFreqDiv
diff --git a/Silicon/NXP/Library/SocLib/NxpChassis.h 
b/Silicon/NXP/Library/SocLib/NxpChassis.h
deleted file mode 100644
index 99f6439d8f..0000000000
--- a/Silicon/NXP/Library/SocLib/NxpChassis.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/** @file
-*  Header defining the Base addresses, sizes, flags etc for chassis 1
-*
-*  Copyright 2017-2019 NXP
-*
-*  SPDX-License-Identifier: BSD-2-Clause-Patent
-*
-**/
-
-#ifndef NXP_CHASSIS_H_
-#define NXP_CHASSIS_H_
-
-#define TP_ITYP_AV_MASK            0x00000001  /* Initiator available */
-#define TP_ITYP_TYPE_MASK(x)       (((x) & 0x6) >> 1) /* Initiator Type */
-#define TP_ITYP_TYPE_ARM           0x0
-#define TP_ITYP_TYPE_PPC           0x1
-#define TP_ITYP_TYPE_OTHER         0x2  /* StarCore DSP */
-#define TP_ITYP_TYPE_HA            0x3  /* HW Accelerator */
-#define TP_ITYP_THDS(x)            (((x) & 0x18) >> 3)  /* # threads */
-#define TP_ITYP_VERSION(x)         (((x) & 0xe0) >> 5)  /* Initiator Version */
-#define TP_CLUSTER_INIT_MASK       0x0000003f  /* initiator mask */
-#define TP_INIT_PER_CLUSTER        4
-
-#define TY_ITYP_VERSION_A7         0x1
-#define TY_ITYP_VERSION_A53        0x2
-#define TY_ITYP_VERSION_A57        0x3
-#define TY_ITYP_VERSION_A72        0x4
-
-#define CPU_TYPE_ENTRY(N, V, NC)   { .Name = #N, .SocVer = SVR_##V, .NumCores 
= (NC)}
-
-#define SVR_WO_E                    0xFFFFFE
-#define SVR_LS1043A                 0x879200
-#define SVR_LS1046A                 0x870700
-#define SVR_LS2088A                 0x870901
-
-#define SVR_MAJOR(svr)              (((svr) >> 4) & 0xf)
-#define SVR_MINOR(svr)              (((svr) >> 0) & 0xf)
-#define SVR_SOC_VER(svr)            (((svr) >> 8) & SVR_WO_E)
-#define IS_E_PROCESSOR(svr)         (!((svr >> 8) & 0x1))
-
-#define MHZ                         1000000
-
-typedef struct {
-  CHAR8  *Name;
-  UINT32 SocVer;
-  UINT32 NumCores;
-} CPU_TYPE;
-
-typedef struct {
-  UINTN CpuClk;  /* CPU clock in Hz! */
-  UINTN BusClk;
-  UINTN MemClk;
-  UINTN PciClk;
-  UINTN SdhcClk;
-} SOC_CLOCK_INFO;
-
-/*
- * Print Soc information
- */
-VOID
-PrintSoc (
-  VOID
-  );
-
-/*
- * Initialize Clock structure
- */
-VOID
-ClockInit (
-  VOID
-  );
-
-/*
- * Setup SMMU in bypass mode
- * and also set its pagesize
- */
-VOID
-SmmuInit (
-  VOID
-  );
-
-/*
- * Print CPU information
- */
-VOID
-PrintCpuInfo (
-  VOID
-  );
-
-/*
- * Dump RCW (Reset Control Word) on console
- */
-VOID
-PrintRCW (
-  VOID
-  );
-
-UINT32
-InitiatorType (
-  IN UINT32 Cluster,
-  IN UINTN InitId
-  );
-
-/*
- *  Return the mask for number of cores on this SOC.
- */
-UINT32
-CpuMask (
-  VOID
-  );
-
-/*
- *  Return the number of cores on this SOC.
- */
-UINTN
-CpuNumCores (
-  VOID
-  );
-
-/*
- * Return the type of initiator for core/hardware accelerator for given core 
index.
- */
-UINTN
-QoriqCoreToType (
-  IN UINTN Core
-  );
-
-/*
- *  Return the cluster of initiator for core/hardware accelerator for given 
core index.
- */
-INT32
-QoriqCoreToCluster (
-  IN UINTN Core
-  );
-
-#endif /* NXP_CHASSIS_H_ */
-- 
2.17.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#54020): https://edk2.groups.io/g/devel/message/54020
Mute This Topic: https://groups.io/mt/71046338/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to