[edk2-devel] [PATCH edk2-platforms v1 3/6] Platform/ARM: FVP: Fix serial port usage

Sami Mujawar sami.mujawar at arm.com
Fri Jan 22 13:29:32 UTC 2021


The serial ports on FVP are follows:
  UART#   Address        Interrupt No.
  -----   -------        -------------
  UART0   0x1c090000     0x25
  UART1   0x1c0a0000     0x26
  UART2   0x1c0b0000     0x27
  UART3   0x1c0c0000     0x28

See Fast Model Reference Manual at:
https://developer.arm.com/documentation/100964/1113/

The FVP firmware configures the debug log output on UART1 and the
UEFI shell is configured to use UART0. The Serial Port Console
Redirector (SPCR) table is configured such that the UEFI shell is
migrated to the OS serial console.

When Dynamic Tables Framework is enabled, the FVP Configuration
Manager uses the PCDs PcdSerialRegisterBase and PL011UartInterrupt
to populate the SPCR table.
The current firmware implementation has two problems:
 1. The PL011UartInterrupt was not set to the correct interrupt
    number. Therefore, the OS serial console was not fully
    functional (serial output was printed but input could not
    be provided).
 2. The OS serial console was setup on UART1, while it should
    have been UART0.

Therefore, when Dynamic Tables Framework is enabled fix the UART
base address and interrupt number such that UART0 is configured
in the SPCR table. Also remove ConfigurationManager.dsc.inc as
this is now redundant.

Signed-off-by: Sami Mujawar <sami.mujawar at arm.com>
---
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc                       | 11 ++++++++---
 Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc | 19 -------------------
 2 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
index a6f536a332281a624403dac2e4bf18aa9ba96d0b..f8c703c4b22b2a26028ba0562e0eae5948c3292d 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -1,5 +1,5 @@
 #
-#  Copyright (c) 2011-2018, ARM Limited. All rights reserved.
+#  Copyright (c) 2011-2021, ARM Limited. All rights reserved.
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -34,7 +34,6 @@ [Defines]
 !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
 !ifdef DYNAMIC_TABLES_FRAMEWORK
   !include DynamicTablesPkg/DynamicTables.dsc.inc
-  !include Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc
 !endif
 
 [LibraryClasses.common]
@@ -126,7 +125,7 @@ [PcdsFixedAtBuild.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c0a0000
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
-  gArmPlatformTokenSpaceGuid.PL011UartInterrupt|0x25
+  gArmPlatformTokenSpaceGuid.PL011UartInterrupt|0x26
 
   ## PL011 Serial Debug UART (DBG2)
   gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|0x1c0b0000
@@ -267,6 +266,12 @@ [Components.common]
 !ifndef DYNAMIC_TABLES_FRAMEWORK
   MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
   Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
+!else
+  Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf {
+    <PcdsFixedAtBuild>
+      gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
+      gArmPlatformTokenSpaceGuid.PL011UartInterrupt|0x25
+  }
 !endif
 
   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
diff --git a/Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc b/Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc
deleted file mode 100644
index 0915c154cce6b0686f67a383dc69231ed3ed6f36..0000000000000000000000000000000000000000
--- a/Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-## @file
-#  dsc include file for Configuration Manager
-#
-#  Copyright (c) 2017 - 2020, Arm Limited. All rights reserved.<BR>
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-##
-
-[Defines]
-
-[BuildOptions]
-# Required for pre-processing ASL files that include ArmPlatform.h
-  *_*_*_ASLPP_FLAGS        = $(PLATFORM_FLAGS)
-
-[LibraryClasses.common]
-
-[Components.common]
-  # Configuration Manager
-  Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70687): https://edk2.groups.io/g/devel/message/70687
Mute This Topic: https://groups.io/mt/80029721/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list