public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms PATCH v2] Platform/RaspberryPi: Remove unnecessary files.
@ 2021-08-17  7:26 Grzegorz Bernacki
  2021-08-17 14:03 ` Ard Biesheuvel
  0 siblings, 1 reply; 2+ messages in thread
From: Grzegorz Bernacki @ 2021-08-17  7:26 UTC (permalink / raw)
  To: devel
  Cc: leif, ardb+tianocore, Samer.El-Haj-Mahmoud, sunny.Wang, mw,
	upstream, pete, Grzegorz Bernacki

Commit 2f0188b56ef4 ("Revert "Platform/RaspberryPi: Setup option for...")
mistakenly introduced to files which are residues from a
conflict resolution. Fix that.

Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
---
 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig   | 613 ----------------
 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej    |  31 -
 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig | 180 -----
 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej  |  32 -
 Platform/RaspberryPi/RPi4/RPi4.dsc.orig                                   | 760 --------------------
 Platform/RaspberryPi/RPi4/RPi4.dsc.rej                                    |  29 -
 6 files changed, 1645 deletions(-)
 delete mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
 delete mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
 delete mode 100644 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
 delete mode 100644 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
 delete mode 100644 Platform/RaspberryPi/RPi4/RPi4.dsc.orig
 delete mode 100644 Platform/RaspberryPi/RPi4/RPi4.dsc.rej

diff --git a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig b/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
deleted file mode 100644
index 5e83bbf022..0000000000
--- a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
+++ /dev/null
@@ -1,613 +0,0 @@
-/** @file
-  16550 and PL011 Serial Port library functions for Raspberry Pi
-
-  Copyright (c) 2020, Pete Batard <pete@akeo.ie>
-  Copyright (c) 2018, AMD Incorporated. All rights reserved.<BR>
-  Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
-  Copyright (c) 2012 - 2016, ARM Ltd. All rights reserved.<BR>
-  Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
-  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-#include <Library/IoLib.h>
-#include <Library/PcdLib.h>
-#include <Library/PL011UartClockLib.h>
-#include <Library/PL011UartLib.h>
-#include <Library/SerialPortLib.h>
-
-#include "DualSerialPortLib.h"
-
-/**
-  Return the baud generator divisor to use for 16650 setup.
-
-  @param  SerialBaudRate The desired baud rate.
-
-  @return The baud generator divisor.
-**/
-STATIC
-UINT32
-SerialPortGetDivisor (
-  UINT32  SerialBaudRate
-)
-{
-  UINT64              BaseClockRate;
-  UINT32              Divisor;
-
-  //
-  // On the Raspberry Pi, the clock to use for the 16650-compatible UART
-  // is the base clock divided by the 12.12 fixed point VPU clock divisor.
-  //
-  BaseClockRate = (UINT64)PcdGet32 (PcdSerialClockRate);
-#if (RPI_MODEL == 4)
-  Divisor = MmioRead32(BCM2836_CM_BASE + BCM2836_CM_VPU_CLOCK_DIVISOR) & 0xFFFFFF;
-  if (Divisor != 0)
-    BaseClockRate = (BaseClockRate << 12) / Divisor;
-#endif
-
-  //
-  // As per the BCM2xxx datasheets:
-  // baudrate = system_clock_freq / (8 * (divisor + 1)).
-  //
-  Divisor = (UINT32)BaseClockRate / (SerialBaudRate * 8);
-  if (Divisor != 0) {
-    Divisor--;
-  }
-  return Divisor;
-}
-
-/**
-  Initialize the serial device hardware.
-
-  If no initialization is required, then return RETURN_SUCCESS.
-  If the serial device was successfully initialized, then return RETURN_SUCCESS.
-  If the serial device could not be initialized, then return RETURN_DEVICE_ERROR.
-
-  @retval RETURN_SUCCESS        The serial device was initialized.
-  @retval RETURN_DEVICE_ERROR   The serial device could not be initialized.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortInitialize (
-  VOID
-  )
-{
-  UINTN               SerialRegisterBase;
-  UINT32              Divisor;
-  UINT32              CurrentDivisor;
-  BOOLEAN             Initialized;
-  UINT64              BaudRate;
-  UINT32              ReceiveFifoDepth;
-  EFI_PARITY_TYPE     Parity;
-  UINT8               DataBits;
-  EFI_STOP_BITS_TYPE  StopBits;
-
-  //
-  // First thing we need to do is determine which of PL011 or miniUART is selected
-  //
-  if (!UsePl011UartSet) {
-    UsePl011Uart = ((MmioRead32(GPIO_BASE_ADDRESS + 4) & 0x0003F000) == 0x00024000);
-    UsePl011UartSet = TRUE;
-  }
-
-  if (UsePl011Uart) {
-    BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
-    ReceiveFifoDepth = 0;         // Use default FIFO depth
-    Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
-    DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
-    StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
-
-    return PL011UartInitializePort (
-             PL011_UART_REGISTER_BASE,
-             PL011UartClockGetFreq(),
-             &BaudRate,
-             &ReceiveFifoDepth,
-             &Parity,
-             &DataBits,
-             &StopBits
-             );
-  } else {
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-    Divisor = SerialPortGetDivisor (PcdGet32 (PcdSerialBaudRate));
-
-    //
-    // See if the serial port is already initialized
-    //
-    Initialized = TRUE;
-    if ((SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) & 0x3F) != (PcdGet8 (PcdSerialLineControl) & 0x3F)) {
-      Initialized = FALSE;
-    }
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) | B_UART_LCR_DLAB));
-    CurrentDivisor =  SerialPortReadRegister (SerialRegisterBase, R_UART_BAUD_HIGH) << 8;
-    CurrentDivisor |= (UINT32) SerialPortReadRegister (SerialRegisterBase, R_UART_BAUD_LOW);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) & ~B_UART_LCR_DLAB));
-    if (CurrentDivisor != Divisor) {
-      Initialized = FALSE;
-    }
-    if (Initialized) {
-      return RETURN_SUCCESS;
-    }
-
-    //
-    // Wait for the serial port to be ready.
-    // Verify that both the transmit FIFO and the shift register are empty.
-    //
-    while ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) != (B_UART_LSR_TEMT | B_UART_LSR_TXRDY));
-
-    //
-    // Configure baud rate
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, B_UART_LCR_DLAB);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_HIGH, (UINT8) (Divisor >> 8));
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_LOW, (UINT8) (Divisor & 0xff));
-
-    //
-    // Clear DLAB and configure Data Bits, Parity, and Stop Bits.
-    // Strip reserved bits from PcdSerialLineControl
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(PcdGet8 (PcdSerialLineControl) & 0x3F));
-
-    //
-    // Enable and reset FIFOs
-    // Strip reserved bits from PcdSerialFifoControl
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_FCR, 0x00);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_FCR, (UINT8)(PcdGet8 (PcdSerialFifoControl) & (B_UART_FCR_FIFOE | B_UART_FCR_FIFO64)));
-
-    //
-    // Set FIFO Polled Mode by clearing IER after setting FCR
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_IER, 0x00);
-
-    //
-    // Put Modem Control Register(MCR) into its reset state of 0x00.
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, 0x00);
-
-    return RETURN_SUCCESS;
-  }
-}
-
-/**
-  Reads data from a serial device into a buffer.
-
-  @param  Buffer           Pointer to the data buffer to store the data read from the serial device.
-  @param  NumberOfBytes    Number of bytes to read from the serial device.
-
-  @retval 0                NumberOfBytes is 0.
-  @retval >0               The number of bytes read from the serial device.
-                           If this value is less than NumberOfBytes, then the read operation failed.
-
-**/
-UINTN
-EFIAPI
-SerialPortRead (
-  OUT UINT8     *Buffer,
-  IN  UINTN     NumberOfBytes
-  )
-{
-  UINTN  SerialRegisterBase;
-  UINTN  Result;
-  UINT8  Mcr;
-
-  if (UsePl011Uart) {
-    return PL011UartRead (PL011_UART_REGISTER_BASE, Buffer, NumberOfBytes);
-  } else {
-    if (NULL == Buffer) {
-      return 0;
-    }
-
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-
-    Mcr = (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) & ~B_UART_MCR_RTS);
-
-    for (Result = 0; NumberOfBytes-- != 0; Result++, Buffer++) {
-      //
-      // Wait for the serial port to have some data.
-      //
-      while ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & B_UART_LSR_RXRDY) == 0) {
-        if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
-          //
-          // Set RTS to let the peer send some data
-          //
-          SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(Mcr | B_UART_MCR_RTS));
-        }
-      }
-      if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
-        //
-        // Clear RTS to prevent peer from sending data
-        //
-        SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, Mcr);
-      }
-
-      //
-      // Read byte from the receive buffer.
-      //
-      *Buffer = SerialPortReadRegister (SerialRegisterBase, R_UART_RXBUF);
-    }
-
-    return Result;
-  }
-}
-
-/**
-  Polls a serial device to see if there is any data waiting to be read.
-
-  Polls aserial device to see if there is any data waiting to be read.
-  If there is data waiting to be read from the serial device, then TRUE is returned.
-  If there is no data waiting to be read from the serial device, then FALSE is returned.
-
-  @retval TRUE             Data is waiting to be read from the serial device.
-  @retval FALSE            There is no data waiting to be read from the serial device.
-
-**/
-BOOLEAN
-EFIAPI
-SerialPortPoll (
-  VOID
-  )
-{
-  UINTN  SerialRegisterBase;
-
-  if (UsePl011Uart) {
-    return PL011UartPoll (PL011_UART_REGISTER_BASE);
-  } else {
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-
-    //
-    // Read the serial port status
-    //
-    if ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & B_UART_LSR_RXRDY) != 0) {
-      if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
-        //
-        // Clear RTS to prevent peer from sending data
-        //
-        SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) & ~B_UART_MCR_RTS));
-      }
-      return TRUE;
-    }
-
-    if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
-      //
-      // Set RTS to let the peer send some data
-      //
-      SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) | B_UART_MCR_RTS));
-    }
-
-    return FALSE;
-  }
-}
-
-/**
-  Sets the control bits on a serial device.
-
-  @param Control                Sets the bits of Control that are settable.
-
-  @retval RETURN_SUCCESS        The new control bits were set on the serial device.
-  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
-  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortSetControl (
-  IN UINT32 Control
-  )
-{
-  UINTN SerialRegisterBase;
-  UINT8 Mcr;
-
-  if (UsePl011Uart) {
-    return PL011UartSetControl (PL011_UART_REGISTER_BASE, Control);
-  } else {
-    //
-    // First determine the parameter is invalid.
-    //
-    if ((Control & (~(EFI_SERIAL_REQUEST_TO_SEND | EFI_SERIAL_DATA_TERMINAL_READY |
-                      EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE))) != 0) {
-      return RETURN_UNSUPPORTED;
-    }
-
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-
-    //
-    // Read the Modem Control Register.
-    //
-    Mcr = SerialPortReadRegister (SerialRegisterBase, R_UART_MCR);
-    Mcr &= (~(B_UART_MCR_DTRC | B_UART_MCR_RTS));
-
-    if ((Control & EFI_SERIAL_DATA_TERMINAL_READY) == EFI_SERIAL_DATA_TERMINAL_READY) {
-      Mcr |= B_UART_MCR_DTRC;
-    }
-
-    if ((Control & EFI_SERIAL_REQUEST_TO_SEND) == EFI_SERIAL_REQUEST_TO_SEND) {
-      Mcr |= B_UART_MCR_RTS;
-    }
-
-    //
-    // Write the Modem Control Register.
-    //
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, Mcr);
-
-    return RETURN_SUCCESS;
-  }
-}
-
-/**
-  Retrieve the status of the control bits on a serial device.
-
-  @param Control                A pointer to return the current control signals from the serial device.
-
-  @retval RETURN_SUCCESS        The control bits were read from the serial device.
-  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
-  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortGetControl (
-  OUT UINT32 *Control
-  )
-{
-  UINTN SerialRegisterBase;
-  UINT8 Msr;
-  UINT8 Mcr;
-  UINT8 Lsr;
-
-  if (UsePl011Uart) {
-    return PL011UartGetControl (PL011_UART_REGISTER_BASE, Control);
-  } else {
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-
-    *Control = 0;
-
-    //
-    // Read the Modem Status Register.
-    //
-    Msr = SerialPortReadRegister (SerialRegisterBase, R_UART_MSR);
-
-    if ((Msr & B_UART_MSR_CTS) == B_UART_MSR_CTS) {
-      *Control |= EFI_SERIAL_CLEAR_TO_SEND;
-    }
-
-    if ((Msr & B_UART_MSR_DSR) == B_UART_MSR_DSR) {
-      *Control |= EFI_SERIAL_DATA_SET_READY;
-    }
-
-    if ((Msr & B_UART_MSR_RI) == B_UART_MSR_RI) {
-      *Control |= EFI_SERIAL_RING_INDICATE;
-    }
-
-    if ((Msr & B_UART_MSR_DCD) == B_UART_MSR_DCD) {
-      *Control |= EFI_SERIAL_CARRIER_DETECT;
-    }
-
-    //
-    // Read the Modem Control Register.
-    //
-    Mcr = SerialPortReadRegister (SerialRegisterBase, R_UART_MCR);
-
-    if ((Mcr & B_UART_MCR_DTRC) == B_UART_MCR_DTRC) {
-      *Control |= EFI_SERIAL_DATA_TERMINAL_READY;
-    }
-
-    if ((Mcr & B_UART_MCR_RTS) == B_UART_MCR_RTS) {
-      *Control |= EFI_SERIAL_REQUEST_TO_SEND;
-    }
-
-    if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
-      *Control |= EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE;
-    }
-
-    //
-    // Read the Line Status Register.
-    //
-    Lsr = SerialPortReadRegister (SerialRegisterBase, R_UART_LSR);
-
-    if ((Lsr & (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) == (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) {
-      *Control |= EFI_SERIAL_OUTPUT_BUFFER_EMPTY;
-    }
-
-    if ((Lsr & B_UART_LSR_RXRDY) == 0) {
-      *Control |= EFI_SERIAL_INPUT_BUFFER_EMPTY;
-    }
-
-    return RETURN_SUCCESS;
-  }
-}
-
-/**
-  Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
-  data bits, and stop bits on a serial device.
-
-  @param BaudRate           The requested baud rate. A BaudRate value of 0 will use the
-                            device's default interface speed.
-                            On output, the value actually set.
-  @param ReveiveFifoDepth   The requested depth of the FIFO on the receive side of the
-                            serial interface. A ReceiveFifoDepth value of 0 will use
-                            the device's default FIFO depth.
-                            On output, the value actually set.
-  @param Timeout            The requested time out for a single character in microseconds.
-                            This timeout applies to both the transmit and receive side of the
-                            interface. A Timeout value of 0 will use the device's default time
-                            out value.
-                            On output, the value actually set.
-  @param Parity             The type of parity to use on this serial device. A Parity value of
-                            DefaultParity will use the device's default parity value.
-                            On output, the value actually set.
-  @param DataBits           The number of data bits to use on the serial device. A DataBits
-                            vaule of 0 will use the device's default data bit setting.
-                            On output, the value actually set.
-  @param StopBits           The number of stop bits to use on this serial device. A StopBits
-                            value of DefaultStopBits will use the device's default number of
-                            stop bits.
-                            On output, the value actually set.
-
-  @retval RETURN_SUCCESS            The new attributes were set on the serial device.
-  @retval RETURN_UNSUPPORTED        The serial device does not support this operation.
-  @retval RETURN_INVALID_PARAMETER  One or more of the attributes has an unsupported value.
-  @retval RETURN_DEVICE_ERROR       The serial device is not functioning correctly.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortSetAttributes (
-  IN OUT UINT64             *BaudRate,
-  IN OUT UINT32             *ReceiveFifoDepth,
-  IN OUT UINT32             *Timeout,
-  IN OUT EFI_PARITY_TYPE    *Parity,
-  IN OUT UINT8              *DataBits,
-  IN OUT EFI_STOP_BITS_TYPE *StopBits
-  )
-{
-  UINTN     SerialRegisterBase;
-  UINT32    SerialBaudRate;
-  UINTN     Divisor;
-  UINT8     Lcr;
-  UINT8     LcrData;
-  UINT8     LcrParity;
-  UINT8     LcrStop;
-
-  if (UsePl011Uart) {
-    return PL011UartInitializePort (
-             PL011_UART_REGISTER_BASE,
-             PL011UartClockGetFreq(),
-             BaudRate,
-             ReceiveFifoDepth,
-             Parity,
-             DataBits,
-             StopBits
-             );
-  } else {
-    SerialRegisterBase = MINI_UART_REGISTER_BASE;
-
-    //
-    // Check for default settings and fill in actual values.
-    //
-    if (*BaudRate == 0) {
-      *BaudRate = PcdGet32 (PcdSerialBaudRate);
-    }
-    SerialBaudRate = (UINT32) *BaudRate;
-
-    if (*DataBits == 0) {
-      LcrData = (UINT8) (PcdGet8 (PcdSerialLineControl) & 0x3);
-      *DataBits = LcrData + 5;
-    } else {
-      if ((*DataBits < 5) || (*DataBits > 8)) {
-        return RETURN_INVALID_PARAMETER;
-      }
-      //
-      // Map 5..8 to 0..3
-      //
-      LcrData = (UINT8) (*DataBits - (UINT8) 5);
-    }
-
-    if (*Parity == DefaultParity) {
-      LcrParity = (UINT8) ((PcdGet8 (PcdSerialLineControl) >> 3) & 0x7);
-      switch (LcrParity) {
-        case 0:
-          *Parity = NoParity;
-          break;
-
-        case 3:
-          *Parity = EvenParity;
-          break;
-
-        case 1:
-          *Parity = OddParity;
-          break;
-
-        case 7:
-          *Parity = SpaceParity;
-          break;
-
-        case 5:
-          *Parity = MarkParity;
-          break;
-
-        default:
-          break;
-      }
-    } else {
-      switch (*Parity) {
-        case NoParity:
-          LcrParity = 0;
-          break;
-
-        case EvenParity:
-          LcrParity = 3;
-          break;
-
-        case OddParity:
-          LcrParity = 1;
-          break;
-
-        case SpaceParity:
-          LcrParity = 7;
-          break;
-
-        case MarkParity:
-          LcrParity = 5;
-          break;
-
-        default:
-          return RETURN_INVALID_PARAMETER;
-      }
-    }
-
-    if (*StopBits == DefaultStopBits) {
-      LcrStop = (UINT8) ((PcdGet8 (PcdSerialLineControl) >> 2) & 0x1);
-      switch (LcrStop) {
-        case 0:
-          *StopBits = OneStopBit;
-          break;
-
-        case 1:
-          if (*DataBits == 5) {
-            *StopBits = OneFiveStopBits;
-          } else {
-            *StopBits = TwoStopBits;
-          }
-          break;
-
-        default:
-          break;
-      }
-    } else {
-      switch (*StopBits) {
-        case OneStopBit:
-          LcrStop = 0;
-          break;
-
-        case OneFiveStopBits:
-        case TwoStopBits:
-          LcrStop = 1;
-          break;
-
-        default:
-          return RETURN_INVALID_PARAMETER;
-      }
-    }
-
-    //
-    // Configure baud rate
-    //
-    Divisor = SerialPortGetDivisor (SerialBaudRate);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, B_UART_LCR_DLAB);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_HIGH, (UINT8) (Divisor >> 8));
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_LOW, (UINT8) (Divisor & 0xff));
-
-    //
-    // Clear DLAB and configure Data Bits, Parity, and Stop Bits.
-    // Strip reserved bits from line control value
-    //
-    Lcr = (UINT8) ((LcrParity << 3) | (LcrStop << 2) | LcrData);
-    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8) (Lcr & 0x3F));
-
-    return RETURN_SUCCESS;
-  }
-}
diff --git a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej b/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
deleted file mode 100644
index fd8a1b2f20..0000000000
--- a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
+++ /dev/null
@@ -1,31 +0,0 @@
---- Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c
-+++ Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c
-@@ -34,25 +34,16 @@ SerialPortGetDivisor (
-   UINT32  SerialBaudRate
- )
- {
--  UINT64              BaseClockRate;
-+  UINT32              BaseClockRate;
-   UINT32              Divisor;
- 
--  //
--  // On the Raspberry Pi, the clock to use for the 16650-compatible UART
--  // is the base clock divided by the 12.12 fixed point VPU clock divisor.
--  //
--  BaseClockRate = (UINT64)PcdGet32 (PcdSerialClockRate);
--#if (RPI_MODEL == 4)
--  Divisor = MmioRead32(BCM2836_CM_BASE + BCM2836_CM_VPU_CLOCK_DIVISOR) & 0xFFFFFF;
--  if (Divisor != 0)
--    BaseClockRate = (BaseClockRate << 12) / Divisor;
--#endif
-+  BaseClockRate = PcdGet32 (PcdSerialClockRate);
- 
-   //
-   // As per the BCM2xxx datasheets:
-   // baudrate = system_clock_freq / (8 * (divisor + 1)).
-   //
--  Divisor = (UINT32)BaseClockRate / (SerialBaudRate * 8);
-+  Divisor = BaseClockRate / (SerialBaudRate * 8);
-   if (Divisor != 0) {
-     Divisor--;
-   }
diff --git a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig b/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
deleted file mode 100644
index 58351e4fb8..0000000000
--- a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
+++ /dev/null
@@ -1,180 +0,0 @@
-/** @file
- *
- *  Copyright (c) 2020, Andrei Warkentin <andrey.warkentin@gmail.com>
- *  Copyright (c) 2019-2020, Pete Batard <pete@akeo.ie>
- *  Copyright (c) 2016, Linaro Limited. All rights reserved.
- *  Copyright (c) 2011-2020, ARM Limited. All rights reserved.
- *
- *  SPDX-License-Identifier: BSD-2-Clause-Patent
- *
- **/
-
-#include <AsmMacroIoLibV8.h>
-#include <Library/ArmLib.h>
-#include <IndustryStandard/Bcm2836.h>
-#include <IndustryStandard/RpiMbox.h>
-
-    .macro  drain
-    mov     x5, #RPI_MBOX_MAX_TRIES
-0:  ldr     w6, [x4, #BCM2836_MBOX_STATUS_OFFSET]
-    tbnz    w6, #BCM2836_MBOX_STATUS_EMPTY, 1f
-    dmb     ld
-    ldr     wzr, [x4, #BCM2836_MBOX_READ_OFFSET]
-    subs    x5, x5, #1
-    b.ne    0b
-1:
-    .endm
-
-    .macro  poll, status
-    mov     x5, #RPI_MBOX_MAX_TRIES
-0:  ldr     w6, [x4, #BCM2836_MBOX_STATUS_OFFSET]
-    tbz     w6, #\status, 1f
-    dmb     ld
-    subs    x5, x5, #1
-    b.ne    0b
-1:
-    .endm
-
-    .macro  run, command_buffer
-    adr     x0, \command_buffer
-    orr     x0, x0, #RPI_MBOX_VC_CHANNEL
-    add     x0, x0, x1
-
-    poll    BCM2836_MBOX_STATUS_FULL
-    str     w0, [x4, #BCM2836_MBOX_WRITE_OFFSET]
-    dmb     sy
-    poll    BCM2836_MBOX_STATUS_EMPTY
-    dmb     sy
-    ldr     wzr, [x4, #BCM2836_MBOX_READ_OFFSET]
-    dmb     ld
-    .endm
-
-ASM_FUNC (ArmPlatformPeiBootAction)
-    mov     x1, #FixedPcdGet64 (PcdDmaDeviceOffset)
-    orr     x0, x0, #RPI_MBOX_VC_CHANNEL
-    // x1 holds the value of PcdDmaDeviceOffset throughout this function
-
-    MOV32   (x4, BCM2836_MBOX_BASE_ADDRESS)
-
-    drain
-
-    run     .Lmeminfo_buffer
-
-    ldr     w0, .Lmembase
-    adr     x2, mSystemMemoryBase
-    str     x0, [x2]
-
-    ldr     w0, .Lmemsize
-    sub     x0, x0, #1
-    adr     x2, mSystemMemoryEnd
-    str     x0, [x2]
-
-    run     .Lvcinfo_buffer
-
-    ldr     w0, .Lvcbase
-    adr     x2, mVideoCoreBase
-    str     x0, [x2]
-
-    ldr     w0, .Lvcsize
-    adr     x2, mVideoCoreSize
-    str     x0, [x2]
-
-    run     .Lrevinfo_buffer
-
-    ldr     w0, .Lrevision
-    adr     x2, mBoardRevision
-    str     w0, [x2]
-
-#if (RPI_MODEL == 3)
-    run     .Lclkinfo_buffer
-
-    ldr     w0, .Lfrequency
-    adr     x2, _gPcd_BinaryPatch_PcdSerialClockRate
-    str     w0, [x2]
-#endif
-
-    ret
-
-    .align  4
-.Lmeminfo_buffer:
-    .long   .Lmeminfo_size
-    .long   0x0
-    .long   RPI_MBOX_GET_ARM_MEMSIZE
-    .long   8                           // buf size
-    .long   0                           // input len
-.Lmembase:
-    .long   0                           // mem base
-.Lmemsize:
-    .long   0                           // mem size
-    .long   0                           // end tag
-    .set    .Lmeminfo_size, . - .Lmeminfo_buffer
-
-    .align  4
-.Lvcinfo_buffer:
-    .long   .Lvcinfo_size
-    .long   0x0
-    .long   RPI_MBOX_GET_VC_MEMSIZE
-    .long   8                           // buf size
-    .long   0                           // input len
-.Lvcbase:
-    .long   0                           // videocore base
-.Lvcsize:
-    .long   0                           // videocore size
-    .long   0                           // end tag
-    .set    .Lvcinfo_size, . - .Lvcinfo_buffer
-
-    .align  4
-.Lrevinfo_buffer:
-    .long   .Lrevinfo_size
-    .long   0x0
-    .long   RPI_MBOX_GET_BOARD_REVISION
-    .long   4                           // buf size
-    .long   0                           // input len
-.Lrevision:
-    .long   0                           // revision
-    .long   0                           // end tag
-    .set    .Lrevinfo_size, . - .Lrevinfo_buffer
-
-#if (RPI_MODEL == 3)
-    .align  4
-.Lclkinfo_buffer:
-    .long   .Lclkinfo_size
-    .long   0x0
-    .long   RPI_MBOX_GET_CLOCK_RATE
-    .long   8                           // buf size
-    .long   4                           // input len
-    .long   4                           // clock id: 0x04 = Core/VPU
-.Lfrequency:
-    .long   0                           // frequency
-    .long   0                           // end tag
-    .set    .Lclkinfo_size, . - .Lclkinfo_buffer
-#endif
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC (ArmPlatformGetPrimaryCoreMpId)
-    MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))
-    ret
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC (ArmPlatformIsPrimaryCore)
-    mov   x0, #1
-    ret
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC (ArmPlatformGetCorePosition)
-    and   x1, x0, #ARM_CORE_MASK
-    and   x0, x0, #ARM_CLUSTER_MASK
-    add   x0, x1, x0, LSR #6
-    ret
-
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej b/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
deleted file mode 100644
index e42851fafe..0000000000
--- a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
+++ /dev/null
@@ -1,32 +0,0 @@
---- Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S
-+++ Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S
-@@ -85,13 +85,11 @@ ASM_FUNC (ArmPlatformPeiBootAction)
-     adr     x2, mBoardRevision
-     str     w0, [x2]
- 
--#if (RPI_MODEL == 3)
-     run     .Lclkinfo_buffer
- 
-     ldr     w0, .Lfrequency
-     adr     x2, _gPcd_BinaryPatch_PcdSerialClockRate
-     str     w0, [x2]
--#endif
- 
-     ret
- 
-@@ -135,7 +133,6 @@ ASM_FUNC (ArmPlatformPeiBootAction)
-     .long   0                           // end tag
-     .set    .Lrevinfo_size, . - .Lrevinfo_buffer
- 
--#if (RPI_MODEL == 3)
-     .align  4
- .Lclkinfo_buffer:
-     .long   .Lclkinfo_size
-@@ -148,7 +145,6 @@ ASM_FUNC (ArmPlatformPeiBootAction)
-     .long   0                           // frequency
-     .long   0                           // end tag
-     .set    .Lclkinfo_size, . - .Lclkinfo_buffer
--#endif
- 
- //UINTN
- //ArmPlatformGetPrimaryCoreMpId (
diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc.orig b/Platform/RaspberryPi/RPi4/RPi4.dsc.orig
deleted file mode 100644
index 2c05c31118..0000000000
--- a/Platform/RaspberryPi/RPi4/RPi4.dsc.orig
+++ /dev/null
@@ -1,760 +0,0 @@
-# @file
-#
-#  Copyright (c) 2011 - 2020, ARM Limited. All rights reserved.
-#  Copyright (c) 2017 - 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
-#  Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.
-#  Copyright (c) 2014, Linaro Limited. All rights reserved.
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-################################################################################
-#
-# Defines Section - statements that will be processed to create a Makefile.
-#
-################################################################################
-[Defines]
-  PLATFORM_NAME                  = RPi4
-  PLATFORM_GUID                  = a7eca3b4-21b0-4989-8c18-c08f3ae87837
-  PLATFORM_VERSION               = 1.0
-  DSC_SPECIFICATION              = 0x0001001A
-  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)
-  SUPPORTED_ARCHITECTURES        = AARCH64
-  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
-  SKUID_IDENTIFIER               = DEFAULT
-  FLASH_DEFINITION               = Platform/RaspberryPi/$(PLATFORM_NAME)/$(PLATFORM_NAME).fdf
-
-  #
-  # Defines for default states.  These can be changed on the command line.
-  # -D FLAG=VALUE
-  #
-  DEFINE SECURE_BOOT_ENABLE      = FALSE
-  DEFINE INCLUDE_TFTP_COMMAND    = FALSE
-  DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
-
-!ifndef TFA_BUILD_ARTIFACTS
-  #
-  # Default TF-A binary checked into edk2-non-osi.
-  #
-  DEFINE TFA_BUILD_BL31 = Platform/RaspberryPi/$(PLATFORM_NAME)/TrustedFirmware/bl31.bin
-!else
-  #
-  # Usually we use the checked-in binaries, but for developers working
-  # on the firmware, being able to use a local TF-A build without extra copy
-  # operations ends up being very helpful.
-  #
-  DEFINE TFA_BUILD_BL31 = $(TFA_BUILD_ARTIFACTS)/bl31.bin
-!endif
-
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this Platform.
-#
-################################################################################
-
-!include MdePkg/MdeLibs.dsc.inc
-
-[LibraryClasses.common]
-!if $(TARGET) == RELEASE
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-!else
-  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
-!endif
-  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
-
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
-  BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
-  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
-  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
-  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
-  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
-  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
-  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
-  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
-
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
-  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
-  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
-  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
-  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
-
-  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
-  OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
-
-  #
-  # Ramdisk Requirements
-  #
-  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
-
-  # Allow dynamic PCDs
-  #
-  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
-
-  # use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
-
-  #
-  # It is not possible to prevent the ARM compiler from inserting calls to intrinsic functions.
-  # This library provides the instrinsic functions such a compiler may generate calls to.
-  #
-  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
-
-  # Add support for GCC stack protector
-  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
-
-  # ARM Architectural Libraries
-  CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
-  DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
-  CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
-  ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
-  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
-  ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
-  DmaLib|EmbeddedPkg/Library/NonCoherentDmaLib/NonCoherentDmaLib.inf
-  TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
-  ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
-  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
-  ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
-  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
-
-  # Dual serial port library
-  PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
-  PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
-  SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DebugDualSerialPortLib.inf
-
-  # Cryptographic libraries
-  RngLib|MdePkg/Library/DxeRngLib/DxeRngLib.inf
-  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
-  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
-  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
-  TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
-
-  #
-  # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
-  # in the debugger will show load and unload commands for symbols. You can cut and paste this
-  # into the command window to load symbols. We should be able to use a script to do this, but
-  # the version of RVD I have does not support scripts accessing system memory.
-  #
-  #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
-  PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
-  #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
-
-  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
-  DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
-
-  # Flattened Device Tree (FDT) access library
-  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
-
-  # USB Libraries
-  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
-
-  #
-  # Secure Boot dependencies
-  #
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
-  AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
-
-  # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
-  PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
-!else
-  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
-  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
-!endif
-  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
-  VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf
-  VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf
-  GpioLib|Silicon/Broadcom/Bcm283x/Library/GpioLib/GpioLib.inf
-
-  #
-  # PCI dependencies
-  #
-  # PCI root port configuation and description
-  PciHostBridgeLib|Silicon/Broadcom/Bcm27xx/Library/Bcm2711PciHostBridgeLib/Bcm2711PciHostBridgeLib.inf
-  # The "segment lib" provides the CAM accessors/etc when they aren't ECAM standard
-  PciSegmentLib|Silicon/Broadcom/Bcm27xx/Library/Bcm2711PciSegmentLib/PciSegmentLib.inf
-
-[LibraryClasses.common.SEC]
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  MemoryInitPeiLib|Platform/RaspberryPi/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
-  PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
-  ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
-  LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
-  PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
-  HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
-  PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
-  MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_CORE]
-  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
-  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
-  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
-  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
-  PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
-  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-!if $(INCLUDE_TFTP_COMMAND) == TRUE
-  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
-  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
-!endif
-
-[LibraryClasses.common.UEFI_APPLICATION]
-  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
-  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
-  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
-  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_RUNTIME_DRIVER]
-  # Runtime debug messages may crash an OS unless serial output to MMIO mapped UARTs is inhibited
-  DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
-  EfiResetSystemLib|Platform/RaspberryPi/Library/ResetLib/ResetLib.inf
-  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
-  VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf
-
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
-!endif
-
-###################################################################################################
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process.
-###################################################################################################
-
-[BuildOptions]
-  GCC:*_*_*_CC_FLAGS          = -DRPI_MODEL=4
-  GCC:*_*_*_PP_FLAGS          = -DRPI_MODEL=4
-  GCC:*_*_*_ASLPP_FLAGS       = -DRPI_MODEL=4
-  GCC:*_*_*_ASLCC_FLAGS       = -DRPI_MODEL=4
-  GCC:*_*_*_VFRPP_FLAGS       = -DRPI_MODEL=4
-  GCC:RELEASE_*_*_CC_FLAGS    = -DMDEPKG_NDEBUG -DNDEBUG
-
-[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
-  GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
-
-################################################################################
-#
-# Pcd Section - list of all EDK II PCD Entries defined by this Platform
-#
-################################################################################
-
-[PcdsFeatureFlag.common]
-  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
-  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
-
-  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
-
-  ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
-  #  It could be set FALSE to save size.
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
-  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport|FALSE
-
-[PcdsFixedAtBuild.common]
-  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
-  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
-  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
-  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
-  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
-  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
-  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
-  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
-
-  # DEBUG_ASSERT_ENABLED       0x01
-  # DEBUG_PRINT_ENABLED        0x02
-  # DEBUG_CODE_ENABLED         0x04
-  # CLEAR_MEMORY_ENABLED       0x08
-  # ASSERT_BREAKPOINT_ENABLED  0x10
-  # ASSERT_DEADLOOP_ENABLED    0x20
-!if $(TARGET) == RELEASE
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
-!else
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
-!endif
-
-  #  DEBUG_INIT      0x00000001  // Initialization
-  #  DEBUG_WARN      0x00000002  // Warnings
-  #  DEBUG_LOAD      0x00000004  // Load events
-  #  DEBUG_FS        0x00000008  // EFI File system
-  #  DEBUG_POOL      0x00000010  // Alloc & Free (pool)
-  #  DEBUG_PAGE      0x00000020  // Alloc & Free (page)
-  #  DEBUG_INFO      0x00000040  // Informational debug messages
-  #  DEBUG_DISPATCH  0x00000080  // PEI/DXE/SMM Dispatchers
-  #  DEBUG_VARIABLE  0x00000100  // Variable
-  #  DEBUG_BM        0x00000400  // Boot Manager
-  #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
-  #  DEBUG_NET       0x00004000  // SNP Driver
-  #  DEBUG_UNDI      0x00010000  // UNDI Driver
-  #  DEBUG_LOADFILE  0x00020000  // LoadFile
-  #  DEBUG_EVENT     0x00080000  // Event messages
-  #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
-  #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
-  #  DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may
-  #                              // significantly impact boot performance
-  #  DEBUG_ERROR     0x80000000  // Error
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
-
-  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
-
-  #
-  # Optional feature to help prevent EFI memory map fragments
-  # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
-  # Values are in EFI Pages (4K). DXE Core will make sure that
-  # at least this much of each type of memory can be allocated
-  # from a single memory range. This way you only end up with
-  # maximum of two fragments for each type in the memory map
-  # (the memory used, and the free memory that was prereserved
-  # but not used).
-  #
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500
-!else
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000
-!endif
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|12000
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
-  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
-
-  gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0xc0000000
-  gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xffffffff
-
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"EDK2-DEV"
-
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
-  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
-  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
-  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
-!endif
-
-  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
-
-  # Default platform supported RFC 4646 languages: (American) English
-  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes|"en-US"
-
-[LibraryClasses.common]
-  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
-  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
-  ArmPlatformLib|Platform/RaspberryPi/Library/PlatformLib/PlatformLib.inf
-  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
-  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
-  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
-  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
-  PlatformBootManagerLib|Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
-  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
-  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
-  AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
-
-################################################################################
-#
-# Pcd Section - list of all EDK II PCD Entries defined by this Platform
-#
-################################################################################
-
-[PcdsFeatureFlag.common]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
-
-[PcdsFixedAtBuild.common]
-  gArmPlatformTokenSpaceGuid.PcdCoreCount|4
-  gArmTokenSpaceGuid.PcdVFPEnabled|1
-
-  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
-  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
-  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
-
-  # Size of the region used by UEFI in permanent memory (Reserved 64MB)
-  gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
-  #
-  # 0x00000000 - 0x001F0000  FD (PcdFdBaseAddress, PcdFdSize)
-  # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize)
-  # 0x00200000 - ...        RAM (PcdSystemMemoryBase, PcdSystemMemorySize)
-  #
-  # This matches PcdFvBaseAddress, since everything less is the FD, and
-  # will be reserved away.
-  #
-  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00200000
-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fe00000
-
-  #
-  # Device specific addresses
-  #
-  gBcm27xxTokenSpaceGuid.PcdBcm27xxRegistersAddress|0xfc000000
-  gBcm27xxTokenSpaceGuid.PcdBcmGenetRegistersAddress|0xfd580000
-  gBcm283xTokenSpaceGuid.PcdBcm283xRegistersAddress|0xfe000000
-
-  # PCIe specific addresses
-  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciRegBase|0xfd500000
-  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciBusMmioAdr|0xf8000000
-  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciBusMmioLen|0x3ffffff
-  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciCpuMmioAdr|0x600000000
-
-  # UARTs
-  gArmPlatformTokenSpaceGuid.PL011UartInteger|0
-  gArmPlatformTokenSpaceGuid.PL011UartFractional|0
-  gArmPlatformTokenSpaceGuid.PL011UartClkInHz|48000000
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|1000000000
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|0x27
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|8
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
-
-  #
-  # ARM General Interrupt Controller
-  #
-  gArmTokenSpaceGuid.PcdGicDistributorBase|0xFF841000
-  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xFF842000
-  gRaspberryPiTokenSpaceGuid.PcdGicInterruptInterfaceHBase|0xFF844000
-  gRaspberryPiTokenSpaceGuid.PcdGicInterruptInterfaceVBase|0xFF846000
-  gRaspberryPiTokenSpaceGuid.PcdGicGsivId|0x19
-  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq0|0x30
-  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq1|0x31
-  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq2|0x32
-  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq3|0x33
-
-  #
-  # Fixed CPU settings.
-  #
-  gRaspberryPiTokenSpaceGuid.PcdCpuLowSpeedMHz|800
-  gRaspberryPiTokenSpaceGuid.PcdCpuDefSpeedMHz|1500
-  gRaspberryPiTokenSpaceGuid.PcdCpuMaxSpeedMHz|2200
-
-  ## Default Terminal Type
-  ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
-  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
-
-  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
-  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
-
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"EDK2"
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
-
-[PcdsDynamicHii.common.DEFAULT]
-
-  #
-  # Clock overrides.
-  #
-
-  gRaspberryPiTokenSpaceGuid.PcdCpuClock|L"CpuClock"|gConfigDxeFormSetGuid|0x0|1
-  gRaspberryPiTokenSpaceGuid.PcdCustomCpuClock|L"CustomCpuClock"|gConfigDxeFormSetGuid|0x0|gRaspberryPiTokenSpaceGuid.PcdCpuDefSpeedMHz
-
-  #
-  # SD-related.
-  #
-
-  gRaspberryPiTokenSpaceGuid.PcdSdIsArasan|L"SdIsArasan"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdMmcForce1Bit|L"MmcForce1Bit"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdMmcForceDefaultSpeed|L"MmcForceDefaultSpeed"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdMmcSdDefaultSpeedMHz|L"MmcSdDefaultSpeedMHz"|gConfigDxeFormSetGuid|0x0|25
-  gRaspberryPiTokenSpaceGuid.PcdMmcSdHighSpeedMHz|L"MmcSdHighSpeedMHz"|gConfigDxeFormSetGuid|0x0|50
-  gRaspberryPiTokenSpaceGuid.PcdMmcDisableMulti|L"MmcDisableMulti"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdMmcEnableDma|L"MmcEnableDma"|gConfigDxeFormSetGuid|0x0|0
-
-  #
-  # Debug-related.
-  #
-
-  gRaspberryPiTokenSpaceGuid.PcdDebugEnableJTAG|L"DebugEnableJTAG"|gConfigDxeFormSetGuid|0x0|0
-
-  #
-  # Display-related.
-  #
-
-  #
-  # Just enable native resolution by default.
-  #
-  gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes|L"DisplayEnableScaledVModes"|gConfigDxeFormSetGuid|0x0|0x20
-  gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|L"DisplayEnableSShot"|gConfigDxeFormSetGuid|0x0|1
-
-  #
-  # Supporting > 3GB of memory.
-  #
-  gRaspberryPiTokenSpaceGuid.PcdRamMoreThan3GB|L"RamMoreThan3GB"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdRamLimitTo3GB|L"RamLimitTo3GB"|gConfigDxeFormSetGuid|0x0|1
-
-  #
-  # Device Tree and ACPI selection.
-  #
-  # 0 - SYSTEM_TABLE_MODE_ACPI (default)
-  # 1 - SYSTEM_TABLE_MODE_BOTH
-  # 2 - SYSTEM_TABLE_MODE_DT
-  #
-  gRaspberryPiTokenSpaceGuid.PcdSystemTableMode|L"SystemTableMode"|gConfigDxeFormSetGuid|0x0|0
-
-  #
-  # Enable a fan in the ACPI thermal zone on GPIO pin #
-  #
-  # 0  - DISABLED
-  # 19 - Enabled on pin 19
-  #
-  gRaspberryPiTokenSpaceGuid.PcdFanOnGpio|L"FanOnGpio"|gConfigDxeFormSetGuid|0x0|0
-  gRaspberryPiTokenSpaceGuid.PcdFanTemp|L"FanTemp"|gConfigDxeFormSetGuid|0x0|60
-
-  #
-  # Reset-related.
-  #
-
-  gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay|L"ResetDelay"|gRaspberryPiTokenSpaceGuid|0x0|0
-
-  #
-  # Common UEFI ones.
-  #
-
-  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5
-  #
-  # This is silly, but by pointing SetupConXXX and ConXXX PCDs to
-  # the same variables, I can use the graphical configuration to
-  # change the mode used by ConSplitter.
-  #
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn|L"Columns"|gRaspberryPiTokenSpaceGuid|0x0|80
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Columns"|gRaspberryPiTokenSpaceGuid|0x0|80
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow|L"Rows"|gRaspberryPiTokenSpaceGuid|0x0|25
-  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|L"Rows"|gRaspberryPiTokenSpaceGuid|0x0|25
-
-[PcdsDynamicDefault.common]
-  #
-  # Set video resolution for boot options and for text setup.
-  #
-  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
-  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
-
-################################################################################
-#
-# Components Section - list of all EDK II Modules needed by this Platform
-#
-################################################################################
-[Components.common]
-  #
-  # PEI Phase modules
-  #
-  ArmPlatformPkg/PrePi/PeiUniCore.inf {
-    <LibraryClasses>
-      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
-  }
-
-  #
-  # DXE
-  #
-  MdeModulePkg/Core/Dxe/DxeMain.inf {
-    <LibraryClasses>
-      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
-  }
-  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
-    <LibraryClasses>
-      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  }
-
-  #
-  # Architectural Protocols
-  #
-  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
-  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
-  Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf
-  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
-  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
-    <LibraryClasses>
-      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
-      DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  }
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
-    <LibraryClasses>
-      NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
-  }
-  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
-!else
-  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
-!endif
-  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
-  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
-  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
-  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
-    <LibraryClasses>
-      RealTimeClockLib|EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
-  }
-  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
-
-  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
-  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
-  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
-  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
-    <LibraryClasses>
-      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
-  }
-  Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf
-  EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf
-
-  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
-
-  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
-  Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf
-  Platform/RaspberryPi/Drivers/FdtDxe/FdtDxe.inf
-  Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf
-  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
-  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
-  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
-
-  #
-  # FAT filesystem + GPT/MBR partitioning
-  #
-  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
-  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
-  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
-  FatPkg/EnhancedFatDxe/Fat.inf
-
-  #
-  # ACPI Support
-  #
-  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
-  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
-  Platform/RaspberryPi/AcpiTables/AcpiTables.inf
-
-  #
-  # SMBIOS Support
-  #
-  Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
-  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
-
-  #
-  # RAM Disk Support
-  #
-  MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
-
-  #
-  # Bds
-  #
-  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
-  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
-  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
-  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
-  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
-  Platform/RaspberryPi/Drivers/LogoDxe/LogoDxe.inf
-  MdeModulePkg/Application/UiApp/UiApp.inf {
-    <LibraryClasses>
-      NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
-      NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
-      NULL|Platform/RaspberryPi/Library/PlatformUiAppLib/PlatformUiAppLib.inf
-      NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
-  }
-
-  #
-  # SCSI Bus and Disk Driver
-  #
-  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
-  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
-
-  #
-  # USB Support
-  #
-  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
-  Platform/RaspberryPi/Drivers/DwUsbHostDxe/DwUsbHostDxe.inf
-  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
-  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
-  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
-
-  #
-  # SD/MMC support
-  #
-  # Platform/RaspberryPi/Drivers/SdHostDxe/SdHostDxe.inf
-  Platform/RaspberryPi/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.inf
-  Platform/RaspberryPi/Drivers/MmcDxe/MmcDxe.inf
-
-  #
-  # Networking stack
-  #
-!include NetworkPkg/Network.dsc.inc
-  Silicon/Broadcom/Drivers/Net/BcmGenetDxe/BcmGenetDxe.inf {
-    <PcdsFixedAtBuild>
-      gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x00000000
-      gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xffffffff
-  }
-
-  #
-  # RNG
-  #
-  Silicon/Broadcom/Bcm283x/Drivers/Bcm2838RngDxe/Bcm2838RngDxe.inf
-
-  #
-  # PCI Support
-  #
-  ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
-  MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
-  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
-  EmbeddedPkg/Drivers/NonCoherentIoMmuDxe/NonCoherentIoMmuDxe.inf {
-    <PcdsFixedAtBuild>
-      gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x00000000
-      gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xbfffffff
-  }
-
-  #
-  # UEFI application (Shell Embedded Boot Loader)
-  #
-  ShellPkg/Application/Shell/Shell.inf {
-    <LibraryClasses>
-      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
-      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
-      NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
-      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
-      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
-
-    <PcdsFixedAtBuild>
-      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
-      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
-      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
-      gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x200000
-  }
-!if $(INCLUDE_TFTP_COMMAND) == TRUE
-  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf  {
-    <PcdsFixedAtBuild>
-      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
-  }
-!endif
diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc.rej b/Platform/RaspberryPi/RPi4/RPi4.dsc.rej
deleted file mode 100644
index 0b40df6896..0000000000
--- a/Platform/RaspberryPi/RPi4/RPi4.dsc.rej
+++ /dev/null
@@ -1,29 +0,0 @@
---- Platform/RaspberryPi/RPi4/RPi4.dsc
-+++ Platform/RaspberryPi/RPi4/RPi4.dsc
-@@ -429,7 +429,6 @@ [PcdsFixedAtBuild.common]
-   gArmPlatformTokenSpaceGuid.PL011UartClkInHz|48000000
-   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
-   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
--  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|1000000000
-   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|0x27
-   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|8
-   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
-@@ -465,6 +464,9 @@ [PcdsFixedAtBuild.common]
-   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"EDK2"
-   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
- 
-+[PcdsPatchableInModule]
-+  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|500000000
-+
- [PcdsDynamicHii.common.DEFAULT]
- 
-   #
-@@ -621,7 +623,7 @@ [Components.common]
-   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
-     <LibraryClasses>
--      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
-+      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortDxeLib.inf
-   }
-   Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf
-   EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [edk2-platforms PATCH v2] Platform/RaspberryPi: Remove unnecessary files.
  2021-08-17  7:26 [edk2-platforms PATCH v2] Platform/RaspberryPi: Remove unnecessary files Grzegorz Bernacki
@ 2021-08-17 14:03 ` Ard Biesheuvel
  0 siblings, 0 replies; 2+ messages in thread
