[edk2-devel] [PATCH v3 5/6] [edk2-platforms] Silicon/SynQuacer: add DBG2 ACPI table

Masami Hiramatsu posted 6 patches 2 years, 11 months ago
[edk2-devel] [PATCH v3 5/6] [edk2-platforms] Silicon/SynQuacer: add DBG2 ACPI table
Posted by Masami Hiramatsu 2 years, 11 months ago
Add DBG2 table to ACPI tables. The COM1 uart port will be used
for OS debug, and it is 16550 compatible.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
---
  Changes in v2:
   - Move Dbg2.aslc before Dsdt.asl to keep the list alphabetically sorted.
   - Use EFI_ACPI_6_3_SYSTEM_MEMORY and EFI_ACPI_6_3_BYTE for initialization.
---
 .../Socionext/SynQuacer/AcpiTables/AcpiTables.inf  |    1 
 Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc   |   70 ++++++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc

diff --git a/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf b/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
index 886777a0fa..e77d7a3056 100644
--- a/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
+++ b/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
@@ -19,6 +19,7 @@
 [Sources]
   AcpiTables.h
   AcpiSsdtRootPci.asl
+  Dbg2.aslc
   Dsdt.asl
   Fadt.aslc
   Gtdt.aslc
diff --git a/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc b/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc
new file mode 100644
index 0000000000..89c9dbd998
--- /dev/null
+++ b/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc
@@ -0,0 +1,70 @@
+/** @file
+*  Debug Port Table (DBG2)
+*
+*  Copyright (c) 2020,2021 Linaro Ltd. All rights reserved.
+*
+*  SPDX-License-Identifier: BSD-2-Clause-Patent
+*
+**/
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/DebugPort2Table.h>
+#include <Library/AcpiLib.h>
+#include <Library/PcdLib.h>
+#include <Platform/MemoryMap.h>
+
+#include "AcpiTables.h"
+
+#pragma pack(1)
+
+#define SYNQUACER_UART1_STR { '\\', '_', 'S', 'B', '.', 'C', 'O', 'M', '1', 0x00 }
+#define SQ_GAS32(Address) { EFI_ACPI_6_3_SYSTEM_MEMORY, 32, 0, EFI_ACPI_6_3_BYTE, Address }
+
+typedef struct {
+  EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Dbg2Device;
+  EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE        BaseAddressRegister;
+  UINT32                                        AddressSize;
+  UINT8                                         NameSpaceString[10];
+} DBG2_DEBUG_DEVICE_INFORMATION;
+
+typedef struct {
+  EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE       Description;
+  DBG2_DEBUG_DEVICE_INFORMATION                 Dbg2DeviceInfo;
+} DBG2_TABLE;
+
+
+STATIC DBG2_TABLE Dbg2 = {
+  {
+    __ACPI_HEADER (
+      EFI_ACPI_6_3_DEBUG_PORT_2_TABLE_SIGNATURE,
+      DBG2_TABLE,
+      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION
+    ),
+    OFFSET_OF (DBG2_TABLE, Dbg2DeviceInfo),
+    1                                      /* NumberOfDebugPorts */
+  },
+  {
+    {
+      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,
+      sizeof (DBG2_DEBUG_DEVICE_INFORMATION),
+      1,                                   /* NumberofGenericAddressRegisters */
+      10,                                  /* NameSpaceStringLength */
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, NameSpaceString),
+      0,                                   /* OemDataLength */
+      0,                                   /* OemDataOffset */
+      EFI_ACPI_DBG2_PORT_TYPE_SERIAL,
+      EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_16550_WITH_GAS,
+      {EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE},
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, BaseAddressRegister),
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, AddressSize)
+    },
+    SQ_GAS32 (SYNQUACER_UART1_BASE),       /* BaseAddressRegister */
+    SYNQUACER_UART1_SIZE,                  /* AddressSize */
+    SYNQUACER_UART1_STR,                   /* NameSpaceString */
+  }
+};
+
+#pragma pack()
+
+// Reference the table being generated to prevent the optimizer from removing
+// the data structure from the executable
+VOID* CONST ReferenceAcpiTable = &Dbg2;



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84625): https://edk2.groups.io/g/devel/message/84625
Mute This Topic: https://groups.io/mt/87631129/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v3 5/6] [edk2-platforms] Silicon/SynQuacer: add DBG2 ACPI table
Posted by Masahisa Kojima 2 years, 6 months ago
Hi Leif, Ard,

A gentle ping on this on behalf of Masami, since he left Linaro.

Thanks,
Masahisa Kojima


