summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Mujawar <sami.mujawar@arm.com>2021-01-22 13:29:32 +0000
committerLeif Lindholm <leif@nuviainc.com>2021-01-25 12:54:18 +0000
commitc505691af0edfcbba7d019b35fef06a1ba819e8c (patch)
tree49354c62087e5652c41dfb7f767c76a5e99a9167
parentb4d9dd5db30222880a32d2d4f69e25f186848f22 (diff)
Platform/ARM: FVP: Fix serial port usage
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@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
-rw-r--r--Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc11
-rw-r--r--Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManager.dsc.inc19
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 a6f536a3..f8c703c4 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 @@
!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 @@
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 @@
!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 0915c154..00000000
--- 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