From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by mx.groups.io with SMTP id smtpd.web09.2556.1632536290161739505 for ; Fri, 24 Sep 2021 19:18:10 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20210112.gappssmtp.com header.s=20210112 header.b=N8CnmP/7; spf=pass (domain: nuviainc.com, ip: 209.85.210.177, mailfrom: rebecca@nuviainc.com) Received: by mail-pf1-f177.google.com with SMTP id w19so10409453pfn.12 for ; Fri, 24 Sep 2021 19:18:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Agrq1FTO57n6gNKmvfNGVVP+BjaVh5TF1D6DR8sGSCg=; b=N8CnmP/7Tf/7S6K8PaI9iJIG5ErdA5ckQ2Ol0+sD4dvorJiH0ORwUKvra/VV6uI1Rm UnMg2X3JIxP+avB//y+XhUKwu9LducLLmkAsuavcFTRVb1iIFF7rzzQ2l1k2pLaY1oNB Fc5j1W2SU+MyGY8e/4tIczDGu0UCgqQEX1pzpTOmmuwUzdqxBBE8TOZ2i5WNekRzDmzY 8rixA+gnogkVpVGlcsGQT9aO95uAzfRq1FZSd7DPvFWorXVg6AYRFsczYxGFJ+PbQT5B y/eqgSEkp5n0N0hXtqG+ZvoWA22KBFtARtF7+QBnL4uMvwXxk8NS0AJYrm5JB+NapXYC 9LZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Agrq1FTO57n6gNKmvfNGVVP+BjaVh5TF1D6DR8sGSCg=; b=KvCSAQa9HVuZ6PJTbSoPBqI0UI0sxBi+XtWDpSbQ59zuH2RV2r1b8XUrnweGOwTW2g Y9GuCeXYMdvTKvD9y9XeAmc+2tuf4AptaE8xgIZotV1LS0JHANw2ifkniwuQ7c2e8ML0 Fs0ZO5l60opKZDkUnjvkS9ktADFP5YVAkCI2g55QpsF5dJXLPhOKrD1GdZVtRuR8t6QM aV1IHmpBHXQ4wBBL8mMbumdcuQpBKlEXsRUrBqntGm2kh+gOX0JXaWpNQFTB5jxKFH7L eMpx6/Zqys7jExA/iCmVYGGOxTMS8UjTbfYp33Bq2hY+1RaYnPIFqQxZ9B2Qb3zkqwOZ 1/vw== X-Gm-Message-State: AOAM531GAQaIomK+B63z6/HhES4ujSU/DkB4KB3vdEE+8Q1ofekyhu6R G94AdcRYEaoYmFiekEat0zuvESnWEqfwBf0pUPdBqAuLU6Ts4z+4cWVLUJWp99nSWKMWOqtpPOL gn8iebxp69RuA7WFubXzF+HquClHStadmEiLr8dFLhNjXz0VuMue8XamKozoNNwJEprsVj+6n X-Google-Smtp-Source: ABdhPJxT8npuxO9bHKe/thDtav/AZ5GLYlwvfqpKLcBX2Ejbm8u9kxoVPuGAYFDju1/OKYu5q6tU6g== X-Received: by 2002:aa7:9282:0:b0:3e2:800a:b423 with SMTP id j2-20020aa79282000000b003e2800ab423mr12880944pfa.21.1632536289291; Fri, 24 Sep 2021 19:18:09 -0700 (PDT) Return-Path: Received: from linbox.int.bluestop.org.com (c-174-52-16-57.hsd1.ut.comcast.net. [174.52.16.57]) by smtp.gmail.com with ESMTPSA id q11sm10562111pfn.91.2021.09.24.19.18.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Sep 2021 19:18:08 -0700 (PDT) From: "Rebecca Cran" To: devel@edk2.groups.io, Sami Mujawar , Leif Lindholm , Ard Biesheuvel , Gerd Hoffmann , rfc@edk2.groups.io Cc: Rebecca Cran Subject: [RFC] [PATCH 1/2] ArmPkg: Replace CoreId and ClusterId with Mpidr in ARM_CORE_INFO struct Date: Fri, 24 Sep 2021 20:17:51 -0600 Message-Id: <20210925021752.20678-2-rebecca@nuviainc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210925021752.20678-1-rebecca@nuviainc.com> References: <20210925021752.20678-1-rebecca@nuviainc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Remove the ClusterId and CoreId fields in the ARM_CORE_INFO structure in favor of a new Mpidr field. Update code in ArmPlatformPkg/PrePeiCore/MainMPCore and ArmPlatformPkg/PrePi/MainMPCore.c to use the new field and call new macros GET_MPIDR_AFF0 and GET_MPIDR_AFF1 instead. Signed-off-by: Rebecca Cran --- ArmPkg/Include/Guid/ArmMpCoreInfo.h | 3 +-- ArmPkg/Include/Library/ArmLib.h | 4 ++++ ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c | 8 ++++---- ArmPlatformPkg/PrePeiCore/MainMPCore.c | 2 +- ArmPlatformPkg/PrePi/MainMPCore.c | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/ArmPkg/Include/Guid/ArmMpCoreInfo.h b/ArmPkg/Include/Guid/ArmMpCoreInfo.h index b810767879ae..04c44650ebf5 100644 --- a/ArmPkg/Include/Guid/ArmMpCoreInfo.h +++ b/ArmPkg/Include/Guid/ArmMpCoreInfo.h @@ -14,8 +14,7 @@ #define MPIDR_U_BIT_MASK 0x40000000 typedef struct { - UINT32 ClusterId; - UINT32 CoreId; + UINT64 Mpidr; // MP Core Mailbox EFI_PHYSICAL_ADDRESS MailboxSetAddress; diff --git a/ArmPkg/Include/Library/ArmLib.h b/ArmPkg/Include/Library/ArmLib.h index 79ea755777a9..d764cc670970 100644 --- a/ArmPkg/Include/Library/ArmLib.h +++ b/ArmPkg/Include/Library/ArmLib.h @@ -107,6 +107,10 @@ typedef enum { #define GET_CORE_ID(MpId) ((MpId) & ARM_CORE_MASK) #define GET_CLUSTER_ID(MpId) (((MpId) & ARM_CLUSTER_MASK) >> 8) #define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId)) +#define GET_MPIDR_AFF0(MpId) ((MpId) & ARM_CORE_AFF0) +#define GET_MPIDR_AFF1(MpId) (((MpId) & ARM_CORE_AFF1) >> 8) +#define GET_MPIDR_AFF2(MpId) (((MpId) & ARM_CORE_AFF2) >> 16) +#define GET_MPIDR_AFF3(MpId) (((MpId) & ARM_CORE_AFF3) >> 32) #define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK) /** Reads the CCSIDR register for the specified cache. diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c b/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c index 1cd9ec30a977..6630cb68452c 100644 --- a/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c +++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c @@ -15,7 +15,7 @@ ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = { { // Cluster 0, Core 0 - 0x0, 0x0, + 0x0, // MP Core MailBox Set/Get/Clear Addresses and Clear Value (EFI_PHYSICAL_ADDRESS)0, @@ -25,7 +25,7 @@ ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = { }, { // Cluster 0, Core 1 - 0x0, 0x1, + 0x1, // MP Core MailBox Set/Get/Clear Addresses and Clear Value (EFI_PHYSICAL_ADDRESS)0, @@ -35,7 +35,7 @@ ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = { }, { // Cluster 0, Core 2 - 0x0, 0x2, + 0x2, // MP Core MailBox Set/Get/Clear Addresses and Clear Value (EFI_PHYSICAL_ADDRESS)0, @@ -45,7 +45,7 @@ ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = { }, { // Cluster 0, Core 3 - 0x0, 0x3, + 0x3, // MP Core MailBox Set/Get/Clear Addresses and Clear Value (EFI_PHYSICAL_ADDRESS)0, diff --git a/ArmPlatformPkg/PrePeiCore/MainMPCore.c b/ArmPlatformPkg/PrePeiCore/MainMPCore.c index 859f1adf2078..5f8a268bf664 100644 --- a/ArmPlatformPkg/PrePeiCore/MainMPCore.c +++ b/ArmPlatformPkg/PrePeiCore/MainMPCore.c @@ -65,7 +65,7 @@ SecondaryMain ( // Find the core in the ArmCoreTable for (Index = 0; Index < ArmCoreCount; Index++) { - if ((ArmCoreInfoTable[Index].ClusterId == ClusterId) && (ArmCoreInfoTable[Index].CoreId == CoreId)) { + if ((GET_MPIDR_AFF1 (ArmCoreInfoTable[Index].Mpidr) == ClusterId) && (GET_MPIDR_AFF0 (ArmCoreInfoTable[Index].Mpidr) == CoreId)) { break; } } diff --git a/ArmPlatformPkg/PrePi/MainMPCore.c b/ArmPlatformPkg/PrePi/MainMPCore.c index 091464df2aa9..6497a1ad27fd 100644 --- a/ArmPlatformPkg/PrePi/MainMPCore.c +++ b/ArmPlatformPkg/PrePi/MainMPCore.c @@ -64,7 +64,7 @@ SecondaryMain ( // Find the core in the ArmCoreTable for (Index = 0; Index < ArmCoreCount; Index++) { - if ((ArmCoreInfoTable[Index].ClusterId == ClusterId) && (ArmCoreInfoTable[Index].CoreId == CoreId)) { + if ((GET_MPIDR_AFF1 (ArmCoreInfoTable[Index].Mpidr) == ClusterId) && (GET_MPIDR_AFF0 (ArmCoreInfoTable[Index].Mpidr) == CoreId)) { break; } } -- 2.31.1