On Fri, 10 Dec 2021 at 15:51, Masami Hiramatsu
<masami.hiramatsu@linaro.org> wrote:
>
> Add DBG2 table to ACPI tables. The COM1 uart port will be used
> for OS debug, and it is 16550 compatible.
>
> Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
> ---
>   Changes in v2:
>    - Move Dbg2.aslc before Dsdt.asl to keep the list alphabetically sorted.
>    - Use EFI_ACPI_6_3_SYSTEM_MEMORY and EFI_ACPI_6_3_BYTE for initialization.
> ---
>  .../Socionext/SynQuacer/AcpiTables/AcpiTables.inf  |    1
>  Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc   |   70 ++++++++++++++++++++
>  2 files changed, 71 insertions(+)
>  create mode 100644 Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc
>
> diff --git a/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf b/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
> index 886777a0fa..e77d7a3056 100644
> --- a/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
> +++ b/Silicon/Socionext/SynQuacer/AcpiTables/AcpiTables.inf
> @@ -19,6 +19,7 @@
>  [Sources]
>    AcpiTables.h
>    AcpiSsdtRootPci.asl
> +  Dbg2.aslc
>    Dsdt.asl
>    Fadt.aslc
>    Gtdt.aslc
> diff --git a/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc b/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc
> new file mode 100644
> index 0000000000..89c9dbd998
> --- /dev/null
> +++ b/Silicon/Socionext/SynQuacer/AcpiTables/Dbg2.aslc
> @@ -0,0 +1,70 @@
> +/** @file
> +*  Debug Port Table (DBG2)
> +*
> +*  Copyright (c) 2020,2021 Linaro Ltd. All rights reserved.
> +*
> +*  SPDX-License-Identifier: BSD-2-Clause-Patent
> +*
> +**/
> +#include <IndustryStandard/Acpi.h>
> +#include <IndustryStandard/DebugPort2Table.h>
> +#include <Library/AcpiLib.h>
> +#include <Library/PcdLib.h>
> +#include <Platform/MemoryMap.h>
> +
> +#include "AcpiTables.h"
> +
> +#pragma pack(1)
> +
> +#define SYNQUACER_UART1_STR { '\\', '_', 'S', 'B', '.', 'C', 'O', 'M', '1', 0x00 }
> +#define SQ_GAS32(Address) { EFI_ACPI_6_3_SYSTEM_MEMORY, 32, 0, EFI_ACPI_6_3_BYTE, Address }
> +
> +typedef struct {
> +  EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Dbg2Device;
> +  EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE        BaseAddressRegister;
> +  UINT32                                        AddressSize;
> +  UINT8                                         NameSpaceString[10];
> +} DBG2_DEBUG_DEVICE_INFORMATION;
> +
> +typedef struct {
> +  EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE       Description;
> +  DBG2_DEBUG_DEVICE_INFORMATION                 Dbg2DeviceInfo;
> +} DBG2_TABLE;
> +
> +
> +STATIC DBG2_TABLE Dbg2 = {
> +  {
> +    __ACPI_HEADER (
> +      EFI_ACPI_6_3_DEBUG_PORT_2_TABLE_SIGNATURE,
> +      DBG2_TABLE,
> +      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION
> +    ),
> +    OFFSET_OF (DBG2_TABLE, Dbg2DeviceInfo),
> +    1                                      /* NumberOfDebugPorts */
> +  },
> +  {
> +    {
> +      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,
> +      sizeof (DBG2_DEBUG_DEVICE_INFORMATION),
> +      1,                                   /* NumberofGenericAddressRegisters */
> +      10,                                  /* NameSpaceStringLength */
> +      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, NameSpaceString),
> +      0,                                   /* OemDataLength */
> +      0,                                   /* OemDataOffset */
> +      EFI_ACPI_DBG2_PORT_TYPE_SERIAL,
> +      EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_16550_WITH_GAS,
> +      {EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE},
> +      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, BaseAddressRegister),
> +      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, AddressSize)
> +    },
> +    SQ_GAS32 (SYNQUACER_UART1_BASE),       /* BaseAddressRegister */
> +    SYNQUACER_UART1_SIZE,                  /* AddressSize */
> +    SYNQUACER_UART1_STR,                   /* NameSpaceString */
> +  }
> +};
> +
> +#pragma pack()
> +
> +// Reference the table being generated to prevent the optimizer from removing
> +// the data structure from the executable
> +VOID* CONST ReferenceAcpiTable = &Dbg2;
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89953): https://edk2.groups.io/g/devel/message/89953
Mute This Topic: https://groups.io/mt/87631129/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-