From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by mx.groups.io with SMTP id smtpd.web11.25521.1626687063875090442 for ; Mon, 19 Jul 2021 02:31:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=zt4vwcC0; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.208.181, mailfrom: mw@semihalf.com) Received: by mail-lj1-f181.google.com with SMTP id u14so25407175ljh.0 for ; Mon, 19 Jul 2021 02:31:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=A8/1x5n0qiLm9jqoFpiOK+h1bXxz2g2y5dVtLkLCMWs=; b=zt4vwcC0NNG11cNvF06NziSd9uHbQZ6vn32eNmb5zwFyVjLZ+rwZ4IuKhwsNwK9iW8 9OHu+6zjqITZ3x3A6Iih3RICKwautFqhUOGqbF2k3IWGgh1uZ7/6VFQC7CoBztxRF6yO T1tAtE913qqgGHxQ5GtoZuJZ3ss7MJ9lHZaZ+NPMsKm/Xa5J+S22xlj2wlpPQzVeqInm gsr1vKB22sHHtxLSOqqgphWljlsHIRQg6T9AS4ODTbGZaaW4buG46I93x6Pl6PG5KJnU WdlEVIH9+czVBcPqz+u1isBuo7kxblKb06T3DV5ZwExj5RTXsUmHI7SlPOjKZ9ED0b0l odEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=A8/1x5n0qiLm9jqoFpiOK+h1bXxz2g2y5dVtLkLCMWs=; b=Out2GlqTFODty33aQtsNoKiLDyT2onjgbxlV8bUTo0Ip3cP9NrK2U+EVmNjJFXxoni 9aBZuOVW8SDlYmxICQ4dEL/eyLIGaCmvjtaGjEo1NYTmbYiFwy6quDJI++PgFlGzickH 5avBRlVrl9khtP9DhKOdcVV8BId9Q8LVp0KBQNcAayrNLXf56vC1YEZJg//rFJ8NsAGF gVaTGv3wtxZKGtUpg3GPaLJyUO+xwc/fwkv3RsrRzcqoxbuyCS9N/6dPdTyX2iURxaS/ 518R9ycO2s9DFSoxKFp1YdVB6llUmGN85CwlcmJwVGRu51IgwFGxjpNUkhWbWdDlARWZ Au5Q== X-Gm-Message-State: AOAM533/SJ63Xy8ygKFnGfsiEfVOWf+sxsdioGo2aRBdMyY6AbLVz5ur +ZEiZPk32R2q1qjd+4umNmOJiDDAqQpqwdtA X-Google-Smtp-Source: ABdhPJybaW/VKWJMMFrM6QQxW6gzv3qF2anbfKjajCAARR4YSv8ZvpIvCUaX//Twp7zXpMISDjmL5Q== X-Received: by 2002:a05:651c:12c4:: with SMTP id 4mr9689512lje.320.1626687062190; Mon, 19 Jul 2021 02:31:02 -0700 (PDT) Return-Path: Received: from gilgamesh.lab.semihalf.net ([83.142.187.85]) by smtp.gmail.com with ESMTPSA id u14sm1252560lfr.86.2021.07.19.02.31.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jul 2021 02:31:01 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: leif@nuviainc.com, ardb+tianocore@kernel.org, jaz@semihalf.com, gjb@semihalf.com, upstream@semihalf.com, Samer.El-Haj-Mahmoud@arm.com, jon@solid-run.com, Marcin Wojtas Subject: [edk2-platforms PATCH 4/7] SolidRun/Armada80x0McBin: AcpiTables: Introduce DBG2 table Date: Mon, 19 Jul 2021 11:30:12 +0200 Message-Id: <20210719093015.1490932-5-mw@semihalf.com> X-Mailer: git-send-email 2.29.0 In-Reply-To: <20210719093015.1490932-1-mw@semihalf.com> References: <20210719093015.1490932-1-mw@semihalf.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The DBG2 table is mandatory as per SBBR v1.2 specification. Expose it via J25 jumper on the Armada 8040 MacchiatoBin platform. Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin.inf | 1 + Silicon/Marvell/Armada7k8k/AcpiTables/AcpiHeader.h | 2 + Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.h | 9 +++ Silicon/Marvell/Armada7k8k/AcpiTables/IcuInterrupts.h | 2 + Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.aslc | 74 +++++= +++++++++++++++ Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl | 33 +++++= ++++ Silicon/Marvell/Armada7k8k/AcpiTables/Spcr.aslc | 2 - 7 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/D= bg2.h create mode 100644 Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/D= bg2.aslc diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin.inf b/Si= licon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin.inf index 7cf9ecfbfd..98e5cc8b6e 100644 --- a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin.inf +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin.inf @@ -18,6 +18,7 @@ VERSION_STRING =3D 1.0=0D =0D [Sources]=0D + Armada80x0McBin/Dbg2.aslc=0D Armada80x0McBin/Dsdt.asl=0D Armada80x0McBin/Mcfg.aslc=0D Fadt.aslc=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/AcpiHeader.h b/Silicon/M= arvell/Armada7k8k/AcpiTables/AcpiHeader.h index 90ab607845..9d83ba7837 100644 --- a/Silicon/Marvell/Armada7k8k/AcpiTables/AcpiHeader.h +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/AcpiHeader.h @@ -11,6 +11,8 @@ =0D #include =0D =0D +#define MV_UART_AS32(Address) { EFI_ACPI_5_0_SYSTEM_MEMORY, 32, 0, EFI_ACP= I_5_0_BYTE, Address }=0D +=0D #define ACPI_OEM_ID_ARRAY {'M','V','E','B','U',' '}=0D #define ACPI_OEM_REVISION 0=0D #define ACPI_CREATOR_ID SIGNATURE_32('L','N','R','O')=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.h b= /Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.h new file mode 100644 index 0000000000..b8ac770ed5 --- /dev/null +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.h @@ -0,0 +1,9 @@ +/**=0D +=0D + Copyright (C) 2021, Semihalf.=0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +=0D +#define ARMADA80X0_MCBIN_DBG2_UART_REG_BASE 0xF2702100=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/IcuInterrupts.h b/Silico= n/Marvell/Armada7k8k/AcpiTables/IcuInterrupts.h index dd33cb5e7b..b106790913 100644 --- a/Silicon/Marvell/Armada7k8k/AcpiTables/IcuInterrupts.h +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/IcuInterrupts.h @@ -22,6 +22,8 @@ #define CP_GIC_SPI_CP0_USB_H1 112=0D #define CP_GIC_SPI_CP0_USB_H0 113=0D #define CP_GIC_SPI_CP0_SATA_H0 114=0D +#define CP_GIC_SPI_CP0_UART0 121=0D +#define CP_GIC_SPI_CP0_UART1 122=0D =0D #define CP_GIC_SPI_CP1_PCI0 288=0D #define CP_GIC_SPI_CP1_PCI1 289=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.asl= c b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.aslc new file mode 100644 index 0000000000..1e6d99ee9e --- /dev/null +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dbg2.aslc @@ -0,0 +1,74 @@ +/** @file=0D +* Debug Port Table (DBG2)=0D +*=0D +* Copyright (c) 2020 Linaro Ltd. All rights reserved.=0D +* Copyright (c) 2021 ARM Ltd. All rights reserved.=0D +* Copyright (c) 2021 Semihalf. All rights reserved.=0D +*=0D +* SPDX-License-Identifier: BSD-2-Clause-Patent=0D +*=0D +**/=0D +#include =0D +#include =0D +#include =0D +#include =0D +=0D +#include "AcpiHeader.h"=0D +#include "Armada80x0McBin/Dbg2.h"=0D +=0D +#pragma pack(1)=0D +=0D +#define ARMADA7K8K_UART_STR { '\\', '_', 'S', 'B', '.', 'C', 'O', 'M', '2'= , 0x00 }=0D +=0D +typedef struct {=0D + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Dbg2Device;=0D + EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE BaseAddressRegister;=0D + UINT32 AddressSize;=0D + UINT8 NameSpaceString[10];=0D +} DBG2_DEBUG_DEVICE_INFORMATION;=0D +=0D +typedef struct {=0D + EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE Description;=0D + DBG2_DEBUG_DEVICE_INFORMATION Dbg2DeviceInfo;=0D +} DBG2_TABLE;=0D +=0D +=0D +STATIC DBG2_TABLE Dbg2 =3D {=0D + {=0D + __ACPI_HEADER (=0D + EFI_ACPI_6_3_DEBUG_PORT_2_TABLE_SIGNATURE,=0D + DBG2_TABLE,=0D + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION=0D + ),=0D + OFFSET_OF (DBG2_TABLE, Dbg2DeviceInfo),=0D + 1 /* NumberOfDebugPorts */=0D + },=0D + {=0D + {=0D + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,=0D + sizeof (DBG2_DEBUG_DEVICE_INFORMATION),=0D + 1, /* NumberofGenericAddressRegist= ers */=0D + 10, /* NameSpaceStringLength */=0D + OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, NameSpaceString),=0D + 0, /* OemDataLength */=0D + 0, /* OemDataOffset */=0D + EFI_ACPI_DBG2_PORT_TYPE_SERIAL,=0D + EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_16550_SUBSET_COMPATIBLE_WITH_MS_DB= GP_SPEC,=0D + {=0D + EFI_ACPI_RESERVED_BYTE,=0D + EFI_ACPI_RESERVED_BYTE=0D + },=0D + OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, BaseAddressRegister),=0D + OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, AddressSize)=0D + },=0D + MV_UART_AS32 (ARMADA80X0_MCBIN_DBG2_UART_REG_BASE), /* BaseAddress */= =0D + SIZE_4KB, /* AddressSize */= =0D + ARMADA7K8K_UART_STR, /* NameSpaceStrin= g */=0D + }=0D +};=0D +=0D +#pragma pack()=0D +=0D +// Reference the table being generated to prevent the optimizer from remov= ing=0D +// the data structure from the executable=0D +VOID* CONST ReferenceAcpiTable =3D &Dbg2;=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl= b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl index 1ecbd0309c..a7d1c76e07 100644 --- a/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl @@ -8,6 +8,7 @@ =0D **/=0D =0D +#include "Armada80x0McBin/Dbg2.h"=0D #include "Armada80x0McBin/Pcie.h"=0D #include "IcuInterrupts.h"=0D =0D @@ -246,6 +247,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "MVEBU ", "ARMA= DA8K", 3) {=0D Name (_HID, "MRVL0001") // _HID: H= ardware ID=0D Name (_CID, "HISI0031") // _CID: C= ompatible ID=0D + Name (_UID, 0x00) // _UID: U= nique ID=0D Method (_STA) // _STA: D= evice status=0D {=0D Return (0xF)=0D @@ -272,6 +274,37 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "MVEBU ", "ARM= ADA8K", 3) })=0D }=0D =0D + Device (COM2)=0D + {=0D + Name (_HID, "MRVL0001") // _HID: H= ardware ID=0D + Name (_CID, "HISI0031") // _CID: C= ompatible ID=0D + Name (_UID, 0x01) // _UID: U= nique ID=0D + Method (_STA) // _STA: D= evice status=0D + {=0D + Return (0xF)=0D + }=0D + Name (_ADR, ARMADA80X0_MCBIN_DBG2_UART_REG_BASE) // _ADR: A= ddress=0D + Name (_CRS, ResourceTemplate () // _CRS: C= urrent Resource Settings=0D + {=0D + Memory32Fixed (ReadWrite,=0D + ARMADA80X0_MCBIN_DBG2_UART_REG_BASE, // Address= Base=0D + 0x00000100, // Address= Length=0D + )=0D + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,= ,, )=0D + {=0D + CP_GIC_SPI_CP0_UART1=0D + }=0D + })=0D + Name (_DSD, Package () {=0D + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),=0D + Package () {=0D + Package () { "clock-frequency", FixedPcdGet32 (PcdSe= rialClockRate) },=0D + Package () { "reg-io-width", 1 },=0D + Package () { "reg-shift", 2 },=0D + }=0D + })=0D + }=0D +=0D Device (SMI0)=0D {=0D Name (_HID, "MRVL0100") // _HID: H= ardware ID=0D diff --git a/Silicon/Marvell/Armada7k8k/AcpiTables/Spcr.aslc b/Silicon/Marv= ell/Armada7k8k/AcpiTables/Spcr.aslc index 6efc175bdf..48e6699f52 100644 --- a/Silicon/Marvell/Armada7k8k/AcpiTables/Spcr.aslc +++ b/Silicon/Marvell/Armada7k8k/AcpiTables/Spcr.aslc @@ -15,8 +15,6 @@ =0D #include "AcpiHeader.h"=0D =0D -#define MV_UART_AS32(Address) { EFI_ACPI_5_0_SYSTEM_MEMORY, 32, 0, EFI_ACP= I_5_0_BYTE, Address }=0D -=0D EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr =3D {=0D __ACPI_HEADER(EFI_ACPI_6_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATU= RE,=0D EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,=0D --=20 2.29.0