From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=Dsa/0LgM; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.167.68, mailfrom: mw@semihalf.com) Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by groups.io with SMTP; Wed, 14 Aug 2019 19:54:39 -0700 Received: by mail-lf1-f68.google.com with SMTP id v16so697920lfg.11 for ; Wed, 14 Aug 2019 19:54:38 -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; bh=wi8yAZwr2uPa/2bOJGN70Zqs1qGp+gTXnmFVH/Y6tJk=; b=Dsa/0LgMxGFuQJSBmTN0SvdYQAIqIhdau6ROhjVNkfk69KMYS4exr3uweLCYBVvuI6 zV1Ll4DDyF/gWH8xGm0ycieCfRyWlNOrh/qy7vgo2ZE0f/Dcb17xnb38dyswiYTMJTyr kSgQLv4Cy6zWO5DKs1lLtUYgxU3I0Pcg6vAcB9ANkZQCP2eN3XN6C7xj+WgLcb7KGODE 4KB9vhMICaW+uvyFh4FlKp2oHcuF59lsBgMlxyZEnOaSCN/x2Qq32bNp+c6c3j5YGcpo tOwiBjfJLdxaophtonCmB7eidO2yF5ef2ksKaFQanTO81vzqOwj9SCpjq5e1J4H7p650 MWxQ== 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; bh=wi8yAZwr2uPa/2bOJGN70Zqs1qGp+gTXnmFVH/Y6tJk=; b=UwNVX8XgHwL6hbWUjPoKsAQ9uT2gcoHITVNiNKWU1UgEJEPUVlDBugfTw8UwbSn/+V ZK13NXwBc/UAH1pkgqIghFtX7fDQJLRJGEme+O7WpIcam17CIYmB0fQ1+u928eSuIelU wu7PiGD0CmTi+AaVjCGXw0tlEWrD+V23t4Oq9GgmwnP8ZsoVF7nK8Y1qbgpQOKWrt0MV FxT+bHkHyVw6J03PIJtQQLcL9TdLcuikhfIHZXlWEHNIyS2EvWm9YAJC2FzbZo3AFEcz ggBYEc69rAPnYGz1x5Tr7RSbSsW6J9EWiZ+dK3hvNLp9pMEfhkvfjgIRCUcqT8hhTAnc sj+g== X-Gm-Message-State: APjAAAUjvFwJDWOND3euk2jeuAEGOF5OdMKOBPajGb6kuuyX95AyVHqm c//NEvJIbcxPOmHmGyGpqpmN2gyuLATD2w== X-Google-Smtp-Source: APXvYqwPbcflQxyxxx/c5Ajzf1NxpNdx7zB/gSpMBYIi5iQekMyRL4WzZ3jgvxhQe7Sh6Nqf+MFRnA== X-Received: by 2002:ac2:5ec3:: with SMTP id d3mr1220517lfq.44.1565837676811; Wed, 14 Aug 2019 19:54:36 -0700 (PDT) Return-Path: Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id n17sm214035lfi.37.2019.08.14.19.54.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Aug 2019 19:54:36 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com Subject: [edk2-platforms: PATCH v2 05/10] Marvell/Library: ArmadaSoCDescLib: Extend Xenon information Date: Thu, 15 Aug 2019 04:54:09 +0200 Message-Id: <1565837654-13258-6-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1565837654-13258-1-git-send-email-mw@semihalf.com> References: <1565837654-13258-1-git-send-email-mw@semihalf.com> Hitherto SoC description library code assumed that there could be only two Xenon SdMmc controller instances in the SoC. Remove this limitation, so that to support CN913x SoCs, which may have up to 4 of such interfaces. Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 5 +-- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 34 +++++++++++++------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h index 0296d43..265b4f4 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h @@ -90,8 +90,9 @@ // // Platform description of SDMMC controllers // -#define MV_SOC_MAX_SDMMC_COUNT 2 -#define MV_SOC_SDMMC_BASE(Index) ((Index) == 0 ? 0xF06E0000 : 0xF2780000) +#define MV_SOC_SDMMC_PER_CP_COUNT 1 +#define MV_SOC_AP80X_SDMMC_BASE 0xF06E0000 +#define MV_SOC_CP_SDMMC_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x780000) // // Platform description of UTMI PHY's diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c index 5947601..3ffd57e 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c @@ -349,26 +349,36 @@ EFI_STATUS EFIAPI ArmadaSoCDescSdMmcGet ( IN OUT MV_SOC_SDMMC_DESC **SdMmcDesc, - IN OUT UINTN *DescCount + IN OUT UINTN *Count ) { - MV_SOC_SDMMC_DESC *Desc; - UINTN Index; + MV_SOC_SDMMC_DESC *SdMmc; + UINTN CpCount, CpIndex; - Desc = AllocateZeroPool (MV_SOC_MAX_SDMMC_COUNT * sizeof (MV_SOC_SDMMC_DESC)); - if (Desc == NULL) { + CpCount = FixedPcdGet8 (PcdMaxCpCount); + + *Count = CpCount * MV_SOC_SDMMC_PER_CP_COUNT + MV_SOC_AP806_COUNT; + SdMmc = AllocateZeroPool (*Count * sizeof (MV_SOC_SDMMC_DESC)); + if (SdMmc == NULL) { DEBUG ((DEBUG_ERROR, "%a: Cannot allocate memory\n", __FUNCTION__)); return EFI_OUT_OF_RESOURCES; } - for (Index = 0; Index < MV_SOC_MAX_SDMMC_COUNT; Index++) { - Desc[Index].SdMmcBaseAddress = MV_SOC_SDMMC_BASE (Index); - Desc[Index].SdMmcMemSize = SIZE_1KB; - Desc[Index].SdMmcDmaType = NonDiscoverableDeviceDmaTypeCoherent; - } + *SdMmcDesc = SdMmc; + + /* AP80x controller */ + SdMmc->SdMmcBaseAddress = MV_SOC_AP80X_SDMMC_BASE; + SdMmc->SdMmcMemSize = SIZE_1KB; + SdMmc->SdMmcDmaType = NonDiscoverableDeviceDmaTypeCoherent; + SdMmc++; - *SdMmcDesc = Desc; - *DescCount = MV_SOC_MAX_SDMMC_COUNT; + /* CP11x controllers */ + for (CpIndex = 0; CpIndex < CpCount; CpIndex++) { + SdMmc->SdMmcBaseAddress = MV_SOC_CP_SDMMC_BASE (CpIndex); + SdMmc->SdMmcMemSize = SIZE_1KB; + SdMmc->SdMmcDmaType = NonDiscoverableDeviceDmaTypeCoherent; + SdMmc++; + } return EFI_SUCCESS; } -- 2.7.4