From nobody Mon Feb 9 11:06:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+45278+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+45278+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1565361407; cv=none; d=zoho.com; s=zohoarc; b=GWz5FkBnGdwsJZ7eCkWLJuProc1pJkKJEQxlLS+pPcv7KLSKe4VvSbV3tiXSMUz7Mx4WlKcmsv5AYxE7UA1aUFAT0ZhkQceF58J9T2yVLUSjm64ZCMN02s5n6dXX//21UeQao+hnJDxFL8uPQSxfhfDXNAL3D4NUQlzEIVwMc7E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565361407; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=zxMeWQR3ctwxGdGPMXPaCX8t92n6eJ6F6NmKcX0Aja8=; b=XTw7Ndv2eSbRA9nT34ZGJmQxwzjOzYLcxFfcLt1DIIoVwo5/Gcny/ayxLYNlK985mscexFHr3cWSYiulrUcDNc2XgrAuvGhV+5ppsH0s4Lw4DHM1V7WtESOtxcc8o5VG4gyT+gmWOWgxc0V2yBUJYVBcIdRhofQWu3P6LSj4YrM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+45278+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1565361407179170.74099104725815; Fri, 9 Aug 2019 07:36:47 -0700 (PDT) Return-Path: X-Received: from mga09.intel.com (mga09.intel.com []) by groups.io with SMTP; Fri, 09 Aug 2019 07:36:46 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Aug 2019 07:36:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,364,1559545200"; d="scan'208";a="203942047" X-Received: from gklab-27-32.ger.corp.intel.com ([10.102.28.45]) by fmsmga002.fm.intel.com with ESMTP; 09 Aug 2019 07:36:45 -0700 From: "Albecki, Mateusz" To: devel@edk2.groups.io Cc: Mateusz Albecki , Hao A Wu Subject: [edk2-devel] [PATCHv3 3/4] MdeModulePkg/UfsPassThruDxe: Refactor private data to use EDKII_UFS_HC_INFO Date: Fri, 9 Aug 2019 16:36:19 +0200 Message-Id: <20190809143620.4924-4-mateusz.albecki@intel.com> In-Reply-To: <20190809143620.4924-1-mateusz.albecki@intel.com> References: <20190809143620.4924-1-mateusz.albecki@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mateusz.albecki@intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1565361406; bh=YIFgccjCjwHxG+szrnAgl9u8kWmKGPkp1GzxuvznB1s=; h=Cc:Date:From:Reply-To:Subject:To; b=Huz98tzzacxXM463TInWHroyvOLVTl0YRQzec3C/f89NhsC7vz9fc8arlt3OaDVqR9v asuJhqHtCOIguCwb3zRj/+6F0L3W0mLG8ZmY6ChFT03GVZJVRX6gPPp1336QLkd0PI8s/ iWE3HX3mwAbw4Lrvc0QMLXWVBdBAVCRnPJ0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D1343 Private data has been refactored to use EDKII_UFS_HC_INFO structure to store host controller capabilities and version information. Getting host controller data has been moved into single place and is done before host controller enable. Cc: Hao A Wu Signed-off-by: Mateusz Albecki --- MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c | 9 +++- MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.h | 15 +++++- .../Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 57 ++++++++++++++----= ---- 3 files changed, 58 insertions(+), 23 deletions(-) diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c b/MdeModuleP= kg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c index 1518b251d8..7dce217d49 100644 --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c @@ -1,6 +1,6 @@ /** @file =20 - Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -35,7 +35,7 @@ UFS_PASS_THRU_PRIVATE_DATA gUfsPassThruTemplate =3D { }, 0, // UfsHostController 0, // UfsHcBase - 0, // Capabilities + {0, 0}, // UfsHcInfo 0, // TaskTag 0, // UtpTrlBase 0, // Nutrs @@ -865,6 +865,11 @@ UfsPassThruDriverBindingStart ( Private->UfsHostController =3D UfsHc; Private->UfsHcBase =3D UfsHcBase; InitializeListHead (&Private->Queue); + Status =3D GetUfsHcInfo (Private); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Failed to initialize UfsHcInfo\n")); + goto Error; + } =20 // // Initialize UFS Host Controller H/W. diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.h b/MdeModuleP= kg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.h index b79be77709..c511aa8c7a 100644 --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.h +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.h @@ -62,7 +62,7 @@ typedef struct _UFS_PASS_THRU_PRIVATE_DATA { EFI_UFS_DEVICE_CONFIG_PROTOCOL UfsDevConfig; EDKII_UFS_HOST_CONTROLLER_PROTOCOL *UfsHostController; UINTN UfsHcBase; - UINT32 Capabilities; + EDKII_UFS_HC_INFO UfsHcInfo; =20 UINT8 TaskTag; =20 @@ -959,6 +959,19 @@ UfsRwUfsAttribute ( IN OUT UINT32 *AttrSize ); =20 +/** + Initializes UfsHcInfo field in private data. + + @param[in] Private Pointer to host controller private data. + + @retval EFI_SUCCESS UfsHcInfo initialized successfully. + @retval Others Failed to initalize UfsHcInfo. +**/ +EFI_STATUS +GetUfsHcInfo ( + IN UFS_PASS_THRU_PRIVATE_DATA *Private + ); + extern EFI_COMPONENT_NAME_PROTOCOL gUfsPassThruComponentName; extern EFI_COMPONENT_NAME2_PROTOCOL gUfsPassThruComponentName2; extern EFI_DRIVER_BINDING_PROTOCOL gUfsPassThruDriverBinding; diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c b/MdeModu= lePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c index 6ea27e473c..74be3efc41 100644 --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c @@ -731,7 +731,7 @@ UfsFindAvailableSlotInTrl ( return Status; } =20 - Nutrs =3D (UINT8)((Private->Capabilities & UFS_HC_CAP_NUTRS) + 1); + Nutrs =3D (UINT8)((Private->UfsHcInfo.Capabilities & UFS_HC_CAP_NUTRS)= + 1); =20 for (Index =3D 0; Index < Nutrs; Index++) { if ((Data & (BIT0 << Index)) =3D=3D 0) { @@ -1754,7 +1754,7 @@ UfsAllocateAlignCommonBuffer ( BOOLEAN Is32BitAddr; EDKII_UFS_HOST_CONTROLLER_PROTOCOL *UfsHc; =20 - if ((Private->Capabilities & UFS_HC_CAP_64ADDR) =3D=3D UFS_HC_CAP_64ADDR= ) { + if ((Private->UfsHcInfo.Capabilities & UFS_HC_CAP_64ADDR) =3D=3D UFS_HC_= CAP_64ADDR) { Is32BitAddr =3D FALSE; } else { Is32BitAddr =3D TRUE; @@ -1947,7 +1947,6 @@ UfsInitTaskManagementRequestList ( IN UFS_PASS_THRU_PRIVATE_DATA *Private ) { - UINT32 Data; UINT8 Nutmrs; VOID *CmdDescHost; EFI_PHYSICAL_ADDRESS CmdDescPhyAddr; @@ -1961,17 +1960,10 @@ UfsInitTaskManagementRequestList ( CmdDescMapping =3D NULL; CmdDescPhyAddr =3D 0; =20 - Status =3D UfsMmioRead32 (Private, UFS_HC_CAP_OFFSET, &Data); - if (EFI_ERROR (Status)) { - return Status; - } - - Private->Capabilities =3D Data; - // // Allocate and initialize UTP Task Management Request List. // - Nutmrs =3D (UINT8) (RShiftU64 ((Private->Capabilities & UFS_HC_CAP_NUTMR= S), 16) + 1); + Nutmrs =3D (UINT8) (RShiftU64 ((Private->UfsHcInfo.Capabilities & UFS_HC= _CAP_NUTMRS), 16) + 1); Status =3D UfsAllocateAlignCommonBuffer (Private, Nutmrs * sizeof (UTP_T= MRD), &CmdDescHost, &CmdDescPhyAddr, &CmdDescMapping); if (EFI_ERROR (Status)) { return Status; @@ -2020,7 +2012,6 @@ UfsInitTransferRequestList ( IN UFS_PASS_THRU_PRIVATE_DATA *Private ) { - UINT32 Data; UINT8 Nutrs; VOID *CmdDescHost; EFI_PHYSICAL_ADDRESS CmdDescPhyAddr; @@ -2034,17 +2025,10 @@ UfsInitTransferRequestList ( CmdDescMapping =3D NULL; CmdDescPhyAddr =3D 0; =20 - Status =3D UfsMmioRead32 (Private, UFS_HC_CAP_OFFSET, &Data); - if (EFI_ERROR (Status)) { - return Status; - } - - Private->Capabilities =3D Data; - // // Allocate and initialize UTP Transfer Request List. // - Nutrs =3D (UINT8)((Private->Capabilities & UFS_HC_CAP_NUTRS) + 1); + Nutrs =3D (UINT8)((Private->UfsHcInfo.Capabilities & UFS_HC_CAP_NUTRS) = + 1); Status =3D UfsAllocateAlignCommonBuffer (Private, Nutrs * sizeof (UTP_TR= D), &CmdDescHost, &CmdDescPhyAddr, &CmdDescMapping); if (EFI_ERROR (Status)) { return Status; @@ -2366,3 +2350,36 @@ ProcessAsyncTaskList ( } } =20 +/** + Initializes UfsHcInfo field in private data. + + @param[in] Private Pointer to host controller private data. + + @retval EFI_SUCCESS UfsHcInfo initialized successfully. + @retval Others Failed to initalize UfsHcInfo. +**/ +EFI_STATUS +GetUfsHcInfo ( + IN UFS_PASS_THRU_PRIVATE_DATA *Private + ) +{ + UINT32 Data; + EFI_STATUS Status; + + Status =3D UfsMmioRead32 (Private, UFS_HC_VER_OFFSET, &Data); + if (EFI_ERROR (Status)) { + return Status; + } + + Private->UfsHcInfo.Version =3D Data; + + Status =3D UfsMmioRead32 (Private, UFS_HC_CAP_OFFSET, &Data); + if (EFI_ERROR (Status)) { + return Status; + } + + Private->UfsHcInfo.Capabilities =3D Data; + + return EFI_SUCCESS; +} + --=20 2.14.1.windows.1 -------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45278): https://edk2.groups.io/g/devel/message/45278 Mute This Topic: https://groups.io/mt/32811061/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-