From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by mx.groups.io with SMTP id smtpd.web12.3616.1570748213019711267 for ; Thu, 10 Oct 2019 15:56:53 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=Liiyy7OH; spf=pass (domain: linaro.org, ip: 209.85.221.65, mailfrom: leif.lindholm@linaro.org) Received: by mail-wr1-f65.google.com with SMTP id r3so9739879wrj.6 for ; Thu, 10 Oct 2019 15:56:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=SLq3kvtf7b6SYN+KD0Ej6I8KmmeWYYkFM/IHF/1IO0E=; b=Liiyy7OHg1FPJ7lC9+xYFvtXOpJE+rqDAQ6A1PV6aH0G3IWBmo1buKH8Xo0Y//kzC2 sW4M6FBnTDlJWqqa/glVKNnVUClkAUzDVV93IZmeFML0vB5JRL9c+K5OfyXvPG7zsPSx SuPqHklMKZ3gzhCWW1tBqXUEUAB/k3s8CinIUllWGhLwREav2QSWHdsn/qK7JmZ07Eyp QB0n7uCnYd5TUMoHCRg69usDyUyM0bydJDbvmyrzZoFOoT/u59GHfwr8DRpWvg49hgdm YfvKM4xcUinA20j8pMR8NpVM49Ntv9Sl5B0lSwFJ0zrNFDN6jxNWQkEO6cZp9/pX49IX J2zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=SLq3kvtf7b6SYN+KD0Ej6I8KmmeWYYkFM/IHF/1IO0E=; b=HVSnWMMzYXlPdQ6CczNQvmWoqk3LG88ZWVgCCzBixXsWD8RXeHKo87acCv9sxSbA1m T1xvYzAyWN122hjTMJ+nGlDaQthNpfNduLa2TP4+lZiDCEEM3YLrYXKfYQX+tYPCCfke pV45aAjkpXzZwOpJCcKKDnSrE8kfui8NB4GJFHYG5tZebHbY7UZC6WQ0D51kMLXiUhP5 QTkSsjdkNoJJM3IQiQlP7C0D2+3L2BcgFpTexw2g0LofRt1jmEyW+CIg0EUmeSa11EFD 66/9rPsjLydypP94lFaqEh4p0l0y4EeWcym58KsdDzM4OqZlBs3DOwzZ8Yr8KD8ML2YY n9TQ== X-Gm-Message-State: APjAAAVVPT6i5x18azVPPw1UxC0Ln6qsX75mePNPe0P8maxd5dTgX6+m HbjsA7MW1a8XM4rh0AJ9xDSi4g== X-Google-Smtp-Source: APXvYqxHr0aPKAwdC3hs4VkYETIfX+kLkr8g65sEpfZWdxc5wkls1wkgxi9RDGDGTkCdhBBFIq6kVw== X-Received: by 2002:a5d:4a0e:: with SMTP id m14mr10180721wrq.102.1570748211465; Thu, 10 Oct 2019 15:56:51 -0700 (PDT) Return-Path: Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id z5sm11568680wrs.54.2019.10.10.15.56.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Oct 2019 15:56:50 -0700 (PDT) Date: Thu, 10 Oct 2019 23:56:49 +0100 From: "Leif Lindholm" To: Marcin Wojtas Cc: devel@edk2.groups.io, ard.biesheuvel@linaro.org, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com Subject: Re: [edk2-platforms: PATCH v3 6/9] Marvell/Cn9131Db: Introduce board support Message-ID: <20191010225649.GV25504@bivouac.eciton.net> References: <1570686139-25182-1-git-send-email-mw@semihalf.com> <1570686139-25182-7-git-send-email-mw@semihalf.com> MIME-Version: 1.0 In-Reply-To: <1570686139-25182-7-git-send-email-mw@semihalf.com> User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Oct 10, 2019 at 07:42:16AM +0200, Marcin Wojtas wrote: > This patch introduces all necessary components required > for building EDK2 firmware for CN9131-DB setup A. > > In order to build this variant, '-D CN9131' flag should be added. > > Signed-off-by: Marcin Wojtas Reviewed-by: Leif Lindholm > --- > Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc | 72 ++++++++++++++ > Platform/Marvell/Cn913xDb/Cn913xDbA.dsc | 5 + > Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA.inf | 57 ++++++++++++ > Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.h | 2 + > Silicon/Marvell/OcteonTx/AcpiTables/T91/AcpiHeader.h | 2 + > Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 29 ++++++ > Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA/Ssdt.asl | 98 ++++++++++++++++++++ > 7 files changed, 265 insertions(+) > create mode 100644 Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc > create mode 100644 Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA.inf > create mode 100644 Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA/Ssdt.asl > > diff --git a/Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc b/Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc > new file mode 100644 > index 0000000..7235b9f > --- /dev/null > +++ b/Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc > @@ -0,0 +1,72 @@ > +## @file > +# Component description file for the CN9131 Development Board (variant A) > +# > +# Copyright (c) 2019 Marvell International Ltd.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +################################################################################ > +# > +# Pcd Section - list of all EDK II PCD Entries defined by this Platform > +# > +################################################################################ > +[PcdsFixedAtBuild.common] > + # CP115 count > + gMarvellTokenSpaceGuid.PcdMaxCpCount|2 > + > + # MPP > + gMarvellTokenSpaceGuid.PcdMppChipCount|3 > + > + # CP115 #1 MPP > + gMarvellTokenSpaceGuid.PcdChip2MppReverseFlag|FALSE > + gMarvellTokenSpaceGuid.PcdChip2MppBaseAddress|0xF4440000 > + gMarvellTokenSpaceGuid.PcdChip2MppPinCount|64 > + gMarvellTokenSpaceGuid.PcdChip2MppSel0|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel1|{ 0x0, 0x0, 0x0, 0x3, 0x3, 0x3, 0x3, 0x0, 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel2|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel3|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x7, 0x2, 0x2, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel4|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel5|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdChip2MppSel6|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } > + > + # ComPhy > + gMarvellTokenSpaceGuid.PcdComPhyDevices|{ 0x1, 0x1 } > + # ComPhy1 > + # 0: PCIE0 5 Gbps > + # 1: PCIE0 5 Gbps > + # 2: UNCONNECTED > + # 3: USB3_HOST1 5 Gbps > + # 4: SFI 10.31 Gbps > + # 5: SATA1 5 Gbps > + gMarvellTokenSpaceGuid.PcdChip1ComPhyTypes|{ $(CP_PCIE0), $(CP_PCIE0), $(CP_UNCONNECTED), $(CP_USB3_HOST1), $(CP_SFI), $(CP_SATA1)} > + gMarvellTokenSpaceGuid.PcdChip1ComPhySpeeds|{ $(CP_5G), $(CP_5G), $(CP_DEFAULT), $(CP_5G), $(CP_10_3125G), $(CP_5G) } > + > + # UtmiPhy > + gMarvellTokenSpaceGuid.PcdUtmiControllersEnabled|{ 0x1, 0x1, 0x0, 0x1 } > + gMarvellTokenSpaceGuid.PcdUtmiPortType|{ $(UTMI_USB_HOST0), $(UTMI_USB_HOST1), $(UTMI_USB_HOST0), $(UTMI_USB_HOST1) } > + > + # MDIO > + gMarvellTokenSpaceGuid.PcdMdioControllersEnabled|{ 0x1, 0x0 } > + > + # PHY > + gMarvellTokenSpaceGuid.PcdPhy2MdioController|{ 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdPhyDeviceIds|{ 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdPhySmiAddresses|{ 0x0, 0x1 } > + gMarvellTokenSpaceGuid.PcdPhyStartupAutoneg|FALSE > + > + # NET > + gMarvellTokenSpaceGuid.PcdPp2GopIndexes|{ 0x0, 0x2, 0x3, 0x0 } > + gMarvellTokenSpaceGuid.PcdPp2InterfaceAlwaysUp|{ 0x0, 0x0, 0x0, 0x0 } > + gMarvellTokenSpaceGuid.PcdPp2InterfaceSpeed|{ $(PHY_SPEED_10000), $(PHY_SPEED_1000), $(PHY_SPEED_1000), $(PHY_SPEED_10000) } > + gMarvellTokenSpaceGuid.PcdPp2PhyConnectionTypes|{ $(PHY_SFI), $(PHY_RGMII), $(PHY_RGMII), $(PHY_SFI) } > + gMarvellTokenSpaceGuid.PcdPp2PhyIndexes|{ 0xFF, 0x0, 0x1, 0xFF } > + gMarvellTokenSpaceGuid.PcdPp2Port2Controller|{ 0x0, 0x0, 0x0, 0x1 } > + gMarvellTokenSpaceGuid.PcdPp2PortIds|{ 0x0, 0x1, 0x2, 0x0 } > + gMarvellTokenSpaceGuid.PcdPp2Controllers|{ 0x1, 0x1 } > + > + # NonDiscoverableDevices > + gMarvellTokenSpaceGuid.PcdPciEXhci|{ 0x1, 0x1, 0x0, 0x1 } > + gMarvellTokenSpaceGuid.PcdPciEAhci|{ 0x1, 0x1 } > + gMarvellTokenSpaceGuid.PcdPciESdhci|{ 0x1, 0x1 } > diff --git a/Platform/Marvell/Cn913xDb/Cn913xDbA.dsc b/Platform/Marvell/Cn913xDb/Cn913xDbA.dsc > index fc1190d..70f99cf 100644 > --- a/Platform/Marvell/Cn913xDb/Cn913xDbA.dsc > +++ b/Platform/Marvell/Cn913xDb/Cn913xDbA.dsc > @@ -15,6 +15,8 @@ > [Defines] > !if $(CN9130) > PLATFORM_NAME = Cn9130DbA > +!elseif $(CN9131) > + PLATFORM_NAME = Cn9131DbA > !endif > PLATFORM_GUID = 087305a1-8ddd-4027-89ca-68a3ef78fcc7 > PLATFORM_VERSION = 0.1 > @@ -36,6 +38,9 @@ > > !include Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc > !include Platform/Marvell/Cn913xDb/Cn9130DbA.dsc.inc > +!if $(CN9131) > +!include Platform/Marvell/Cn913xDb/Cn9131DbA.dsc.inc > +!endif > > [Components.common] > Silicon/Marvell/OcteonTx/DeviceTree/T91/$(PLATFORM_NAME).inf > diff --git a/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA.inf b/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA.inf > new file mode 100644 > index 0000000..bbf1b51 > --- /dev/null > +++ b/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA.inf > @@ -0,0 +1,57 @@ > +## @file > +# Component description file for PlatformAcpiTables module. > +# > +# ACPI table data and ASL sources required to boot the platform. > +# > +# Copyright (c) 2018, Linaro, Ltd. All rights reserved.
> +# Copyright (c) 2019, Marvell International Ltd. and its affiliates.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION = 0x0001001B > + BASE_NAME = PlatformAcpiTables > + FILE_GUID = 7E374E25-8E01-4FEE-87F2-390C23C606CD > + MODULE_TYPE = USER_DEFINED > + VERSION_STRING = 1.0 > + > +[Sources] > + Cn9131DbA/Ssdt.asl > + Cn913xDbA/Dsdt.asl > + Cn913xDbA/Mcfg.aslc > + Fadt.aslc > + Gtdt.aslc > + Madt.aslc > + Pptt.aslc > + Spcr.aslc > + > +[Packages] > + ArmPkg/ArmPkg.dec > + ArmPlatformPkg/ArmPlatformPkg.dec > + EmbeddedPkg/EmbeddedPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + Silicon/Marvell/Marvell.dec > + > +[FixedPcd] > + gArmPlatformTokenSpaceGuid.PcdCoreCount > + > + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum > + > + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase > + gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum > + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase > + > + gArmTokenSpaceGuid.PcdGicDistributorBase > + gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase > + > +[BuildOptions] > + *_*_*_ASLCC_FLAGS = -DCN9131 > diff --git a/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.h b/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.h > index e1a5c34..3ca6374 100644 > --- a/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.h > +++ b/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.h > @@ -15,5 +15,7 @@ > #define CN9130_DB_VBUS1_LIMIT_PIN 5 > #define CN9130_DB_SDMMC_VCC_PIN 14 > #define CN9130_DB_SDMMC_VCCQ_PIN 15 > +#define CN9131_DB_VBUS0_PIN 3 > +#define CN9131_DB_VBUS0_LIMIT_PIN 2 > > #endif > diff --git a/Silicon/Marvell/OcteonTx/AcpiTables/T91/AcpiHeader.h b/Silicon/Marvell/OcteonTx/AcpiTables/T91/AcpiHeader.h > index b5fd397..2838676 100644 > --- a/Silicon/Marvell/OcteonTx/AcpiTables/T91/AcpiHeader.h > +++ b/Silicon/Marvell/OcteonTx/AcpiTables/T91/AcpiHeader.h > @@ -18,6 +18,8 @@ > > #if defined(CN9130) > #define ACPI_OEM_TABLE_ID SIGNATURE_64('C','N','9','1','3','0',' ',' ') > +#elif defined (CN9131) > +#define ACPI_OEM_TABLE_ID SIGNATURE_64('C','N','9','1','3','1',' ',' ') > #endif > > /** > diff --git a/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.c b/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.c > index 598c649..dded150 100644 > --- a/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.c > +++ b/Platform/Marvell/Cn913xDb/NonDiscoverableInitLib/NonDiscoverableInitLib.c > @@ -91,6 +91,33 @@ Cp0XhciInit ( > MV_GPIO_DRIVER_TYPE_PCA95XX); > } > > +STATIC CONST MV_GPIO_PIN mCp1XhciVbusPins[] = { > + { > + MV_GPIO_DRIVER_TYPE_SOC_CONTROLLER, > + MV_GPIO_CP1_CONTROLLER0, > + CN9131_DB_VBUS0_PIN, > + TRUE, > + }, > + { > + MV_GPIO_DRIVER_TYPE_SOC_CONTROLLER, > + MV_GPIO_CP1_CONTROLLER0, > + CN9131_DB_VBUS0_LIMIT_PIN, > + TRUE, > + }, > +}; > + > +STATIC > +EFI_STATUS > +EFIAPI > +Cp1XhciInit ( > + IN NON_DISCOVERABLE_DEVICE *This > + ) > +{ > + return ConfigurePins (mCp1XhciVbusPins, > + ARRAY_SIZE (mCp1XhciVbusPins), > + MV_GPIO_DRIVER_TYPE_SOC_CONTROLLER); > +} > + > STATIC CONST MV_GPIO_PIN mCp0SdMmcPins[] = { > { > MV_GPIO_DRIVER_TYPE_PCA95XX, > @@ -130,6 +157,8 @@ NonDiscoverableDeviceInitializerGet ( > case 0: > case 1: > return Cp0XhciInit; > + case 2: > + return Cp1XhciInit; > } > } > > diff --git a/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA/Ssdt.asl b/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA/Ssdt.asl > new file mode 100644 > index 0000000..99bc751 > --- /dev/null > +++ b/Silicon/Marvell/OcteonTx/AcpiTables/T91/Cn9131DbA/Ssdt.asl > @@ -0,0 +1,98 @@ > +/** @file > + > + Secondary System Description Table Fields (SSDT) > + > + Copyright (c) 2018, Linaro Ltd. All rights reserved.
> + Copyright (c) 2019, Marvell International Ltd. and its affiliates.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include "IcuInterrupts.h" > + > +DefinitionBlock ("Cn9131DbASsdt.aml", "SSDT", 2, "MVEBU ", "CN9131", 3) > +{ > + Scope (_SB) > + { > + Device (AHC1) > + { > + Name (_HID, "LNRO001E") // _HID: Hardware ID > + Name (_UID, 0x00) // _UID: Unique ID > + Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute > + Name (_CLS, Package (0x03) // _CLS: Class Code > + { > + 0x01, > + 0x06, > + 0x01 > + }) > + > + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings > + { > + Memory32Fixed (ReadWrite, > + 0xF4540000, // Address Base (MMIO) > + 0x00030000, // Address Length > + ) > + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) > + { > + CP_GIC_SPI_CP1_SATA_H0 > + } > + }) > + } > + > + Device (XHC2) > + { > + Name (_HID, "PNP0D10") // _HID: Hardware ID > + Name (_UID, 0x01) // _UID: Unique ID > + Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute > + > + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings > + { > + Memory32Fixed (ReadWrite, > + 0xF4510000, // Address Base (MMIO) > + 0x00004000, // Address Length > + ) > + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) > + { > + CP_GIC_SPI_CP1_USB_H1 > + } > + }) > + } > + Device (PP21) > + { > + Name (_HID, "MRVL0110") // _HID: Hardware ID > + Name (_CCA, 0x01) // Cache-coherent controller > + Name (_UID, 0x00) // _UID: Unique ID > + Name (_CRS, ResourceTemplate () > + { > + Memory32Fixed (ReadWrite, 0xf4000000 , 0x100000) > + Memory32Fixed (ReadWrite, 0xf4129000 , 0xb000) > + }) > + Name (_DSD, Package () { > + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), > + Package () { > + Package () { "clock-frequency", 333333333 }, > + } > + }) > + Device (ETH0) > + { > + Name (_ADR, 0x0) > + Name (_CRS, ResourceTemplate () > + { > + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) > + { > + CP_GIC_SPI_PP2_CP1_PORT0 > + } > + }) > + Name (_DSD, Package () { > + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), > + Package () { > + Package () { "port-id", 0 }, > + Package () { "gop-port-id", 0 }, > + Package () { "phy-mode", "10gbase-kr"}, > + } > + }) > + } > + } > + } > +} > -- > 2.7.4 >