From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 7687E740034 for ; Wed, 29 May 2024 08:55:29 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=LqjNiPgccqlSdstTlxO3EjM56O8m4UeeC3ELaaaWHfo=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20240206; t=1716972929; v=1; b=GMXMZZEUFeT5hdczlr2Y1fsbD1Pm0s4wdayrTSCNHil5uAJ3WBxADu2Ugh941CE9TvIVaFs+ Ynis0c4GTIx3cvt3Ckh+v6uAW6NvK8SJESIWVqYd2+misVgIgkx0szBcPhmrXx3PTnhfV9illC4 P+KloI1KONU10WDiC8I4ZJNP70PZ/j8nViXUkx0O7KezBleJvHXAm4VO9BlM9wjYa2q07Ol7pvP G/zxqjkpZ8JtV/RuFM6AXj44KuNj/CXezmSXdePSEsiO/0PUj6Eg4GzN6SBFXscd4Wuo3N8MIAL fMW36+kxj6s0gV1V4M16ZO17uZknMZ6lIdv0q6ECFvU8Q== X-Received: by 127.0.0.2 with SMTP id DdhHYY7687511x7luED6VKNx; Wed, 29 May 2024 01:55:28 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.9241.1716972927078743687 for ; Wed, 29 May 2024 01:55:27 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D4F492F4; Wed, 29 May 2024 01:55:50 -0700 (PDT) X-Received: from usa.arm.com (a077434.arm.com [10.162.46.143]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id EF3253F762; Wed, 29 May 2024 01:55:24 -0700 (PDT) From: "Sahil Kaushal" To: devel@edk2.groups.io Cc: Ard Biesheuvel , =?UTF-8?q?Leif=20Lindholm=20=C2=A0?= , Sami Mujawar , =?UTF-8?q?sahil=20=C2=A0?= Subject: [edk2-devel] [edk2-platforms][PATCH V4 00/17] Split NorFlashDxe driver and add CadenceQspiNorFlashDeviceLib library Date: Wed, 29 May 2024 14:25:00 +0530 Message-Id: <20240529085517.1074417-1-Sahil.Kaushal@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Wed, 29 May 2024 01:55:27 -0700 Resent-From: sahil.kaushal@arm.com Reply-To: devel@edk2.groups.io,sahil.kaushal@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: a3oXxmJN6zeYlPUDnvh7pc0dx7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=GMXMZZEU; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io From: sahil This patch series adds the following changes: 1. Splits the NorFlashDxe driver to introduce a NorFlashDeviceLib that implements the specifics for the respective flash. This will allow us to plug different libraries implementing functionality of various NOR Flash. The flash specific code in NorFlashDxe has been moved to P30NorFlashDeviceLib library. 2. Adds support for CadenceQspiNorFlashDeviceLib which is used by N1Sdp platform along with NorFlashDxe driver. N1Sdp uses an emulated variable storage on DDR memory for the variable storage. But this emulated variable storage is a volatile memory and so the values of variables can't persist on next reboot or in power cycle. In N1Sdp platform, the SoC is connected to IOFPGA which has a Cadence Quad SPI (QSPI) controller. This QSPI controller manages the flash chip device via QSPI bus. With these changes we use this NOR flash device for persistent variable storage. 3. Fixes memory leak in NorFlashCreateInstance() function. v4: - Fixed code review comments v3: - Fixed code review comments - Added 3 new patches for the following: - Fix memory leak in NorFlashCreateInstance() - Make local functions STATIC in NorFlashDxe - Remove unimplemented functions from NorFlash.h v2: - Fixed code review comments - Split the NorFlashDxe driver and moved flash specific code to P30NorFlashDeviceLib - Added NOR flash Dxe Driver for N1Sdp as a library instead of a driver Link to branch with the patches in this series - https://github.com/sah01Kaushal/edk2-platforms/tree/n1sdp_persistent_stor= age_v4 Links to v3: https://edk2.groups.io/g/devel/message/119142 https://edk2.groups.io/g/devel/message/119143 https://edk2.groups.io/g/devel/message/119144 https://edk2.groups.io/g/devel/message/119145 https://edk2.groups.io/g/devel/message/119146 https://edk2.groups.io/g/devel/message/119147 https://edk2.groups.io/g/devel/message/119148 https://edk2.groups.io/g/devel/message/119149 https://edk2.groups.io/g/devel/message/119150 https://edk2.groups.io/g/devel/message/119151 https://edk2.groups.io/g/devel/message/119152 https://edk2.groups.io/g/devel/message/119153 https://edk2.groups.io/g/devel/message/119154 https://edk2.groups.io/g/devel/message/119155 https://edk2.groups.io/g/devel/message/119156 https://edk2.groups.io/g/devel/message/119157 https://edk2.groups.io/g/devel/message/119158 https://edk2.groups.io/g/devel/message/119159 https://github.com/sah01Kaushal/edk2-platforms/tree/n1sdp_persistent_stor= age_v3 Links to v2: https://edk2.groups.io/g/devel/topic/105690949 https://edk2.groups.io/g/devel/topic/105690948 https://edk2.groups.io/g/devel/topic/105690947 https://edk2.groups.io/g/devel/topic/105690946 https://edk2.groups.io/g/devel/topic/105690945 https://edk2.groups.io/g/devel/topic/105690944 https://edk2.groups.io/g/devel/topic/105690943 https://edk2.groups.io/g/devel/topic/105690942 https://edk2.groups.io/g/devel/topic/105690941 https://edk2.groups.io/g/devel/topic/105690940 https://edk2.groups.io/g/devel/topic/105690939 https://edk2.groups.io/g/devel/topic/105690938 https://edk2.groups.io/g/devel/topic/105690937 https://edk2.groups.io/g/devel/topic/105690936 https://edk2.groups.io/g/devel/topic/105690935 https://github.com/sah01Kaushal/edk2-platforms/tree/n1sdp_persistent_stor= age_v2 Links to v1: https://edk2.groups.io/g/devel/topic/102625035 https://edk2.groups.io/g/devel/topic/102625033 https://edk2.groups.io/g/devel/topic/102625034 https://edk2.groups.io/g/devel/topic/102625036 https://edk2.groups.io/g/devel/topic/102625037 https://edk2.groups.io/g/devel/topic/102625038 sahil (17): Platform/ARM/NorFlashDxe: Move DiskIo related functions out of NorFlash.c Platform/ARM/NorFlashDxe: Move NorFlashVirtualNotifyEvent Platform/ARM/NorFlashDxe: Add NorFlashCommon.h header file Platform/ARM/NorFlashDxe: Move flash specific functions to NorFlash.c Platform/ARM/NorFlashDxe: Remove unimplemented functions from NorFlash.h Platform/ARM/NorFlashDxe: Make local functions STATIC Platform/ARM: Create NorFlashDeviceLib library interface for flash specific functions Platform/ARM: Add P30NorFlashDeviceLib Library Platform/ARM/NorFlashDxe: Switch from NorFlash.c to NorFlashDeviceLib Platform/ARM: Add HostControllerBaseAddress variable Platform/ARM/NorFlashDxe: Fix memory leak in NorFlashCreateInstance() Platform/ARM: Add optional provision to fetch and print NOR Flash info Silicon/ARM/NeoverseN1Soc: Enable SCP QSPI flash region Silicon/ARM/NeoverseN1Soc: NOR flash library for N1Sdp Platform/ARM: Add CadenceQspiNorFlashDeviceLib for NorFlashDxe Platform/ARM/N1Sdp: Persistent storage for N1Sdp Platform/ARM/N1Sdp: Enable FaultTolerantWrite Dxe driver for N1Sdp Platform/ARM/ARM.dec = | 4 + Platform/ARM/SgiPkg/SgiPlatform.dsc.inc = | 3 + Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc = | 3 + Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc = | 3 + Platform/ARM/JunoPkg/ArmJuno.dsc = | 3 + Platform/ARM/N1Sdp/N1SdpPlatform.dsc = | 24 +- Platform/ARM/VExpressPkg/PlatformStandaloneMm.dsc = | 3 + Platform/ARM/N1Sdp/N1SdpPlatform.fdf = | 3 + Platform/ARM/Drivers/NorFlashDxe/NorFlashDxe.inf = | 8 +- Platform/ARM/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf = | 8 +- Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDev= iceLib.inf | 32 + Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.inf = | 35 + Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf = | 35 + Platform/ARM/Drivers/NorFlashDxe/NorFlash.h = | 422 -------- Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h = | 209 ++++ Platform/ARM/Include/Library/NorFlashDeviceLib.h = | 256 +++++ Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDev= iceLib.h | 46 + Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.h = | 98 ++ Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h = | 8 + Platform/ARM/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c = | 131 ++- Platform/ARM/Drivers/NorFlashDxe/NorFlashDxe.c = | 301 +++--- Platform/ARM/Drivers/NorFlashDxe/NorFlashFvb.c = | 2 +- Platform/ARM/Drivers/NorFlashDxe/NorFlashStandaloneMm.c = | 194 ++-- Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDev= iceLib.c | 1034 ++++++++++++++++++++ Platform/ARM/{Drivers/NorFlashDxe/NorFlash.c =3D> Library/P30NorFlashDev= iceLib/P30NorFlashDeviceLib.c} | 306 +++--- Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c = | 80 ++ Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c = | 8 +- 27 files changed, 2365 insertions(+), 894 deletions(-) create mode 100644 Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/Cad= enceQspiNorFlashDeviceLib.inf create mode 100644 Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlash= DeviceLib.inf create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlas= hLib.inf delete mode 100644 Platform/ARM/Drivers/NorFlashDxe/NorFlash.h create mode 100644 Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h create mode 100644 Platform/ARM/Include/Library/NorFlashDeviceLib.h create mode 100644 Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/Cad= enceQspiNorFlashDeviceLib.h create mode 100644 Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlash= DeviceLib.h create mode 100644 Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/Cad= enceQspiNorFlashDeviceLib.c rename Platform/ARM/{Drivers/NorFlashDxe/NorFlash.c =3D> Library/P30NorF= lashDeviceLib/P30NorFlashDeviceLib.c} (77%) create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlas= hLib.c --=20 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119315): https://edk2.groups.io/g/devel/message/119315 Mute This Topic: https://groups.io/mt/106365450/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-