From: sahil <sa...@arm.com> 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. 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 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 Link to branch with the patches in this series - https://github.com/sah01Kaushal/edk2-platforms/tree/n1sdp_persistent_storage_v2 sahil (14): 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: 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 HostRegisterBaseAddress variable 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/CadenceQspiNorFlashDeviceLib.inf | 32 + Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.inf | 35 + Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf | 34 + Platform/ARM/Drivers/NorFlashDxe/NorFlash.h | 422 -------- Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h | 209 ++++ Platform/ARM/Include/Library/NorFlashDeviceLib.h | 163 ++++ Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDeviceLib.h | 44 + Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.h | 98 ++ Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h | 7 + Platform/ARM/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c | 131 ++- Platform/ARM/Drivers/NorFlashDxe/NorFlashDxe.c | 292 +++--- Platform/ARM/Drivers/NorFlashDxe/NorFlashFvb.c | 2 +- Platform/ARM/Drivers/NorFlashDxe/NorFlashStandaloneMm.c | 184 ++-- Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDeviceLib.c | 1011 ++++++++++++++++++++ Platform/ARM/{Drivers/NorFlashDxe/NorFlash.c => Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.c} | 330 +++---- Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c | 65 ++ Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c | 8 +- 27 files changed, 2225 insertions(+), 904 deletions(-) create mode 100644 Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDeviceLib.inf create mode 100644 Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.inf create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.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/CadenceQspiNorFlashDeviceLib.h create mode 100644 Platform/ARM/Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.h create mode 100644 Platform/ARM/Library/CadenceQspiNorFlashDeviceLib/CadenceQspiNorFlashDeviceLib.c rename Platform/ARM/{Drivers/NorFlashDxe/NorFlash.c => Library/P30NorFlashDeviceLib/P30NorFlashDeviceLib.c} (77%) create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118150): https://edk2.groups.io/g/devel/message/118150 Mute This Topic: https://groups.io/mt/105690935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-