diff options
author | Sami Mujawar <sami.mujawar@arm.com> | 2021-01-22 13:29:32 +0000 |
---|---|---|
committer | Leif Lindholm <leif@nuviainc.com> | 2021-01-25 12:54:18 +0000 |
commit | c505691af0edfcbba7d019b35fef06a1ba819e8c (patch) | |
tree | 49354c62087e5652c41dfb7f767c76a5e99a9167 | |
parent | b4d9dd5db30222880a32d2d4f69e25f186848f22 (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.dsc | 11 | ||||
-rw-r--r-- | 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 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
|