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 8A92574004A for ; Wed, 24 Apr 2024 09:51:21 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=KBs8mI43O0KveMSy0YSna/ro50vO3ow11Ia0cfTBo50=; c=relaxed/simple; d=groups.io; h=Received-SPF:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:Authentication-Results-Original:nodisclaimer:MIME-Version:Original-Authentication-Results:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1713952280; v=1; b=Jr+TEOpRqGPJBMrr7nuW9+kU3ks0UuxiKCxe9uPPzzo/+AYrhfbElIauJC3m8DK4Pse60fHj xFD0X28JkAdUWaBGCm8QMzZmiwpyEJBPcDKvPDNDwsQdeQAnR4cZF/lfsP7aiP3juyz9FaOth9E qLdoO+1cMJRf71TtDojrU5uGo55iciaKl9OiHNcTU1+kNlQOFeQtbwS4yAwa/HKWJEtcBFV/+sq HztxxhibzV4l2oV0pa/h53XIo3D7JU0a0t1lYfa+mpQiRJl1+J+AM8tlXdo9GYcaaJalrpifTqd 9u5QaAhIjRJ8ZpdJ4SXUjls5PgqJ++WEXncrJAbKH44kQ== X-Received: by 127.0.0.2 with SMTP id Q3mkYY7687511xreRmEsEu9V; Wed, 24 Apr 2024 02:51:20 -0700 X-Received: from EUR05-DB8-obe.outbound.protection.outlook.com (EUR05-DB8-obe.outbound.protection.outlook.com [40.107.20.68]) by mx.groups.io with SMTP id smtpd.web10.12588.1713952278848447413 for ; Wed, 24 Apr 2024 02:51:19 -0700 X-Received: from DBBPR09CA0035.eurprd09.prod.outlook.com (2603:10a6:10:d4::23) by PAVPR08MB9625.eurprd08.prod.outlook.com (2603:10a6:102:310::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Wed, 24 Apr 2024 09:51:13 +0000 X-Received: from DU2PEPF00028D13.eurprd03.prod.outlook.com (2603:10a6:10:d4:cafe::7e) by DBBPR09CA0035.outlook.office365.com (2603:10a6:10:d4::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7495.35 via Frontend Transport; Wed, 24 Apr 2024 09:51:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C X-Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DU2PEPF00028D13.mail.protection.outlook.com (10.167.242.27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7519.19 via Frontend Transport; Wed, 24 Apr 2024 09:51:08 +0000 X-Received: ("Tessian outbound 9fd7e4b543e6:v313"); Wed, 24 Apr 2024 09:51:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 135a4becc1edbcf4 X-CR-MTA-TID: 64aa7808 X-Received: from e2f47d09d3de.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5B542D81-DC7C-4D52-8BAD-D5ABBC434244.1; Wed, 24 Apr 2024 09:51:01 +0000 X-Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e2f47d09d3de.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 24 Apr 2024 09:51:01 +0000 X-Received: from AM0PR08MB4289.eurprd08.prod.outlook.com (2603:10a6:208:148::12) by GV1PR08MB8082.eurprd08.prod.outlook.com (2603:10a6:150:96::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Wed, 24 Apr 2024 09:50:50 +0000 X-Received: from AM0PR08MB4289.eurprd08.prod.outlook.com ([fe80::4a5d:48:bf49:a524]) by AM0PR08MB4289.eurprd08.prod.outlook.com ([fe80::4a5d:48:bf49:a524%7]) with mapi id 15.20.7472.044; Wed, 24 Apr 2024 09:50:50 +0000 From: "levi.yun" To: "devel@edk2.groups.io" , Sahil Kaushal CC: Ard Biesheuvel , =?koi8-r?Q?Leif_Lindholm_=9A?= , Sami Mujawar Subject: Re: [edk2-devel] [PATCH RESEND edk2-platforms][PATCH V2 05/14] Platform/ARM: Create NorFlashDeviceLib library interface for flash specific functions Thread-Topic: [edk2-devel] [PATCH RESEND edk2-platforms][PATCH V2 05/14] Platform/ARM: Create NorFlashDeviceLib library interface for flash specific functions Thread-Index: AQHalY/t0+eU9IsF90SlPsH6tnk/UrF3LqaL Date: Wed, 24 Apr 2024 09:50:50 +0000 Message-ID: References: <20240423055638.1271531-1-Sahil.Kaushal@arm.com> <20240423055638.1271531-6-Sahil.Kaushal@arm.com> In-Reply-To: <20240423055638.1271531-6-Sahil.Kaushal@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AM0PR08MB4289:EE_|GV1PR08MB8082:EE_|DU2PEPF00028D13:EE_|PAVPR08MB9625:EE_ X-MS-Office365-Filtering-Correlation-Id: 5bad0ec2-d849-4af7-0124-08dc64441124 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: =?koi8-r?Q?ldEQoi+TAR79ZIQg9gvRF2mXwViF5HWUXmv3i27FbmTRCthkittn6q07x/3Hb1?= =?koi8-r?Q?cnGWVotcu0BqypBeH4wV4V+z0x5oOTQVIed7xYcM4YsbTDBXjz9fwdN4SvnApP?= =?koi8-r?Q?ZmIq5LJlwkcBN5tR6mVemYSiefHrfzJDH7SqzoOj21y4hm28GvGb2T7q0ih9TK?= =?koi8-r?Q?WzzaqGUW2U1u0hamdjO8JPhPXWWQ42n24AzUuVvHcYCmxKoxFwCp66MO4xY+cP?= =?koi8-r?Q?gUGm/HiwxW+gxgSvvbUILyWrbd6ltAbMOMRZU9M1QGLrjbjannHOIRaAax550N?= =?koi8-r?Q?Ycqn4UeynklYXTCj7i/GG0A44va1g3oItfX0j3RgBPR3g8J4WsRFrY3Se9MzMs?= =?koi8-r?Q?Dq6VQeRuaoypBgJMv6LKqoMr/g+2012gINIOTL/4llTjsV4S8LV1Fq32XWXp9E?= =?koi8-r?Q?63OpTDpUdsZeYiAszQnYVpEc7dJ0NdjrUT7eTmJlQs4a+hApX+Vrd6edBZ+LF5?= =?koi8-r?Q?SvvnlNlbmHy5ccjSb0QPC5/REbHvtvQ9ZarrWd4iCRGVUJJt6+YPbSq4fm2Sqq?= =?koi8-r?Q?6XfWk5U/tVhjWaIoa89oMzMkMX5mXpyRWM4BOLxnx37hciT42nO0/D11y+pwkc?= =?koi8-r?Q?eR8fKMz7ArJrPo7MecrX7MzqnuuLo4TQrROlXPCUFHmK7NQNBuwejKuvpt2SLx?= =?koi8-r?Q?Ple6g2pdoSieQ9CNgiEPKUtucWQeuWjOktg4nED00ZCTuHckXU35URPvVcv8tV?= =?koi8-r?Q?sB1pHrxxbC44MG46dJZl0WlbFVO0zoMOpgNePSHAWiqSSiVrOuaxseojc5nITL?= =?koi8-r?Q?leVa8KJE4N7sXQka/JR4grJTQsz6fNv1YeoeO37KKoMbmbAAqL0YdNw6wdipYp?= =?koi8-r?Q?9+6Co5i6k9YMYSbwVu/nw6edl0o/rIGQ4AVOo688vVblBCyvl/I7Bmcjzs2Ijo?= =?koi8-r?Q?h4+VMvIPbVzeMW2ix/BybDzR3h1h1MaR/YrlupqxKRCyZQn3GLhC/I0SW84sDT?= =?koi8-r?Q?sZRAo2wpjGsJppZSXJW8lMS4sTYiEqXLP22x9QDY1rjXwGSj2F7Nf/cRPIho+v?= =?koi8-r?Q?zGkHVO4HNCumhxfMqKSZrQ444pu/jWd/Wve89OhTCRlETFzzYjSMaqMYenAoG9?= =?koi8-r?Q?TQYq9Q500tDsNS/iVSKhaTmT4fyFGgDsjjw7jzYsq0qxHt8Qs8P0uZaWDer39O?= =?koi8-r?Q?pzrPm4dSOZ3Uc3xcPHH5MzXRwEu1zJzG7eJsxjgK8htCQpEtB6uesuB6K+4Qld?= =?koi8-r?Q?FBlg5RM9NvIkn5rkuMK2AoYjnrmpj2/L4fd62GXoC5fvOzyYFBu0hAEr9BzEVq?= =?koi8-r?Q?RksGI0mjCsjUsyzBfZBQbumUeITpRoKGHaJVq93FADuPEBURx4VujPeR/UlD1q?= =?koi8-r?Q?ig=3D=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB4289.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(366007)(1800799015)(38070700009);DIR:OUT;SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8082 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D13.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2811ea8d-32c2-49f1-d77b-08dc64440639 X-Microsoft-Antispam-Message-Info: =?koi8-r?Q?vQh0zMRf8sYXDdLg49LHZ2cim7HN1WEF0whCXXyy9DVDtg2hvx0VMozxN0oJUk?= =?koi8-r?Q?Aez3AhEEK7DQ/dDbwH7uM7/MBICR7tSc+BDOqFFrfLYP3DdJnaWC4Dvdlns/Rr?= =?koi8-r?Q?XQxBue30jed9yk48ejXigp0r2UfLOXuJFTYEpBah2ORIJNEenB9qE/9b4Rt1wv?= =?koi8-r?Q?yCy0+ZAqMbsGZ3fWsBdEcIerhBlqkB+FKASGn+FtzljnJd2LFKQe7kLsYO2VvS?= =?koi8-r?Q?yy+hbggrgrz4kDkB9UTtreWW8T3lr0Nm/URcIN4XweL19YGOK3vVfKvEfeaw4A?= =?koi8-r?Q?+ETbCRzZXNasE0p8NWZniPSdmHRBmWztVtdtoH0kboK2ur9Ej6BDm4Y6dzHbk6?= =?koi8-r?Q?HjleNU8o6Ff+nSqFo3v+uWRWzAFyHWsZ6cKKLcghUprAAwz0phVMdsWyxhsigD?= =?koi8-r?Q?LwZmi+4oQn5agWTt4Pg0Z17cxtjX7D/1jkTvOqtOyG2Y+mKjmDr1yiDjjE5C6m?= =?koi8-r?Q?6RO/b/jZk0q8LWd8kwIV2H4aB0+yT+BlQz/qpEloUq3rZZdPKXuZZCr0ohBPf1?= =?koi8-r?Q?r5yRmQl8Q5dN3RoRKxnFbRMbOE24vM6hdeKfMCluV5JVDcmK5vOGN3qpd4VHde?= =?koi8-r?Q?aD2yc1XkM8QHxfB7I28THtxt1RVbw51STTOzLOvb6AG5ZPBDhRekxCIQMyssKK?= =?koi8-r?Q?SP3tob3FReoK6VlOeuRCQ/OuJb+wh6gHF/0yuhKT0xqlOesZv0iQbhBOLBnAR+?= =?koi8-r?Q?O8i/9fs61thpBN/BhzevDEafb5dd3Qqjgd1Kx2PNGxDBRyLYYvlJ6u9+rQSlg4?= =?koi8-r?Q?pc1yHpnHZbbpaZTghOc06TzB9cHcdiQ2JmfoF10idyrfx/YL+9CqankWTyevqj?= =?koi8-r?Q?5dpNdTNGIsUTIho8Z6cmtFMAmZM1tDyhWvtzUAMheX6rgbvQcgxxYNDyq2CAou?= =?koi8-r?Q?ahi6gERkHQlyEhKesCHH4lHXnMIAptz+4CJ6i3jE4JpjoOXu/rtDhW9PMBiLd2?= =?koi8-r?Q?sBB6CmFhXzno6oPVqqr2SZayvbIGx/v+h8yA3KtTFpw6E4Gw8kVKVCZcseTtt0?= =?koi8-r?Q?j8IYVSYinM7VfG/kVjmRyvJBE1f9TuMoJ9LwivJPQc0OHWEloR259GMG/pg80r?= =?koi8-r?Q?jCOX/5ZCRQfrMeKnk2vw/ZIOuUK/InMPKl+HTLbSmZMVTAy8TQGmIl0WomI7Cc?= =?koi8-r?Q?+Hs8yz4W3Sq99rlLBcPEkBiGA/a1oIB/86S+dicjmmazWW+EHH4SKsolWtENXJ?= =?koi8-r?Q?ovpOvnn2Jvs5mmj+pthC0mog7aEBwwql6UTtFR0hv91zaJGQJ2H4sCH0PyId8D?= =?koi8-r?Q?64jeeaXErEssThNl0JwcDQPUVjjbDHEZ/Kt3lrjNGiyrC7UmwoIObi5wlkeKrU?= =?koi8-r?Q?Y0X94wExpxY/chD48KSWq0i49Dxym06tfRuYu1LKgH6S?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2024 09:51:08.7893 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5bad0ec2-d849-4af7-0124-08dc64441124 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D13.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9625 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, 24 Apr 2024 02:51:19 -0700 Resent-From: yeoreum.yun@arm.com Reply-To: devel@edk2.groups.io,yeoreum.yun@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: HUTJEx7VBSLT0D0mKqgJoIxVx7686176AA= Content-Language: en-GB Content-Type: text/plain; charset="koi8-r" 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=Jr+TEOpR; 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 Reviewed-by: levi.yun ________________________________________ From: devel@edk2.groups.io on behalf of Sahil Kausha= l via groups.io Sent: 23 April 2024 06:56 To: devel@edk2.groups.io Cc: Ard Biesheuvel; Leif Lindholm ; Sami Mujawar; Sahil Kaushal Subject: [edk2-devel] [PATCH RESEND edk2-platforms][PATCH V2 05/14] Platfor= m/ARM: Create NorFlashDeviceLib library interface for flash specific functi= ons From: sahil NorFlashDeviceLib can be used to provide implementations of different NOR Flash to NorFlashDxe, i.e. NorFlashDxe links with NorFlashDeviceLib and the platforms can specify their respective NorFlashDeviceLib instances. This patch splits NorFlash.h and moves out the function prototypes and macros that are expected by NorFlashDxe to be implemented by any Nor Flash implementation to NorFlashDeviceLib.h file. Signed-off-by: sahil --- Platform/ARM/ARM.dec | 1 + Platform/ARM/Drivers/NorFlashDxe/NorFlash.h | 143 +----------------- Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h | 1 + Platform/ARM/Include/Library/NorFlashDeviceLib.h | 156 ++++++++++++++++++= ++ 4 files changed, 159 insertions(+), 142 deletions(-) diff --git a/Platform/ARM/ARM.dec b/Platform/ARM/ARM.dec index be7e6dc83fde..86d1fcb4878e 100644 --- a/Platform/ARM/ARM.dec +++ b/Platform/ARM/ARM.dec @@ -17,6 +17,7 @@ [LibraryClasses] BdsLib|Include/Library/BdsLib.h + NorFlashDeviceLib|Include/Library/NorFlashDeviceLib.h NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h [Guids] diff --git a/Platform/ARM/Drivers/NorFlashDxe/NorFlash.h b/Platform/ARM/Dri= vers/NorFlashDxe/NorFlash.h index bd5c6a949cf0..6cb1f64b9875 100644 --- a/Platform/ARM/Drivers/NorFlashDxe/NorFlash.h +++ b/Platform/ARM/Drivers/NorFlashDxe/NorFlash.h @@ -20,6 +20,7 @@ #include #include +#include #define NOR_FLASH_ERASE_RETRY 10 @@ -40,7 +41,6 @@ #define CREATE_NOR_ADDRESS(BaseAddr, OffsetAddr) ((BaseAddr) + ((Off= setAddr) << 2)) #define CREATE_DUAL_CMD(Cmd) ( ( Cmd << 16) | ( = Cmd & LOW_16_BITS) ) #define SEND_NOR_COMMAND(BaseAddr, Offset, Cmd) MmioWrite32 (CREATE= _NOR_ADDRESS(BaseAddr,Offset), CREATE_DUAL_CMD(Cmd)) -#define GET_NOR_BLOCK_ADDRESS(BaseAddr, Lba, LbaSize) ( BaseAddr + (UINTN= )((Lba) * LbaSize) ) // Status Register Bits #define P30_SR_BIT_WRITE (BIT7 << 16 | BIT7) @@ -105,145 +105,4 @@ #define P30_CMD_READ_CONFIGURATION_REGISTER_SETUP 0x0060 #define P30_CMD_READ_CONFIGURATION_REGISTER 0x0003 -typedef struct _NOR_FLASH_INSTANCE NOR_FLASH_INSTANCE; - -#pragma pack (1) -typedef struct { - VENDOR_DEVICE_PATH Vendor; - UINT8 Index; - EFI_DEVICE_PATH_PROTOCOL End; -} NOR_FLASH_DEVICE_PATH; -#pragma pack () - -struct _NOR_FLASH_INSTANCE { - UINT32 Signature; - EFI_HANDLE Handle; - - UINTN DeviceBaseAddress; - UINTN RegionBaseAddress; - UINTN Size; - EFI_LBA StartLba; - - EFI_BLOCK_IO_PROTOCOL BlockIoProtocol; - EFI_BLOCK_IO_MEDIA Media; - EFI_DISK_IO_PROTOCOL DiskIoProtocol; - - EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL FvbProtocol; - VOID *ShadowBuffer; - - NOR_FLASH_DEVICE_PATH DevicePath; -}; - -EFI_STATUS -NorFlashReadCfiData ( - IN UINTN DeviceBaseAddress, - IN UINTN CFI_Offset, - IN UINT32 NumberOfBytes, - OUT UINT32 *Data - ); - -EFI_STATUS -NorFlashWriteBuffer ( - IN NOR_FLASH_INSTANCE *Instance, - IN UINTN TargetAddress, - IN UINTN BufferSizeInBytes, - IN UINT32 *Buffer - ); - -// -// NorFlash.c -// -EFI_STATUS -NorFlashWriteSingleBlock ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINTN Offset, - IN OUT UINTN *NumBytes, - IN UINT8 *Buffer - ); - -EFI_STATUS -NorFlashWriteBlocks ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINTN BufferSizeInBytes, - IN VOID *Buffer - ); - -EFI_STATUS -NorFlashReadBlocks ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINTN BufferSizeInBytes, - OUT VOID *Buffer - ); - -EFI_STATUS -NorFlashRead ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINTN Offset, - IN UINTN BufferSizeInBytes, - OUT VOID *Buffer - ); - -EFI_STATUS -NorFlashWrite ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINTN Offset, - IN OUT UINTN *NumBytes, - IN UINT8 *Buffer - ); - -EFI_STATUS -NorFlashReset ( - IN NOR_FLASH_INSTANCE *Instance - ); - -EFI_STATUS -NorFlashEraseSingleBlock ( - IN NOR_FLASH_INSTANCE *Instance, - IN UINTN BlockAddress - ); - -EFI_STATUS -NorFlashUnlockSingleBlockIfNecessary ( - IN NOR_FLASH_INSTANCE *Instance, - IN UINTN BlockAddress - ); - -EFI_STATUS -NorFlashWriteSingleWord ( - IN NOR_FLASH_INSTANCE *Instance, - IN UINTN WordAddress, - IN UINT32 WriteData - ); - -EFI_STATUS -NorFlashWriteFullBlock ( - IN NOR_FLASH_INSTANCE *Instance, - IN EFI_LBA Lba, - IN UINT32 *DataBuffer, - IN UINT32 BlockSizeInWords - ); - -EFI_STATUS -NorFlashUnlockAndEraseSingleBlock ( - IN NOR_FLASH_INSTANCE *Instance, - IN UINTN BlockAddress - ); - -VOID -EFIAPI -NorFlashLock ( - IN EFI_TPL *OriginalTPL - ); - -VOID -EFIAPI -NorFlashUnlock ( - IN EFI_TPL OriginalTPL - ); - #endif /* __NOR_FLASH_H__ */ diff --git a/Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h b/Platform/A= RM/Drivers/NorFlashDxe/NorFlashCommon.h index c0a3b5861532..7fcb949843e8 100644 --- a/Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h +++ b/Platform/ARM/Drivers/NorFlashDxe/NorFlashCommon.h @@ -19,6 +19,7 @@ #include #include +#include #include #include #include diff --git a/Platform/ARM/Include/Library/NorFlashDeviceLib.h b/Platform/AR= M/Include/Library/NorFlashDeviceLib.h new file mode 100644 index 000000000000..e5017130a091 --- /dev/null +++ b/Platform/ARM/Include/Library/NorFlashDeviceLib.h @@ -0,0 +1,156 @@ +/** @file NorFlashDeviceLib.h + + Copyright (c) 2011 - 2024, Arm Limited. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef NOR_FLASH_DEVICE_LIB_H_ +#define NOR_FLASH_DEVICE_LIB_H_ + +#include +#include +#include + +typedef struct _NOR_FLASH_INSTANCE NOR_FLASH_INSTANCE; + +#define GET_NOR_BLOCK_ADDRESS(BaseAddr, Lba, LbaSize) ( BaseAddr + (UINTN= )((Lba) * LbaSize) ) + +#pragma pack (1) +typedef struct { + VENDOR_DEVICE_PATH Vendor; + UINT8 Index; + EFI_DEVICE_PATH_PROTOCOL End; +} NOR_FLASH_DEVICE_PATH; +#pragma pack () + +struct _NOR_FLASH_INSTANCE { + UINT32 Signature; + EFI_HANDLE Handle; + + UINTN DeviceBaseAddress; + UINTN RegionBaseAddress; + UINTN Size; + EFI_LBA StartLba; + + EFI_BLOCK_IO_PROTOCOL BlockIoProtocol; + EFI_BLOCK_IO_MEDIA Media; + EFI_DISK_IO_PROTOCOL DiskIoProtocol; + + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL FvbProtocol; + VOID *ShadowBuffer; + + NOR_FLASH_DEVICE_PATH DevicePath; +}; + +EFI_STATUS +NorFlashReadCfiData ( + IN UINTN DeviceBaseAddress, + IN UINTN CFI_Offset, + IN UINT32 NumberOfBytes, + OUT UINT32 *Data + ); + +EFI_STATUS +NorFlashWriteBuffer ( + IN NOR_FLASH_INSTANCE *Instance, + IN UINTN TargetAddress, + IN UINTN BufferSizeInBytes, + IN UINT32 *Buffer + ); + +EFI_STATUS +NorFlashWriteFullBlock ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINT32 *DataBuffer, + IN UINT32 BlockSizeInWords + ); + +EFI_STATUS +NorFlashUnlockAndEraseSingleBlock ( + IN NOR_FLASH_INSTANCE *Instance, + IN UINTN BlockAddress + ); + +EFI_STATUS +NorFlashWriteSingleBlock ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINTN Offset, + IN OUT UINTN *NumBytes, + IN UINT8 *Buffer + ); + +EFI_STATUS +NorFlashWriteBlocks ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINTN BufferSizeInBytes, + IN VOID *Buffer + ); + +EFI_STATUS +NorFlashReadBlocks ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINTN BufferSizeInBytes, + OUT VOID *Buffer + ); + +EFI_STATUS +NorFlashRead ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINTN Offset, + IN UINTN BufferSizeInBytes, + OUT VOID *Buffer + ); + +EFI_STATUS +NorFlashWrite ( + IN NOR_FLASH_INSTANCE *Instance, + IN EFI_LBA Lba, + IN UINTN Offset, + IN OUT UINTN *NumBytes, + IN UINT8 *Buffer + ); + +EFI_STATUS +NorFlashReset ( + IN NOR_FLASH_INSTANCE *Instance + ); + +EFI_STATUS +NorFlashEraseSingleBlock ( + IN NOR_FLASH_INSTANCE *Instance, + IN UINTN BlockAddress + ); + +EFI_STATUS +NorFlashUnlockSingleBlockIfNecessary ( + IN NOR_FLASH_INSTANCE *Instance, + IN UINTN BlockAddress + ); + +EFI_STATUS +NorFlashWriteSingleWord ( + IN NOR_FLASH_INSTANCE *Instance, + IN UINTN WordAddress, + IN UINT32 WriteData + ); + +VOID +EFIAPI +NorFlashLock ( + IN EFI_TPL *OriginalTPL + ); + +VOID +EFIAPI +NorFlashUnlock ( + IN EFI_TPL OriginalTPL + ); + +#endif /* NOR_FLASH_DEVICE_LIB_H_ */ -- 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118155): https://edk2.groups.io/g/devel/message/118155 Mute This Topic: https://groups.io/mt/105690940/7717249 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [yeoreum.yun@arm.com] -=3D-=3D-=3D-=3D-=3D-=3D IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you. -=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 (#118193): https://edk2.groups.io/g/devel/message/118193 Mute This Topic: https://groups.io/mt/105690940/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-