From: Ard Biesheuvel @ 2021-08-17 14:03 UTC (permalink / raw)
  To: Grzegorz Bernacki
  Cc: edk2-devel-groups-io, Leif Lindholm, Ard Biesheuvel,
	Samer El-Haj-Mahmoud, Sunny Wang, Marcin Wojtas, upstream,
	Peter Batard

On Tue, 17 Aug 2021 at 09:26, Grzegorz Bernacki <gjb@semihalf.com> wrote:
>
> Commit 2f0188b56ef4 ("Revert "Platform/RaspberryPi: Setup option for...")
> mistakenly introduced to files which are residues from a
> conflict resolution. Fix that.
>
> Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>

Pushed as b291607503dc..f24aa7708d9b

Thanks,

> ---
>  Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig   | 613 ----------------
>  Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej    |  31 -
>  Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig | 180 -----
>  Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej  |  32 -
>  Platform/RaspberryPi/RPi4/RPi4.dsc.orig                                   | 760 --------------------
>  Platform/RaspberryPi/RPi4/RPi4.dsc.rej                                    |  29 -
>  6 files changed, 1645 deletions(-)
>  delete mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
>  delete mode 100644 Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
>  delete mode 100644 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
>  delete mode 100644 Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
>  delete mode 100644 Platform/RaspberryPi/RPi4/RPi4.dsc.orig
>  delete mode 100644 Platform/RaspberryPi/RPi4/RPi4.dsc.rej
>
> diff --git a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig b/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
> deleted file mode 100644
> index 5e83bbf022..0000000000
> --- a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.orig
> +++ /dev/null
> @@ -1,613 +0,0 @@
> -/** @file
> -  16550 and PL011 Serial Port library functions for Raspberry Pi
> -
> -  Copyright (c) 2020, Pete Batard <pete@akeo.ie>
> -  Copyright (c) 2018, AMD Incorporated. All rights reserved.<BR>
> -  Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
> -  Copyright (c) 2012 - 2016, ARM Ltd. All rights reserved.<BR>
> -  Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
> -  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> -
> -  SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#include <Base.h>
> -#include <Library/IoLib.h>
> -#include <Library/PcdLib.h>
> -#include <Library/PL011UartClockLib.h>
> -#include <Library/PL011UartLib.h>
> -#include <Library/SerialPortLib.h>
> -
> -#include "DualSerialPortLib.h"
> -
> -/**
> -  Return the baud generator divisor to use for 16650 setup.
> -
> -  @param  SerialBaudRate The desired baud rate.
> -
> -  @return The baud generator divisor.
> -**/
> -STATIC
> -UINT32
> -SerialPortGetDivisor (
> -  UINT32  SerialBaudRate
> -)
> -{
> -  UINT64              BaseClockRate;
> -  UINT32              Divisor;
> -
> -  //
> -  // On the Raspberry Pi, the clock to use for the 16650-compatible UART
> -  // is the base clock divided by the 12.12 fixed point VPU clock divisor.
> -  //
> -  BaseClockRate = (UINT64)PcdGet32 (PcdSerialClockRate);
> -#if (RPI_MODEL == 4)
> -  Divisor = MmioRead32(BCM2836_CM_BASE + BCM2836_CM_VPU_CLOCK_DIVISOR) & 0xFFFFFF;
> -  if (Divisor != 0)
> -    BaseClockRate = (BaseClockRate << 12) / Divisor;
> -#endif
> -
> -  //
> -  // As per the BCM2xxx datasheets:
> -  // baudrate = system_clock_freq / (8 * (divisor + 1)).
> -  //
> -  Divisor = (UINT32)BaseClockRate / (SerialBaudRate * 8);
> -  if (Divisor != 0) {
> -    Divisor--;
> -  }
> -  return Divisor;
> -}
> -
> -/**
> -  Initialize the serial device hardware.
> -
> -  If no initialization is required, then return RETURN_SUCCESS.
> -  If the serial device was successfully initialized, then return RETURN_SUCCESS.
> -  If the serial device could not be initialized, then return RETURN_DEVICE_ERROR.
> -
> -  @retval RETURN_SUCCESS        The serial device was initialized.
> -  @retval RETURN_DEVICE_ERROR   The serial device could not be initialized.
> -
> -**/
> -RETURN_STATUS
> -EFIAPI
> -SerialPortInitialize (
> -  VOID
> -  )
> -{
> -  UINTN               SerialRegisterBase;
> -  UINT32              Divisor;
> -  UINT32              CurrentDivisor;
> -  BOOLEAN             Initialized;
> -  UINT64              BaudRate;
> -  UINT32              ReceiveFifoDepth;
> -  EFI_PARITY_TYPE     Parity;
> -  UINT8               DataBits;
> -  EFI_STOP_BITS_TYPE  StopBits;
> -
> -  //
> -  // First thing we need to do is determine which of PL011 or miniUART is selected
> -  //
> -  if (!UsePl011UartSet) {
> -    UsePl011Uart = ((MmioRead32(GPIO_BASE_ADDRESS + 4) & 0x0003F000) == 0x00024000);
> -    UsePl011UartSet = TRUE;
> -  }
> -
> -  if (UsePl011Uart) {
> -    BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
> -    ReceiveFifoDepth = 0;         // Use default FIFO depth
> -    Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
> -    DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
> -    StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
> -
> -    return PL011UartInitializePort (
> -             PL011_UART_REGISTER_BASE,
> -             PL011UartClockGetFreq(),
> -             &BaudRate,
> -             &ReceiveFifoDepth,
> -             &Parity,
> -             &DataBits,
> -             &StopBits
> -             );
> -  } else {
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -    Divisor = SerialPortGetDivisor (PcdGet32 (PcdSerialBaudRate));
> -
> -    //
> -    // See if the serial port is already initialized
> -    //
> -    Initialized = TRUE;
> -    if ((SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) & 0x3F) != (PcdGet8 (PcdSerialLineControl) & 0x3F)) {
> -      Initialized = FALSE;
> -    }
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) | B_UART_LCR_DLAB));
> -    CurrentDivisor =  SerialPortReadRegister (SerialRegisterBase, R_UART_BAUD_HIGH) << 8;
> -    CurrentDivisor |= (UINT32) SerialPortReadRegister (SerialRegisterBase, R_UART_BAUD_LOW);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_LCR) & ~B_UART_LCR_DLAB));
> -    if (CurrentDivisor != Divisor) {
> -      Initialized = FALSE;
> -    }
> -    if (Initialized) {
> -      return RETURN_SUCCESS;
> -    }
> -
> -    //
> -    // Wait for the serial port to be ready.
> -    // Verify that both the transmit FIFO and the shift register are empty.
> -    //
> -    while ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) != (B_UART_LSR_TEMT | B_UART_LSR_TXRDY));
> -
> -    //
> -    // Configure baud rate
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, B_UART_LCR_DLAB);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_HIGH, (UINT8) (Divisor >> 8));
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_LOW, (UINT8) (Divisor & 0xff));
> -
> -    //
> -    // Clear DLAB and configure Data Bits, Parity, and Stop Bits.
> -    // Strip reserved bits from PcdSerialLineControl
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8)(PcdGet8 (PcdSerialLineControl) & 0x3F));
> -
> -    //
> -    // Enable and reset FIFOs
> -    // Strip reserved bits from PcdSerialFifoControl
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_FCR, 0x00);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_FCR, (UINT8)(PcdGet8 (PcdSerialFifoControl) & (B_UART_FCR_FIFOE | B_UART_FCR_FIFO64)));
> -
> -    //
> -    // Set FIFO Polled Mode by clearing IER after setting FCR
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_IER, 0x00);
> -
> -    //
> -    // Put Modem Control Register(MCR) into its reset state of 0x00.
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, 0x00);
> -
> -    return RETURN_SUCCESS;
> -  }
> -}
> -
> -/**
> -  Reads data from a serial device into a buffer.
> -
> -  @param  Buffer           Pointer to the data buffer to store the data read from the serial device.
> -  @param  NumberOfBytes    Number of bytes to read from the serial device.
> -
> -  @retval 0                NumberOfBytes is 0.
> -  @retval >0               The number of bytes read from the serial device.
> -                           If this value is less than NumberOfBytes, then the read operation failed.
> -
> -**/
> -UINTN
> -EFIAPI
> -SerialPortRead (
> -  OUT UINT8     *Buffer,
> -  IN  UINTN     NumberOfBytes
> -  )
> -{
> -  UINTN  SerialRegisterBase;
> -  UINTN  Result;
> -  UINT8  Mcr;
> -
> -  if (UsePl011Uart) {
> -    return PL011UartRead (PL011_UART_REGISTER_BASE, Buffer, NumberOfBytes);
> -  } else {
> -    if (NULL == Buffer) {
> -      return 0;
> -    }
> -
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -
> -    Mcr = (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) & ~B_UART_MCR_RTS);
> -
> -    for (Result = 0; NumberOfBytes-- != 0; Result++, Buffer++) {
> -      //
> -      // Wait for the serial port to have some data.
> -      //
> -      while ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & B_UART_LSR_RXRDY) == 0) {
> -        if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
> -          //
> -          // Set RTS to let the peer send some data
> -          //
> -          SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(Mcr | B_UART_MCR_RTS));
> -        }
> -      }
> -      if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
> -        //
> -        // Clear RTS to prevent peer from sending data
> -        //
> -        SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, Mcr);
> -      }
> -
> -      //
> -      // Read byte from the receive buffer.
> -      //
> -      *Buffer = SerialPortReadRegister (SerialRegisterBase, R_UART_RXBUF);
> -    }
> -
> -    return Result;
> -  }
> -}
> -
> -/**
> -  Polls a serial device to see if there is any data waiting to be read.
> -
> -  Polls aserial device to see if there is any data waiting to be read.
> -  If there is data waiting to be read from the serial device, then TRUE is returned.
> -  If there is no data waiting to be read from the serial device, then FALSE is returned.
> -
> -  @retval TRUE             Data is waiting to be read from the serial device.
> -  @retval FALSE            There is no data waiting to be read from the serial device.
> -
> -**/
> -BOOLEAN
> -EFIAPI
> -SerialPortPoll (
> -  VOID
> -  )
> -{
> -  UINTN  SerialRegisterBase;
> -
> -  if (UsePl011Uart) {
> -    return PL011UartPoll (PL011_UART_REGISTER_BASE);
> -  } else {
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -
> -    //
> -    // Read the serial port status
> -    //
> -    if ((SerialPortReadRegister (SerialRegisterBase, R_UART_LSR) & B_UART_LSR_RXRDY) != 0) {
> -      if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
> -        //
> -        // Clear RTS to prevent peer from sending data
> -        //
> -        SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) & ~B_UART_MCR_RTS));
> -      }
> -      return TRUE;
> -    }
> -
> -    if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
> -      //
> -      // Set RTS to let the peer send some data
> -      //
> -      SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, (UINT8)(SerialPortReadRegister (SerialRegisterBase, R_UART_MCR) | B_UART_MCR_RTS));
> -    }
> -
> -    return FALSE;
> -  }
> -}
> -
> -/**
> -  Sets the control bits on a serial device.
> -
> -  @param Control                Sets the bits of Control that are settable.
> -
> -  @retval RETURN_SUCCESS        The new control bits were set on the serial device.
> -  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
> -  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
> -
> -**/
> -RETURN_STATUS
> -EFIAPI
> -SerialPortSetControl (
> -  IN UINT32 Control
> -  )
> -{
> -  UINTN SerialRegisterBase;
> -  UINT8 Mcr;
> -
> -  if (UsePl011Uart) {
> -    return PL011UartSetControl (PL011_UART_REGISTER_BASE, Control);
> -  } else {
> -    //
> -    // First determine the parameter is invalid.
> -    //
> -    if ((Control & (~(EFI_SERIAL_REQUEST_TO_SEND | EFI_SERIAL_DATA_TERMINAL_READY |
> -                      EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE))) != 0) {
> -      return RETURN_UNSUPPORTED;
> -    }
> -
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -
> -    //
> -    // Read the Modem Control Register.
> -    //
> -    Mcr = SerialPortReadRegister (SerialRegisterBase, R_UART_MCR);
> -    Mcr &= (~(B_UART_MCR_DTRC | B_UART_MCR_RTS));
> -
> -    if ((Control & EFI_SERIAL_DATA_TERMINAL_READY) == EFI_SERIAL_DATA_TERMINAL_READY) {
> -      Mcr |= B_UART_MCR_DTRC;
> -    }
> -
> -    if ((Control & EFI_SERIAL_REQUEST_TO_SEND) == EFI_SERIAL_REQUEST_TO_SEND) {
> -      Mcr |= B_UART_MCR_RTS;
> -    }
> -
> -    //
> -    // Write the Modem Control Register.
> -    //
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_MCR, Mcr);
> -
> -    return RETURN_SUCCESS;
> -  }
> -}
> -
> -/**
> -  Retrieve the status of the control bits on a serial device.
> -
> -  @param Control                A pointer to return the current control signals from the serial device.
> -
> -  @retval RETURN_SUCCESS        The control bits were read from the serial device.
> -  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
> -  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
> -
> -**/
> -RETURN_STATUS
> -EFIAPI
> -SerialPortGetControl (
> -  OUT UINT32 *Control
> -  )
> -{
> -  UINTN SerialRegisterBase;
> -  UINT8 Msr;
> -  UINT8 Mcr;
> -  UINT8 Lsr;
> -
> -  if (UsePl011Uart) {
> -    return PL011UartGetControl (PL011_UART_REGISTER_BASE, Control);
> -  } else {
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -
> -    *Control = 0;
> -
> -    //
> -    // Read the Modem Status Register.
> -    //
> -    Msr = SerialPortReadRegister (SerialRegisterBase, R_UART_MSR);
> -
> -    if ((Msr & B_UART_MSR_CTS) == B_UART_MSR_CTS) {
> -      *Control |= EFI_SERIAL_CLEAR_TO_SEND;
> -    }
> -
> -    if ((Msr & B_UART_MSR_DSR) == B_UART_MSR_DSR) {
> -      *Control |= EFI_SERIAL_DATA_SET_READY;
> -    }
> -
> -    if ((Msr & B_UART_MSR_RI) == B_UART_MSR_RI) {
> -      *Control |= EFI_SERIAL_RING_INDICATE;
> -    }
> -
> -    if ((Msr & B_UART_MSR_DCD) == B_UART_MSR_DCD) {
> -      *Control |= EFI_SERIAL_CARRIER_DETECT;
> -    }
> -
> -    //
> -    // Read the Modem Control Register.
> -    //
> -    Mcr = SerialPortReadRegister (SerialRegisterBase, R_UART_MCR);
> -
> -    if ((Mcr & B_UART_MCR_DTRC) == B_UART_MCR_DTRC) {
> -      *Control |= EFI_SERIAL_DATA_TERMINAL_READY;
> -    }
> -
> -    if ((Mcr & B_UART_MCR_RTS) == B_UART_MCR_RTS) {
> -      *Control |= EFI_SERIAL_REQUEST_TO_SEND;
> -    }
> -
> -    if (PcdGetBool (PcdSerialUseHardwareFlowControl)) {
> -      *Control |= EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE;
> -    }
> -
> -    //
> -    // Read the Line Status Register.
> -    //
> -    Lsr = SerialPortReadRegister (SerialRegisterBase, R_UART_LSR);
> -
> -    if ((Lsr & (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) == (B_UART_LSR_TEMT | B_UART_LSR_TXRDY)) {
> -      *Control |= EFI_SERIAL_OUTPUT_BUFFER_EMPTY;
> -    }
> -
> -    if ((Lsr & B_UART_LSR_RXRDY) == 0) {
> -      *Control |= EFI_SERIAL_INPUT_BUFFER_EMPTY;
> -    }
> -
> -    return RETURN_SUCCESS;
> -  }
> -}
> -
> -/**
> -  Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
> -  data bits, and stop bits on a serial device.
> -
> -  @param BaudRate           The requested baud rate. A BaudRate value of 0 will use the
> -                            device's default interface speed.
> -                            On output, the value actually set.
> -  @param ReveiveFifoDepth   The requested depth of the FIFO on the receive side of the
> -                            serial interface. A ReceiveFifoDepth value of 0 will use
> -                            the device's default FIFO depth.
> -                            On output, the value actually set.
> -  @param Timeout            The requested time out for a single character in microseconds.
> -                            This timeout applies to both the transmit and receive side of the
> -                            interface. A Timeout value of 0 will use the device's default time
> -                            out value.
> -                            On output, the value actually set.
> -  @param Parity             The type of parity to use on this serial device. A Parity value of
> -                            DefaultParity will use the device's default parity value.
> -                            On output, the value actually set.
> -  @param DataBits           The number of data bits to use on the serial device. A DataBits
> -                            vaule of 0 will use the device's default data bit setting.
> -                            On output, the value actually set.
> -  @param StopBits           The number of stop bits to use on this serial device. A StopBits
> -                            value of DefaultStopBits will use the device's default number of
> -                            stop bits.
> -                            On output, the value actually set.
> -
> -  @retval RETURN_SUCCESS            The new attributes were set on the serial device.
> -  @retval RETURN_UNSUPPORTED        The serial device does not support this operation.
> -  @retval RETURN_INVALID_PARAMETER  One or more of the attributes has an unsupported value.
> -  @retval RETURN_DEVICE_ERROR       The serial device is not functioning correctly.
> -
> -**/
> -RETURN_STATUS
> -EFIAPI
> -SerialPortSetAttributes (
> -  IN OUT UINT64             *BaudRate,
> -  IN OUT UINT32             *ReceiveFifoDepth,
> -  IN OUT UINT32             *Timeout,
> -  IN OUT EFI_PARITY_TYPE    *Parity,
> -  IN OUT UINT8              *DataBits,
> -  IN OUT EFI_STOP_BITS_TYPE *StopBits
> -  )
> -{
> -  UINTN     SerialRegisterBase;
> -  UINT32    SerialBaudRate;
> -  UINTN     Divisor;
> -  UINT8     Lcr;
> -  UINT8     LcrData;
> -  UINT8     LcrParity;
> -  UINT8     LcrStop;
> -
> -  if (UsePl011Uart) {
> -    return PL011UartInitializePort (
> -             PL011_UART_REGISTER_BASE,
> -             PL011UartClockGetFreq(),
> -             BaudRate,
> -             ReceiveFifoDepth,
> -             Parity,
> -             DataBits,
> -             StopBits
> -             );
> -  } else {
> -    SerialRegisterBase = MINI_UART_REGISTER_BASE;
> -
> -    //
> -    // Check for default settings and fill in actual values.
> -    //
> -    if (*BaudRate == 0) {
> -      *BaudRate = PcdGet32 (PcdSerialBaudRate);
> -    }
> -    SerialBaudRate = (UINT32) *BaudRate;
> -
> -    if (*DataBits == 0) {
> -      LcrData = (UINT8) (PcdGet8 (PcdSerialLineControl) & 0x3);
> -      *DataBits = LcrData + 5;
> -    } else {
> -      if ((*DataBits < 5) || (*DataBits > 8)) {
> -        return RETURN_INVALID_PARAMETER;
> -      }
> -      //
> -      // Map 5..8 to 0..3
> -      //
> -      LcrData = (UINT8) (*DataBits - (UINT8) 5);
> -    }
> -
> -    if (*Parity == DefaultParity) {
> -      LcrParity = (UINT8) ((PcdGet8 (PcdSerialLineControl) >> 3) & 0x7);
> -      switch (LcrParity) {
> -        case 0:
> -          *Parity = NoParity;
> -          break;
> -
> -        case 3:
> -          *Parity = EvenParity;
> -          break;
> -
> -        case 1:
> -          *Parity = OddParity;
> -          break;
> -
> -        case 7:
> -          *Parity = SpaceParity;
> -          break;
> -
> -        case 5:
> -          *Parity = MarkParity;
> -          break;
> -
> -        default:
> -          break;
> -      }
> -    } else {
> -      switch (*Parity) {
> -        case NoParity:
> -          LcrParity = 0;
> -          break;
> -
> -        case EvenParity:
> -          LcrParity = 3;
> -          break;
> -
> -        case OddParity:
> -          LcrParity = 1;
> -          break;
> -
> -        case SpaceParity:
> -          LcrParity = 7;
> -          break;
> -
> -        case MarkParity:
> -          LcrParity = 5;
> -          break;
> -
> -        default:
> -          return RETURN_INVALID_PARAMETER;
> -      }
> -    }
> -
> -    if (*StopBits == DefaultStopBits) {
> -      LcrStop = (UINT8) ((PcdGet8 (PcdSerialLineControl) >> 2) & 0x1);
> -      switch (LcrStop) {
> -        case 0:
> -          *StopBits = OneStopBit;
> -          break;
> -
> -        case 1:
> -          if (*DataBits == 5) {
> -            *StopBits = OneFiveStopBits;
> -          } else {
> -            *StopBits = TwoStopBits;
> -          }
> -          break;
> -
> -        default:
> -          break;
> -      }
> -    } else {
> -      switch (*StopBits) {
> -        case OneStopBit:
> -          LcrStop = 0;
> -          break;
> -
> -        case OneFiveStopBits:
> -        case TwoStopBits:
> -          LcrStop = 1;
> -          break;
> -
> -        default:
> -          return RETURN_INVALID_PARAMETER;
> -      }
> -    }
> -
> -    //
> -    // Configure baud rate
> -    //
> -    Divisor = SerialPortGetDivisor (SerialBaudRate);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, B_UART_LCR_DLAB);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_HIGH, (UINT8) (Divisor >> 8));
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_BAUD_LOW, (UINT8) (Divisor & 0xff));
> -
> -    //
> -    // Clear DLAB and configure Data Bits, Parity, and Stop Bits.
> -    // Strip reserved bits from line control value
> -    //
> -    Lcr = (UINT8) ((LcrParity << 3) | (LcrStop << 2) | LcrData);
> -    SerialPortWriteRegister (SerialRegisterBase, R_UART_LCR, (UINT8) (Lcr & 0x3F));
> -
> -    return RETURN_SUCCESS;
> -  }
> -}
> diff --git a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej b/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
> deleted file mode 100644
> index fd8a1b2f20..0000000000
> --- a/Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c.rej
> +++ /dev/null
> @@ -1,31 +0,0 @@
> ---- Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c
> -+++ Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.c
> -@@ -34,25 +34,16 @@ SerialPortGetDivisor (
> -   UINT32  SerialBaudRate
> - )
> - {
> --  UINT64              BaseClockRate;
> -+  UINT32              BaseClockRate;
> -   UINT32              Divisor;
> -
> --  //
> --  // On the Raspberry Pi, the clock to use for the 16650-compatible UART
> --  // is the base clock divided by the 12.12 fixed point VPU clock divisor.
> --  //
> --  BaseClockRate = (UINT64)PcdGet32 (PcdSerialClockRate);
> --#if (RPI_MODEL == 4)
> --  Divisor = MmioRead32(BCM2836_CM_BASE + BCM2836_CM_VPU_CLOCK_DIVISOR) & 0xFFFFFF;
> --  if (Divisor != 0)
> --    BaseClockRate = (BaseClockRate << 12) / Divisor;
> --#endif
> -+  BaseClockRate = PcdGet32 (PcdSerialClockRate);
> -
> -   //
> -   // As per the BCM2xxx datasheets:
> -   // baudrate = system_clock_freq / (8 * (divisor + 1)).
> -   //
> --  Divisor = (UINT32)BaseClockRate / (SerialBaudRate * 8);
> -+  Divisor = BaseClockRate / (SerialBaudRate * 8);
> -   if (Divisor != 0) {
> -     Divisor--;
> -   }
> diff --git a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig b/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
> deleted file mode 100644
> index 58351e4fb8..0000000000
> --- a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.orig
> +++ /dev/null
> @@ -1,180 +0,0 @@
> -/** @file
> - *
> - *  Copyright (c) 2020, Andrei Warkentin <andrey.warkentin@gmail.com>
> - *  Copyright (c) 2019-2020, Pete Batard <pete@akeo.ie>
> - *  Copyright (c) 2016, Linaro Limited. All rights reserved.
> - *  Copyright (c) 2011-2020, ARM Limited. All rights reserved.
> - *
> - *  SPDX-License-Identifier: BSD-2-Clause-Patent
> - *
> - **/
> -
> -#include <AsmMacroIoLibV8.h>
> -#include <Library/ArmLib.h>
> -#include <IndustryStandard/Bcm2836.h>
> -#include <IndustryStandard/RpiMbox.h>
> -
> -    .macro  drain
> -    mov     x5, #RPI_MBOX_MAX_TRIES
> -0:  ldr     w6, [x4, #BCM2836_MBOX_STATUS_OFFSET]
> -    tbnz    w6, #BCM2836_MBOX_STATUS_EMPTY, 1f
> -    dmb     ld
> -    ldr     wzr, [x4, #BCM2836_MBOX_READ_OFFSET]
> -    subs    x5, x5, #1
> -    b.ne    0b
> -1:
> -    .endm
> -
> -    .macro  poll, status
> -    mov     x5, #RPI_MBOX_MAX_TRIES
> -0:  ldr     w6, [x4, #BCM2836_MBOX_STATUS_OFFSET]
> -    tbz     w6, #\status, 1f
> -    dmb     ld
> -    subs    x5, x5, #1
> -    b.ne    0b
> -1:
> -    .endm
> -
> -    .macro  run, command_buffer
> -    adr     x0, \command_buffer
> -    orr     x0, x0, #RPI_MBOX_VC_CHANNEL
> -    add     x0, x0, x1
> -
> -    poll    BCM2836_MBOX_STATUS_FULL
> -    str     w0, [x4, #BCM2836_MBOX_WRITE_OFFSET]
> -    dmb     sy
> -    poll    BCM2836_MBOX_STATUS_EMPTY
> -    dmb     sy
> -    ldr     wzr, [x4, #BCM2836_MBOX_READ_OFFSET]
> -    dmb     ld
> -    .endm
> -
> -ASM_FUNC (ArmPlatformPeiBootAction)
> -    mov     x1, #FixedPcdGet64 (PcdDmaDeviceOffset)
> -    orr     x0, x0, #RPI_MBOX_VC_CHANNEL
> -    // x1 holds the value of PcdDmaDeviceOffset throughout this function
> -
> -    MOV32   (x4, BCM2836_MBOX_BASE_ADDRESS)
> -
> -    drain
> -
> -    run     .Lmeminfo_buffer
> -
> -    ldr     w0, .Lmembase
> -    adr     x2, mSystemMemoryBase
> -    str     x0, [x2]
> -
> -    ldr     w0, .Lmemsize
> -    sub     x0, x0, #1
> -    adr     x2, mSystemMemoryEnd
> -    str     x0, [x2]
> -
> -    run     .Lvcinfo_buffer
> -
> -    ldr     w0, .Lvcbase
> -    adr     x2, mVideoCoreBase
> -    str     x0, [x2]
> -
> -    ldr     w0, .Lvcsize
> -    adr     x2, mVideoCoreSize
> -    str     x0, [x2]
> -
> -    run     .Lrevinfo_buffer
> -
> -    ldr     w0, .Lrevision
> -    adr     x2, mBoardRevision
> -    str     w0, [x2]
> -
> -#if (RPI_MODEL == 3)
> -    run     .Lclkinfo_buffer
> -
> -    ldr     w0, .Lfrequency
> -    adr     x2, _gPcd_BinaryPatch_PcdSerialClockRate
> -    str     w0, [x2]
> -#endif
> -
> -    ret
> -
> -    .align  4
> -.Lmeminfo_buffer:
> -    .long   .Lmeminfo_size
> -    .long   0x0
> -    .long   RPI_MBOX_GET_ARM_MEMSIZE
> -    .long   8                           // buf size
> -    .long   0                           // input len
> -.Lmembase:
> -    .long   0                           // mem base
> -.Lmemsize:
> -    .long   0                           // mem size
> -    .long   0                           // end tag
> -    .set    .Lmeminfo_size, . - .Lmeminfo_buffer
> -
> -    .align  4
> -.Lvcinfo_buffer:
> -    .long   .Lvcinfo_size
> -    .long   0x0
> -    .long   RPI_MBOX_GET_VC_MEMSIZE
> -    .long   8                           // buf size
> -    .long   0                           // input len
> -.Lvcbase:
> -    .long   0                           // videocore base
> -.Lvcsize:
> -    .long   0                           // videocore size
> -    .long   0                           // end tag
> -    .set    .Lvcinfo_size, . - .Lvcinfo_buffer
> -
> -    .align  4
> -.Lrevinfo_buffer:
> -    .long   .Lrevinfo_size
> -    .long   0x0
> -    .long   RPI_MBOX_GET_BOARD_REVISION
> -    .long   4                           // buf size
> -    .long   0                           // input len
> -.Lrevision:
> -    .long   0                           // revision
> -    .long   0                           // end tag
> -    .set    .Lrevinfo_size, . - .Lrevinfo_buffer
> -
> -#if (RPI_MODEL == 3)
> -    .align  4
> -.Lclkinfo_buffer:
> -    .long   .Lclkinfo_size
> -    .long   0x0
> -    .long   RPI_MBOX_GET_CLOCK_RATE
> -    .long   8                           // buf size
> -    .long   4                           // input len
> -    .long   4                           // clock id: 0x04 = Core/VPU
> -.Lfrequency:
> -    .long   0                           // frequency
> -    .long   0                           // end tag
> -    .set    .Lclkinfo_size, . - .Lclkinfo_buffer
> -#endif
> -
> -//UINTN
> -//ArmPlatformGetPrimaryCoreMpId (
> -//  VOID
> -//  );
> -ASM_FUNC (ArmPlatformGetPrimaryCoreMpId)
> -    MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))
> -    ret
> -
> -//UINTN
> -//ArmPlatformIsPrimaryCore (
> -//  IN UINTN MpId
> -//  );
> -ASM_FUNC (ArmPlatformIsPrimaryCore)
> -    mov   x0, #1
> -    ret
> -
> -//UINTN
> -//ArmPlatformGetCorePosition (
> -//  IN UINTN MpId
> -//  );
> -// With this function: CorePos = (ClusterId * 4) + CoreId
> -ASM_FUNC (ArmPlatformGetCorePosition)
> -    and   x1, x0, #ARM_CORE_MASK
> -    and   x0, x0, #ARM_CLUSTER_MASK
> -    add   x0, x1, x0, LSR #6
> -    ret
> -
> -ASM_FUNCTION_REMOVE_IF_UNREFERENCED
> diff --git a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej b/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
> deleted file mode 100644
> index e42851fafe..0000000000
> --- a/Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S.rej
> +++ /dev/null
> @@ -1,32 +0,0 @@
> ---- Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S
> -+++ Platform/RaspberryPi/Library/PlatformLib/AArch64/RaspberryPiHelper.S
> -@@ -85,13 +85,11 @@ ASM_FUNC (ArmPlatformPeiBootAction)
> -     adr     x2, mBoardRevision
> -     str     w0, [x2]
> -
> --#if (RPI_MODEL == 3)
> -     run     .Lclkinfo_buffer
> -
> -     ldr     w0, .Lfrequency
> -     adr     x2, _gPcd_BinaryPatch_PcdSerialClockRate
> -     str     w0, [x2]
> --#endif
> -
> -     ret
> -
> -@@ -135,7 +133,6 @@ ASM_FUNC (ArmPlatformPeiBootAction)
> -     .long   0                           // end tag
> -     .set    .Lrevinfo_size, . - .Lrevinfo_buffer
> -
> --#if (RPI_MODEL == 3)
> -     .align  4
> - .Lclkinfo_buffer:
> -     .long   .Lclkinfo_size
> -@@ -148,7 +145,6 @@ ASM_FUNC (ArmPlatformPeiBootAction)
> -     .long   0                           // frequency
> -     .long   0                           // end tag
> -     .set    .Lclkinfo_size, . - .Lclkinfo_buffer
> --#endif
> -
> - //UINTN
> - //ArmPlatformGetPrimaryCoreMpId (
> diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc.orig b/Platform/RaspberryPi/RPi4/RPi4.dsc.orig
> deleted file mode 100644
> index 2c05c31118..0000000000
> --- a/Platform/RaspberryPi/RPi4/RPi4.dsc.orig
> +++ /dev/null
> @@ -1,760 +0,0 @@
> -# @file
> -#
> -#  Copyright (c) 2011 - 2020, ARM Limited. All rights reserved.
> -#  Copyright (c) 2017 - 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
> -#  Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.
> -#  Copyright (c) 2014, Linaro Limited. All rights reserved.
> -#
> -#  SPDX-License-Identifier: BSD-2-Clause-Patent
> -#
> -##
> -
> -################################################################################
> -#
> -# Defines Section - statements that will be processed to create a Makefile.
> -#
> -################################################################################
> -[Defines]
> -  PLATFORM_NAME                  = RPi4
> -  PLATFORM_GUID                  = a7eca3b4-21b0-4989-8c18-c08f3ae87837
> -  PLATFORM_VERSION               = 1.0
> -  DSC_SPECIFICATION              = 0x0001001A
> -  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)
> -  SUPPORTED_ARCHITECTURES        = AARCH64
> -  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
> -  SKUID_IDENTIFIER               = DEFAULT
> -  FLASH_DEFINITION               = Platform/RaspberryPi/$(PLATFORM_NAME)/$(PLATFORM_NAME).fdf
> -
> -  #
> -  # Defines for default states.  These can be changed on the command line.
> -  # -D FLAG=VALUE
> -  #
> -  DEFINE SECURE_BOOT_ENABLE      = FALSE
> -  DEFINE INCLUDE_TFTP_COMMAND    = FALSE
> -  DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
> -
> -!ifndef TFA_BUILD_ARTIFACTS
> -  #
> -  # Default TF-A binary checked into edk2-non-osi.
> -  #
> -  DEFINE TFA_BUILD_BL31 = Platform/RaspberryPi/$(PLATFORM_NAME)/TrustedFirmware/bl31.bin
> -!else
> -  #
> -  # Usually we use the checked-in binaries, but for developers working
> -  # on the firmware, being able to use a local TF-A build without extra copy
> -  # operations ends up being very helpful.
> -  #
> -  DEFINE TFA_BUILD_BL31 = $(TFA_BUILD_ARTIFACTS)/bl31.bin
> -!endif
> -
> -################################################################################
> -#
> -# Library Class section - list of all Library Classes needed by this Platform.
> -#
> -################################################################################
> -
> -!include MdePkg/MdeLibs.dsc.inc
> -
> -[LibraryClasses.common]
> -!if $(TARGET) == RELEASE
> -  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> -!else
> -  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
> -!endif
> -  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
> -
> -  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
> -  SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
> -  BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
> -  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
> -  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
> -  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
> -  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
> -  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
> -  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
> -  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
> -  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
> -  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
> -
> -  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
> -  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
> -  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
> -  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
> -  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
> -  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
> -  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
> -  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
> -  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
> -  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
> -  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
> -  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
> -
> -  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
> -  OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
> -
> -  #
> -  # Ramdisk Requirements
> -  #
> -  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
> -
> -  # Allow dynamic PCDs
> -  #
> -  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
> -
> -  # use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below
> -  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
> -
> -  #
> -  # It is not possible to prevent the ARM compiler from inserting calls to intrinsic functions.
> -  # This library provides the instrinsic functions such a compiler may generate calls to.
> -  #
> -  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
> -
> -  # Add support for GCC stack protector
> -  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
> -
> -  # ARM Architectural Libraries
> -  CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
> -  DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
> -  CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
> -  ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
> -  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
> -  ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
> -  DmaLib|EmbeddedPkg/Library/NonCoherentDmaLib/NonCoherentDmaLib.inf
> -  TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
> -  ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
> -  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
> -  ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
> -  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
> -
> -  # Dual serial port library
> -  PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> -  PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
> -  SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DebugDualSerialPortLib.inf
> -
> -  # Cryptographic libraries
> -  RngLib|MdePkg/Library/DxeRngLib/DxeRngLib.inf
> -  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
> -  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
> -  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
> -  TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
> -
> -  #
> -  # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
> -  # in the debugger will show load and unload commands for symbols. You can cut and paste this
> -  # into the command window to load symbols. We should be able to use a script to do this, but
> -  # the version of RVD I have does not support scripts accessing system memory.
> -  #
> -  #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
> -  PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
> -  #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
> -
> -  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
> -  DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
> -
> -  # Flattened Device Tree (FDT) access library
> -  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
> -
> -  # USB Libraries
> -  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
> -
> -  #
> -  # Secure Boot dependencies
> -  #
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
> -  AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
> -
> -  # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
> -  PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
> -!else
> -  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
> -  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
> -!endif
> -  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
> -  VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf
> -  VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf
> -  GpioLib|Silicon/Broadcom/Bcm283x/Library/GpioLib/GpioLib.inf
> -
> -  #
> -  # PCI dependencies
> -  #
> -  # PCI root port configuation and description
> -  PciHostBridgeLib|Silicon/Broadcom/Bcm27xx/Library/Bcm2711PciHostBridgeLib/Bcm2711PciHostBridgeLib.inf
> -  # The "segment lib" provides the CAM accessors/etc when they aren't ECAM standard
> -  PciSegmentLib|Silicon/Broadcom/Bcm27xx/Library/Bcm2711PciSegmentLib/PciSegmentLib.inf
> -
> -[LibraryClasses.common.SEC]
> -  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> -  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
> -  MemoryInitPeiLib|Platform/RaspberryPi/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> -  PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
> -  ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
> -  LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
> -  PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
> -  HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
> -  PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
> -  MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
> -
> -[LibraryClasses.common.DXE_CORE]
> -  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
> -  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
> -  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
> -  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
> -  PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
> -
> -[LibraryClasses.common.DXE_DRIVER]
> -  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
> -  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
> -  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
> -!if $(INCLUDE_TFTP_COMMAND) == TRUE
> -  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> -  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> -!endif
> -
> -[LibraryClasses.common.UEFI_APPLICATION]
> -  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
> -  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
> -  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
> -  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> -  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> -
> -[LibraryClasses.common.UEFI_DRIVER]
> -  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
> -  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
> -  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
> -
> -[LibraryClasses.common.DXE_RUNTIME_DRIVER]
> -  # Runtime debug messages may crash an OS unless serial output to MMIO mapped UARTs is inhibited
> -  DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
> -  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
> -  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
> -  EfiResetSystemLib|Platform/RaspberryPi/Library/ResetLib/ResetLib.inf
> -  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
> -  VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf
> -
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> -!endif
> -
> -###################################################################################################
> -# BuildOptions Section - Define the module specific tool chain flags that should be used as
> -#                        the default flags for a module. These flags are appended to any
> -#                        standard flags that are defined by the build process.
> -###################################################################################################
> -
> -[BuildOptions]
> -  GCC:*_*_*_CC_FLAGS          = -DRPI_MODEL=4
> -  GCC:*_*_*_PP_FLAGS          = -DRPI_MODEL=4
> -  GCC:*_*_*_ASLPP_FLAGS       = -DRPI_MODEL=4
> -  GCC:*_*_*_ASLCC_FLAGS       = -DRPI_MODEL=4
> -  GCC:*_*_*_VFRPP_FLAGS       = -DRPI_MODEL=4
> -  GCC:RELEASE_*_*_CC_FLAGS    = -DMDEPKG_NDEBUG -DNDEBUG
> -
> -[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
> -  GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
> -
> -################################################################################
> -#
> -# Pcd Section - list of all EDK II PCD Entries defined by this Platform
> -#
> -################################################################################
> -
> -[PcdsFeatureFlag.common]
> -  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
> -  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
> -
> -  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
> -
> -  ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
> -  #  It could be set FALSE to save size.
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
> -  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport|FALSE
> -
> -[PcdsFixedAtBuild.common]
> -  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
> -  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
> -  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
> -  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
> -  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
> -  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
> -  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
> -  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
> -
> -  # DEBUG_ASSERT_ENABLED       0x01
> -  # DEBUG_PRINT_ENABLED        0x02
> -  # DEBUG_CODE_ENABLED         0x04
> -  # CLEAR_MEMORY_ENABLED       0x08
> -  # ASSERT_BREAKPOINT_ENABLED  0x10
> -  # ASSERT_DEADLOOP_ENABLED    0x20
> -!if $(TARGET) == RELEASE
> -  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
> -!else
> -  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
> -!endif
> -
> -  #  DEBUG_INIT      0x00000001  // Initialization
> -  #  DEBUG_WARN      0x00000002  // Warnings
> -  #  DEBUG_LOAD      0x00000004  // Load events
> -  #  DEBUG_FS        0x00000008  // EFI File system
> -  #  DEBUG_POOL      0x00000010  // Alloc & Free (pool)
> -  #  DEBUG_PAGE      0x00000020  // Alloc & Free (page)
> -  #  DEBUG_INFO      0x00000040  // Informational debug messages
> -  #  DEBUG_DISPATCH  0x00000080  // PEI/DXE/SMM Dispatchers
> -  #  DEBUG_VARIABLE  0x00000100  // Variable
> -  #  DEBUG_BM        0x00000400  // Boot Manager
> -  #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
> -  #  DEBUG_NET       0x00004000  // SNP Driver
> -  #  DEBUG_UNDI      0x00010000  // UNDI Driver
> -  #  DEBUG_LOADFILE  0x00020000  // LoadFile
> -  #  DEBUG_EVENT     0x00080000  // Event messages
> -  #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
> -  #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
> -  #  DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may
> -  #                              // significantly impact boot performance
> -  #  DEBUG_ERROR     0x80000000  // Error
> -  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
> -
> -  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
> -
> -  #
> -  # Optional feature to help prevent EFI memory map fragments
> -  # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
> -  # Values are in EFI Pages (4K). DXE Core will make sure that
> -  # at least this much of each type of memory can be allocated
> -  # from a single memory range. This way you only end up with
> -  # maximum of two fragments for each type in the memory map
> -  # (the memory used, and the free memory that was prereserved
> -  # but not used).
> -  #
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500
> -!else
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000
> -!endif
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|12000
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
> -  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
> -
> -  gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0xc0000000
> -  gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xffffffff
> -
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"EDK2-DEV"
> -
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
> -  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
> -  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
> -  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
> -!endif
> -
> -  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
> -
> -  # Default platform supported RFC 4646 languages: (American) English
> -  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes|"en-US"
> -
> -[LibraryClasses.common]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
> -  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
> -  ArmPlatformLib|Platform/RaspberryPi/Library/PlatformLib/PlatformLib.inf
> -  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
> -  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
> -  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
> -  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
> -  PlatformBootManagerLib|Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> -  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
> -  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
> -  AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
> -
> -[LibraryClasses.common.UEFI_DRIVER]
> -  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
> -
> -################################################################################
> -#
> -# Pcd Section - list of all EDK II PCD Entries defined by this Platform
> -#
> -################################################################################
> -
> -[PcdsFeatureFlag.common]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
> -
> -[PcdsFixedAtBuild.common]
> -  gArmPlatformTokenSpaceGuid.PcdCoreCount|4
> -  gArmTokenSpaceGuid.PcdVFPEnabled|1
> -
> -  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
> -
> -  # Size of the region used by UEFI in permanent memory (Reserved 64MB)
> -  gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
> -  #
> -  # 0x00000000 - 0x001F0000  FD (PcdFdBaseAddress, PcdFdSize)
> -  # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize)
> -  # 0x00200000 - ...        RAM (PcdSystemMemoryBase, PcdSystemMemorySize)
> -  #
> -  # This matches PcdFvBaseAddress, since everything less is the FD, and
> -  # will be reserved away.
> -  #
> -  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00200000
> -  gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fe00000
> -
> -  #
> -  # Device specific addresses
> -  #
> -  gBcm27xxTokenSpaceGuid.PcdBcm27xxRegistersAddress|0xfc000000
> -  gBcm27xxTokenSpaceGuid.PcdBcmGenetRegistersAddress|0xfd580000
> -  gBcm283xTokenSpaceGuid.PcdBcm283xRegistersAddress|0xfe000000
> -
> -  # PCIe specific addresses
> -  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciRegBase|0xfd500000
> -  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciBusMmioAdr|0xf8000000
> -  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciBusMmioLen|0x3ffffff
> -  gBcm27xxTokenSpaceGuid.PcdBcm27xxPciCpuMmioAdr|0x600000000
> -
> -  # UARTs
> -  gArmPlatformTokenSpaceGuid.PL011UartInteger|0
> -  gArmPlatformTokenSpaceGuid.PL011UartFractional|0
> -  gArmPlatformTokenSpaceGuid.PL011UartClkInHz|48000000
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|1000000000
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|0x27
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|8
> -  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
> -  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
> -
> -  #
> -  # ARM General Interrupt Controller
> -  #
> -  gArmTokenSpaceGuid.PcdGicDistributorBase|0xFF841000
> -  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xFF842000
> -  gRaspberryPiTokenSpaceGuid.PcdGicInterruptInterfaceHBase|0xFF844000
> -  gRaspberryPiTokenSpaceGuid.PcdGicInterruptInterfaceVBase|0xFF846000
> -  gRaspberryPiTokenSpaceGuid.PcdGicGsivId|0x19
> -  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq0|0x30
> -  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq1|0x31
> -  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq2|0x32
> -  gRaspberryPiTokenSpaceGuid.PcdGicPmuIrq3|0x33
> -
> -  #
> -  # Fixed CPU settings.
> -  #
> -  gRaspberryPiTokenSpaceGuid.PcdCpuLowSpeedMHz|800
> -  gRaspberryPiTokenSpaceGuid.PcdCpuDefSpeedMHz|1500
> -  gRaspberryPiTokenSpaceGuid.PcdCpuMaxSpeedMHz|2200
> -
> -  ## Default Terminal Type
> -  ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
> -  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
> -
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
> -
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"EDK2"
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
> -
> -[PcdsDynamicHii.common.DEFAULT]
> -
> -  #
> -  # Clock overrides.
> -  #
> -
> -  gRaspberryPiTokenSpaceGuid.PcdCpuClock|L"CpuClock"|gConfigDxeFormSetGuid|0x0|1
> -  gRaspberryPiTokenSpaceGuid.PcdCustomCpuClock|L"CustomCpuClock"|gConfigDxeFormSetGuid|0x0|gRaspberryPiTokenSpaceGuid.PcdCpuDefSpeedMHz
> -
> -  #
> -  # SD-related.
> -  #
> -
> -  gRaspberryPiTokenSpaceGuid.PcdSdIsArasan|L"SdIsArasan"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdMmcForce1Bit|L"MmcForce1Bit"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdMmcForceDefaultSpeed|L"MmcForceDefaultSpeed"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdMmcSdDefaultSpeedMHz|L"MmcSdDefaultSpeedMHz"|gConfigDxeFormSetGuid|0x0|25
> -  gRaspberryPiTokenSpaceGuid.PcdMmcSdHighSpeedMHz|L"MmcSdHighSpeedMHz"|gConfigDxeFormSetGuid|0x0|50
> -  gRaspberryPiTokenSpaceGuid.PcdMmcDisableMulti|L"MmcDisableMulti"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdMmcEnableDma|L"MmcEnableDma"|gConfigDxeFormSetGuid|0x0|0
> -
> -  #
> -  # Debug-related.
> -  #
> -
> -  gRaspberryPiTokenSpaceGuid.PcdDebugEnableJTAG|L"DebugEnableJTAG"|gConfigDxeFormSetGuid|0x0|0
> -
> -  #
> -  # Display-related.
> -  #
> -
> -  #
> -  # Just enable native resolution by default.
> -  #
> -  gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes|L"DisplayEnableScaledVModes"|gConfigDxeFormSetGuid|0x0|0x20
> -  gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|L"DisplayEnableSShot"|gConfigDxeFormSetGuid|0x0|1
> -
> -  #
> -  # Supporting > 3GB of memory.
> -  #
> -  gRaspberryPiTokenSpaceGuid.PcdRamMoreThan3GB|L"RamMoreThan3GB"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdRamLimitTo3GB|L"RamLimitTo3GB"|gConfigDxeFormSetGuid|0x0|1
> -
> -  #
> -  # Device Tree and ACPI selection.
> -  #
> -  # 0 - SYSTEM_TABLE_MODE_ACPI (default)
> -  # 1 - SYSTEM_TABLE_MODE_BOTH
> -  # 2 - SYSTEM_TABLE_MODE_DT
> -  #
> -  gRaspberryPiTokenSpaceGuid.PcdSystemTableMode|L"SystemTableMode"|gConfigDxeFormSetGuid|0x0|0
> -
> -  #
> -  # Enable a fan in the ACPI thermal zone on GPIO pin #
> -  #
> -  # 0  - DISABLED
> -  # 19 - Enabled on pin 19
> -  #
> -  gRaspberryPiTokenSpaceGuid.PcdFanOnGpio|L"FanOnGpio"|gConfigDxeFormSetGuid|0x0|0
> -  gRaspberryPiTokenSpaceGuid.PcdFanTemp|L"FanTemp"|gConfigDxeFormSetGuid|0x0|60
> -
> -  #
> -  # Reset-related.
> -  #
> -
> -  gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay|L"ResetDelay"|gRaspberryPiTokenSpaceGuid|0x0|0
> -
> -  #
> -  # Common UEFI ones.
> -  #
> -
> -  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5
> -  #
> -  # This is silly, but by pointing SetupConXXX and ConXXX PCDs to
> -  # the same variables, I can use the graphical configuration to
> -  # change the mode used by ConSplitter.
> -  #
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn|L"Columns"|gRaspberryPiTokenSpaceGuid|0x0|80
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Columns"|gRaspberryPiTokenSpaceGuid|0x0|80
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow|L"Rows"|gRaspberryPiTokenSpaceGuid|0x0|25
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|L"Rows"|gRaspberryPiTokenSpaceGuid|0x0|25
> -
> -[PcdsDynamicDefault.common]
> -  #
> -  # Set video resolution for boot options and for text setup.
> -  #
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
> -
> -################################################################################
> -#
> -# Components Section - list of all EDK II Modules needed by this Platform
> -#
> -################################################################################
> -[Components.common]
> -  #
> -  # PEI Phase modules
> -  #
> -  ArmPlatformPkg/PrePi/PeiUniCore.inf {
> -    <LibraryClasses>
> -      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
> -  }
> -
> -  #
> -  # DXE
> -  #
> -  MdeModulePkg/Core/Dxe/DxeMain.inf {
> -    <LibraryClasses>
> -      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
> -  }
> -  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
> -    <LibraryClasses>
> -      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> -  }
> -
> -  #
> -  # Architectural Protocols
> -  #
> -  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> -  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
> -  Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf
> -  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
> -  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
> -    <LibraryClasses>
> -      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
> -      DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> -  }
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
> -    <LibraryClasses>
> -      NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
> -  }
> -  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
> -!else
> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
> -!endif
> -  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
> -  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
> -  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
> -  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
> -    <LibraryClasses>
> -      RealTimeClockLib|EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
> -  }
> -  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
> -
> -  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
> -  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
> -  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
> -  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> -  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
> -    <LibraryClasses>
> -      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
> -  }
> -  Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf
> -  EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf
> -
> -  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
> -
> -  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
> -  Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.inf
> -  Platform/RaspberryPi/Drivers/FdtDxe/FdtDxe.inf
> -  Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf
> -  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
> -  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
> -  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
> -
> -  #
> -  # FAT filesystem + GPT/MBR partitioning
> -  #
> -  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
> -  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
> -  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
> -  FatPkg/EnhancedFatDxe/Fat.inf
> -
> -  #
> -  # ACPI Support
> -  #
> -  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
> -  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
> -  Platform/RaspberryPi/AcpiTables/AcpiTables.inf
> -
> -  #
> -  # SMBIOS Support
> -  #
> -  Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
> -  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
> -
> -  #
> -  # RAM Disk Support
> -  #
> -  MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
> -
> -  #
> -  # Bds
> -  #
> -  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
> -  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
> -  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> -  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
> -  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
> -  Platform/RaspberryPi/Drivers/LogoDxe/LogoDxe.inf
> -  MdeModulePkg/Application/UiApp/UiApp.inf {
> -    <LibraryClasses>
> -      NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
> -      NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
> -      NULL|Platform/RaspberryPi/Library/PlatformUiAppLib/PlatformUiAppLib.inf
> -      NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
> -  }
> -
> -  #
> -  # SCSI Bus and Disk Driver
> -  #
> -  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
> -  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
> -
> -  #
> -  # USB Support
> -  #
> -  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
> -  Platform/RaspberryPi/Drivers/DwUsbHostDxe/DwUsbHostDxe.inf
> -  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
> -  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
> -  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
> -
> -  #
> -  # SD/MMC support
> -  #
> -  # Platform/RaspberryPi/Drivers/SdHostDxe/SdHostDxe.inf
> -  Platform/RaspberryPi/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.inf
> -  Platform/RaspberryPi/Drivers/MmcDxe/MmcDxe.inf
> -
> -  #
> -  # Networking stack
> -  #
> -!include NetworkPkg/Network.dsc.inc
> -  Silicon/Broadcom/Drivers/Net/BcmGenetDxe/BcmGenetDxe.inf {
> -    <PcdsFixedAtBuild>
> -      gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x00000000
> -      gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xffffffff
> -  }
> -
> -  #
> -  # RNG
> -  #
> -  Silicon/Broadcom/Bcm283x/Drivers/Bcm2838RngDxe/Bcm2838RngDxe.inf
> -
> -  #
> -  # PCI Support
> -  #
> -  ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
> -  MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
> -  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
> -  EmbeddedPkg/Drivers/NonCoherentIoMmuDxe/NonCoherentIoMmuDxe.inf {
> -    <PcdsFixedAtBuild>
> -      gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x00000000
> -      gEmbeddedTokenSpaceGuid.PcdDmaDeviceLimit|0xbfffffff
> -  }
> -
> -  #
> -  # UEFI application (Shell Embedded Boot Loader)
> -  #
> -  ShellPkg/Application/Shell/Shell.inf {
> -    <LibraryClasses>
> -      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
> -      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
> -      NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
> -      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
> -      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
> -      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
> -
> -    <PcdsFixedAtBuild>
> -      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
> -      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
> -      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
> -      gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x200000
> -  }
> -!if $(INCLUDE_TFTP_COMMAND) == TRUE
> -  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf  {
> -    <PcdsFixedAtBuild>
> -      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
> -  }
> -!endif
> diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc.rej b/Platform/RaspberryPi/RPi4/RPi4.dsc.rej
> deleted file mode 100644
> index 0b40df6896..0000000000
> --- a/Platform/RaspberryPi/RPi4/RPi4.dsc.rej
> +++ /dev/null
> @@ -1,29 +0,0 @@
> ---- Platform/RaspberryPi/RPi4/RPi4.dsc
> -+++ Platform/RaspberryPi/RPi4/RPi4.dsc
> -@@ -429,7 +429,6 @@ [PcdsFixedAtBuild.common]
> -   gArmPlatformTokenSpaceGuid.PL011UartClkInHz|48000000
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
> --  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|1000000000
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|0x27
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|8
> -   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
> -@@ -465,6 +464,9 @@ [PcdsFixedAtBuild.common]
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"EDK2"
> -   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
> -
> -+[PcdsPatchableInModule]
> -+  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|500000000
> -+
> - [PcdsDynamicHii.common.DEFAULT]
> -
> -   #
> -@@ -621,7 +623,7 @@ [Components.common]
> -   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> -   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
> -     <LibraryClasses>
> --      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortLib.inf
> -+      SerialPortLib|Platform/RaspberryPi/Library/DualSerialPortLib/DualSerialPortDxeLib.inf
> -   }
> -   Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf
> -   EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-17 14:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-17  7:26 [edk2-platforms PATCH v2] Platform/RaspberryPi: Remove unnecessary files Grzegorz Bernacki
2021-08-17 14:03 ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox