Hi Sahil,

On 06/01/2023 06:09, sahil via groups.io wrote:
From: Himanshu Sharma <himanshu.sha...@arm.com>

In DBG2 table, IRQ ID was set as 0 for the UART. This overwrote the
IPI0 trigger method to "level", which prevented SGI0 to be enabled
again after a CPU offline/online cycle.

This patch fixes the above issue by assigning a reserved IRQ ID
for the Debug UART, other than 0 and also routing it to use IOFPGA
UART1 by unsharing it from currently using serial terminal.

Signed-off-by: Himanshu Sharma <himanshu.sha...@arm.com>
---
  Platform/ARM/N1Sdp/N1SdpPlatform.dsc                                          
         | 8 ++++----
  
Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 | 2 +-
  2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc 
b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
index d04b22d3ef51..676ab677257a 100644
--- a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
+++ b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
@@ -4,7 +4,7 @@
  # This provides platform specific component descriptions and libraries that

  # conform to EFI/Framework standards.

  #

-# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>

+# Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  #

  # SPDX-License-Identifier: BSD-2-Clause-Patent

  #

@@ -136,9 +136,9 @@ [PcdsFixedAtBuild.common]
    gArmPlatformTokenSpaceGuid.PL011UartInterrupt|95

    # PL011 Serial Debug UART (DBG2)

-  
gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase

-  
gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate

-  gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz|50000000

+  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|0x1C0A0000

+  gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|115200

+  gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz|24000000

    # SBSA Watchdog

    gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum|93

diff --git 
a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 
b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
index b11c0425fe25..44046a0026bb 100644
--- 
a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+++ 
b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
@@ -320,7 +320,7 @@ EDKII_PLATFORM_REPOSITORY_INFO N1sdpRepositoryInfo = {
    // Debug Serial Port

    {

      FixedPcdGet64 (PcdSerialDbgRegisterBase),               // BaseAddress

-    0,                                                      // Interrupt 
-unused

+    250,                                                    // Interrupt 
(reserved)

I have not looked into ConfigurationManager but why would IRQ number be mandatory for debug UART? Isn't there a way to just avoid specifying a interrupt number?

Thanks,
Thomas.


      FixedPcdGet64 (PcdSerialDbgUartBaudRate),               // BaudRate

      FixedPcdGet32 (PcdSerialDbgUartClkInHz),                // Clock

      EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_ARM_PL011_UART        // Port subtype



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99043): https://edk2.groups.io/g/devel/message/99043
Mute This Topic: https://groups.io/mt/96088965/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to