From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by mx.groups.io with SMTP id smtpd.web10.1687.1570807279558004366 for ; Fri, 11 Oct 2019 08:21:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=yQ0Yde40; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.208.195, mailfrom: mw@semihalf.com) Received: by mail-lj1-f195.google.com with SMTP id m13so10170102ljj.11 for ; Fri, 11 Oct 2019 08:21:19 -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=O/T8y6NllPL/rv7/S/P3vzjUeaaWp8XCehHaDwQ5v88=; b=yQ0Yde4012q/3hBEzpqyZ0ZYeveKzWFgalEOvOtqkTnYz5Q0idYdd003zwT2yosuQJ sFsfHeWvzfzsfDzVwbinoB2dNphkMKY3fI4yunN2KhVnEjxMsa3v2erzaJuPnDmDyVFQ ust8FMoMAk+4sdqoAPF8zOj3KvQjjXAA7gZGUuJMU+k55lzuWKfwOr8deFq9Al0HVGVh yh9NypNRlZ5kVWZS4S3d+98FI3c2jiIlLgmPrpEhMQjuDRj9PXjIZOAOYz1HL8L0u9Tn 0dp3F23F99wiDklUm6nml3zgOe+1qRdhVSLPaE+Fg0Zk9S5xZ0QuI7bkrbOIzlLSLeP0 8Zrw== 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=O/T8y6NllPL/rv7/S/P3vzjUeaaWp8XCehHaDwQ5v88=; b=IzHN5HqRlcEX/gnKdH40P0GvVvoBRlTYoLCjllCfoELxOeAp1vddQ65gxwFTBPmdqZ ibTosnGwgREaeaUFUuOgFEVZSl+B43mcoiE5vklOY8MqPkLzlS2eIU5ki8WeLxiUm1qX bUTQ+R2/BozyYD6GQ68n9LGvi0zTvT9F6iL3liaff+jnbJYAgOvrIOyEhdLxTTN70K8M BG1bAOGsnhnxLIgla5O9uq+fudkxMdpv2tlPJIt18qozzmS33gcVWQzNmemF+EiL1D5b bdiVKG5PUyU/QPife9TzNNox/Pcn4xRXMVhvDHX4pw5pJjc6B8IjlGZM2hTMqTpeT7Ad N1zA== X-Gm-Message-State: APjAAAW9TOSdKgycTCFZ3fLGJngUJlO3rx0OPdpZrovaUrBj7ikRw6nL 4IpHc5zSMVZ9zhoPA5EhCkUd13UtqHjvuQ== X-Google-Smtp-Source: APXvYqynjN5mloO2F1Pb8xNkHg+e9bAZeFPnYXOnlz5n+ZBxxVE/AKZr4kITX4X9Eg3LPyL6gW1Z5Q== X-Received: by 2002:a2e:9d12:: with SMTP id t18mr9672614lji.196.1570807277458; Fri, 11 Oct 2019 08:21:17 -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 y4sm2058939ljd.82.2019.10.11.08.21.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 11 Oct 2019 08:21:16 -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 v4 4/9] Marvell/Library: ArmadaSoCDescLib/MppLib: Extend Xenon information Date: Fri, 11 Oct 2019 17:20:26 +0200 Message-Id: <1570807231-4155-5-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1570807231-4155-1-git-send-email-mw@semihalf.com> References: <1570807231-4155-1-git-send-email-mw@semihalf.com> Hitherto SoC description and MppLib libraries code assumed that there could be only two Xenon SdMmc controller instances in the SoC. Remove those limitations, so that to support CN913x SoCs, which may have up to 4 of such interfaces. Signed-off-by: Marcin Wojtas Acked-by: Leif Lindholm --- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 5 +-- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 34 +++++++++++++------- Silicon/Marvell/Library/MppLib/MppLib.c | 4 +-- 3 files changed, 26 insertions(+), 17 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; } diff --git a/Silicon/Marvell/Library/MppLib/MppLib.c b/Silicon/Marvell/Library/MppLib/MppLib.c index 40d9077..f20668d 100644 --- a/Silicon/Marvell/Library/MppLib/MppLib.c +++ b/Silicon/Marvell/Library/MppLib/MppLib.c @@ -139,11 +139,9 @@ SetSdMmcPhyMpp ( case 0: Offset = SD_MMC_PHY_AP_MPP_OFFSET; break; - case 1: + default: Offset = SD_MMC_PHY_CP0_MPP_OFFSET; break; - default: - return; } /* -- 2.7.4