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 2AF607803CC for ; Thu, 16 May 2024 15:24:10 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=L4AV1Hyc3iTKHs/Gul/7Qj9x6K/gk3rN8au+Y4g9Ns8=; c=relaxed/simple; d=groups.io; h=Received-SPF:Authentication-Results-Original:Message-ID:Date:User-Agent:Subject:To:Cc:References:From:In-Reply-To:MIME-Version:NoDisclaimer: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-Type:Content-Language; s=20240206; t=1715873048; v=1; b=HM+Xm2q7YenrI0wZPsyL5W3kY9Lk4a8X3g62uw+wcHWw1Pv/WKdRKaXN/zeE+lp82cmwieiu DDIqrD+8xcEdD9Y8s7qp8BPKfn2ALJo2gVXdOKQdZJT2URhVHtgAD+16+yF6ijxLoJ4Wv0Rv5JU ghGVnyB/uV4yzHMMOHpoaPDrHiXC2xRpRM0Mhshf+ftT3sylyPq/gqBOiVs+y0Q6UbiAng3Ru2L hSzIe4eR3RaPm64WP69y8F2PRpyDBl8ToZ1MXX9scOH4SvGLeWYUTTqTSEKX8to/ULUAfyKRzVc V3LRvtjVQa9N2psQXWAZjFJ1mk3xI058hAYVCHrgYDU5w== X-Received: by 127.0.0.2 with SMTP id wFrKYY7687511xR59ahEhYP0; Thu, 16 May 2024 08:24:08 -0700 X-Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.107.6.49]) by mx.groups.io with SMTP id smtpd.web11.17085.1715873047188344087 for ; Thu, 16 May 2024 08:24:07 -0700 X-Received: from DUZPR01CA0147.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bd::29) by GVXPR08MB10727.eurprd08.prod.outlook.com (2603:10a6:150:15b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.55; Thu, 16 May 2024 15:24:03 +0000 X-Received: from DU6PEPF0000A7E4.eurprd02.prod.outlook.com (2603:10a6:10:4bd:cafe::1a) by DUZPR01CA0147.outlook.office365.com (2603:10a6:10:4bd::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.28 via Frontend Transport; Thu, 16 May 2024 15:24:03 +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 DU6PEPF0000A7E4.mail.protection.outlook.com (10.167.8.43) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7587.21 via Frontend Transport; Thu, 16 May 2024 15:24:02 +0000 X-Received: ("Tessian outbound 082664cc04c1:v315"); Thu, 16 May 2024 15:24:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e2de7f403331e88c X-CR-MTA-TID: 64aa7808 X-Received: from 65e4912561b7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B694A288-DCF7-4E07-835A-2B0F6F171EFD.1; Thu, 16 May 2024 15:23:55 +0000 X-Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 65e4912561b7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 16 May 2024 15:23:55 +0000 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AS8PR08MB9071.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Thu, 16 May 2024 15:23:53 +0000 X-Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::1e13:dc65:224e:219c]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::1e13:dc65:224e:219c%5]) with mapi id 15.20.7587.028; Thu, 16 May 2024 15:23:53 +0000 Message-ID: <5c52b3a6-be91-497a-bea2-551188399602@arm.com> Date: Thu, 16 May 2024 16:23:52 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH RESEND edk2-platforms][PATCH V2 11/14] Silicon/ARM/NeoverseN1Soc: NOR flash library for N1Sdp To: Sahil Kaushal , devel@edk2.groups.io Cc: Ard Biesheuvel , Leif Lindholm , sahil , "nd@arm.com" References: <20240423055638.1271531-1-Sahil.Kaushal@arm.com> <20240423055638.1271531-12-Sahil.Kaushal@arm.com> From: "Sami Mujawar" In-Reply-To: <20240423055638.1271531-12-Sahil.Kaushal@arm.com> X-ClientProxiedBy: LO4P123CA0517.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:272::20) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6806:EE_|AS8PR08MB9071:EE_|DU6PEPF0000A7E4:EE_|GVXPR08MB10727:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b7b69bf-a49b-415d-80a0-08dc75bc377f x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230031|366007|1800799015|376005; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?A0COiYnpUXP46D3Gux1o44LXyBTt7mS6/reFzFA8GIwqAS1MaExZNY/Gr4oM?= =?us-ascii?Q?xf0JAWqPNJloLgK6qg5VMDEe8QeTKDJasSA6c4GzGcOi6wz2nakP6XFRpKtQ?= =?us-ascii?Q?FKjBdl9Cd78ydJH+XWV7gqw6c4KvZjjtQVTsSgD8mjmESSHCTogpoEobh0MA?= =?us-ascii?Q?pq9S+vym2uELtLOkXJEcFJCXg//6B1JXHuN7yFjtakNZy94lqhd0ciAcyagg?= =?us-ascii?Q?mlQySE/egYSeJ1dm6CqQLhv7cVZh5mW4xEz7iei36cVPWkWDbhGjGTVHZGSH?= =?us-ascii?Q?x1Fcy34O5PgJnezEgTKTStOnrtDHQVWsz1CNRjqzyp5ugV9PtLKsLlpskqR4?= =?us-ascii?Q?6YbiRZzhx2mdFCe5oBuJ5N8cgwRucFxWMXf9Gj5lH/TR/s32NB39NK1X3JPH?= =?us-ascii?Q?8K2507804/fMczZGmf310B1d6Pv09Ahc9HM5B4fGnM/2iuUWoGY+6F4EKx0B?= =?us-ascii?Q?KqePs2qHzPb9+gYVrFtkW4GPhvSCIk/PRjZFmmVlNDMogqLIlmgyqILixyHu?= =?us-ascii?Q?TCIVaH79IBK/7EuXqbXcFFDrJZV8LzqNEXAhaIhBocdEza0gXQ9J25VYuZdY?= =?us-ascii?Q?RxKBnp7hNCyBr6NvPpr6OGGrDcunjJIne+GDKPxdxtK6kXQg/O0runUfMrd0?= =?us-ascii?Q?SqC5znzQOk/n6swYBTzNkTEPgsypwIFvElSe7QiUcm7UXVPH/y7obwrbbdjT?= =?us-ascii?Q?cog9gxOJdvygd6FRokTF3dhdBcW6i7On24gGb3qxcOu4SwJ5o72t3VIEjTuF?= =?us-ascii?Q?qhdGb9LIOVngTFBuee7hNJC/VS+UOjl5LgQsXv05fJSz208OqRZ+jmPlDlz3?= =?us-ascii?Q?b+01Sf4Ul9Zvr1aX/oQ2dezJqO+s8F3EFnreFr0S+j437dhsPqFVTk1DuvNv?= =?us-ascii?Q?/xQR/My+1gA/M0k63mPU74DbVAhvMECzEDclqT7eTS4qh8zzaNoDy0uQFO2e?= =?us-ascii?Q?ClPmS0kWzjTk+22I58+0om6Wvjp0u4GrigNXPhgawFGKgOd8suvazNtwG+xI?= =?us-ascii?Q?KvWoqvf0TYo1yTlYBohVVD2ydNFxg0KjjiuYiJH3qMXf3MPEgMjT2+fORT5a?= =?us-ascii?Q?LDt1vo1miHtfXcpUAEhfNAw0UlY/X1X4oUSiu+4JTmDPjddH4Bf6bRWblXnn?= =?us-ascii?Q?WgT0dXQhDVN6VCwqzdBvzGQ5/YLEpMvJgY4ZKWZxt1Mmg1AO4P2f87S0xj8n?= =?us-ascii?Q?JR/OY3awTn8W9nTe3MwccNipewFMxgktyV/HYpmg15vCOHUPmhreBQsFKBzb?= =?us-ascii?Q?hbUoChrffVmytmP05kvU+VqEll73ETkcunol8ef0Ww=3D=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9071 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: DU6PEPF0000A7E4.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1b7312fa-b3ef-4a1f-1dbb-08dc75bc3206 X-Microsoft-Antispam-Message-Info: =?utf-8?B?T1M0Y0ZtcU9oQ2hISG9tRmx3YWZhdzBzeDNPRk5jTW5FcUJzZXZzRk85ZWJw?= =?utf-8?B?VDIvQi9QYngrSC9YUTVFUngxY01TY0tMSlY0cTFad2g3b2Q3Wm9GWHdUaDBB?= =?utf-8?B?Q2xIT3pXYzI0Sk9KeUQzQ3NWVmMyWVMvakJmaUxBSGErcWtqV1FUREtRMjVj?= =?utf-8?B?V3FqQnFOSmM4d0pLTXNEaDgyaWlUcXhNQXBWdUF0N3ArYVFiVEFCeHpEdkdO?= =?utf-8?B?L3B5eU8zNklTTTRzZVZGSkEycDJtcXFiVjc1QVJRUlJMdDd6UFZvc3ZvMTYz?= =?utf-8?B?aHo5K1d6QlB5K0hPL1NnQUY2YnFVUHdHVGo1NmM5Rnc2Q2o2U1M0cEFuVlp0?= =?utf-8?B?L2VlK2ZNazArM05FOVplS0xCKzN3V2FjNloybEFaTzFhN1JMN0E0bm1tU2w3?= =?utf-8?B?RFFId2tKekE5ejFYTXY4MUVNbjVzcWpHS1VYSWx6cytwUUR1VFE1ZEJVU0Fo?= =?utf-8?B?bmsrdm4raUZ0aFAxSDRFVFpWcVNWbUsxTmY3N0F4Q1FzVXZXb1lwcHdDb1V3?= =?utf-8?B?WHArT1hCVWZOQkJBYU9JK09ON2VQSVF5TGpNOU1vQkZzZHUzeHV0dWZFV2dz?= =?utf-8?B?TnJGNlV0bWkrWkZNcllzSVdEcHNQZnBiekZmbmQrSFlOSDk2UGJsSVlCMHUw?= =?utf-8?B?QUdIU28wNENYMlF5WG55Zmp3d2tFREhnNWJUQVVBRHpnRWgvOWw2TXdyTFZ0?= =?utf-8?B?L2RyZHRBQUJEWGlpR0tDUDVaMEFPOTZYS1E1UGJMekw1Zzh1RHplZXNQQkF1?= =?utf-8?B?UUZCaWlWKy9vdUpmSHNHRTRnRGpUOHN3QmhsVURYZHFNK2UrNEUzTEd4NlNl?= =?utf-8?B?dVVReHpFUFpyaG91VzA5Q0lJL3FTTU05dTRDRTVMenJUa1o3a1UrazE4ckZN?= =?utf-8?B?ZWx5cmVBV1J6WmdIakJaNEczUE9qWjRPTVArZjVKVkdmWHJxYWVxb04rUHYx?= =?utf-8?B?ck55NTNUZzJURGc4RnFPUkFDaXZnTGtTYnNHSkt4MCtGenZKNUlwUzBGdFJm?= =?utf-8?B?dWgxaURVR0ZzNzVNWDlDMkJKUThjQVNoTi9ORjZZQXpYZzVUR0FYbGZwZkpL?= =?utf-8?B?Z1l3bXM3dG80aTVScDhXQnpaek1Ldk1vWUhNbEdJaHpvdEo0TU40OFBIMFBX?= =?utf-8?B?V2M5eHhLN25nMy9XcGhhVW5JSHZQL0JkTTg5dG01Q2FJd3VDVVl3UVc3STUz?= =?utf-8?B?TmVvd0MxWDNqQWFzd0IyaWQzMlgxekNkMy9WblkvMm0vNXhnM3lCUVM4U2Fi?= =?utf-8?B?cXh3Z1FCejB0TTJ4L2ZOeWo2dXZLeUZmay9jbWJlOWNQTndnaVNMNS9rbjRa?= =?utf-8?B?ZjhJT3psVElQZDZJK2IrZ0FzRldOZmlXZkZHamVWenY1bVNMV3pzOWdIWVFq?= =?utf-8?B?dHdIZHdYcG5OR1Q4azU5WmpwcTZhekFYS1p6cDVkckh6MjlXa0htQVRVTjVO?= =?utf-8?B?SThuc2szUHFQMWNhV2hwUEgzQm5NckJOQy9oMDYwSEl4YjBobGZXWk5HNTVF?= =?utf-8?B?Tmd6eTF4RVRqclhCOGVuWThlRE4vZ2dVa3ZFV3p1aGJNN3NrdkZWdjc5UmFp?= =?utf-8?B?L0gxUVduQXBLZGQydHVZNkJpdkhhYVlxT0lwMkxvMjNXN243YXpXeUZEV1NZ?= =?utf-8?B?RVoyQjM5WHZUb0xvRXBqOUM0QUhUNG9VUHB5cUNuVFZGcXpWUmVxY1lJc25E?= =?utf-8?B?YmluVEtIVitsbmI2NFFxbitidVJSSWZiYUc4N1pNUkY5THF2d3NBeENqOThM?= =?utf-8?B?RmUvZWlsVTQ4ZC95UUM4TTkxNkc1Zk1sR2RsTnBFdHgxRDgwVVVVakkyR0Ir?= =?utf-8?B?YmlIcFVneHFrSXcvZXNoeUdqVmJvRm9CQ3ZFN2I0ejlVUFliL29rOG5IOEVq?= =?utf-8?Q?yqmIDtU923UMz?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2024 15:24:02.5172 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b7b69bf-a49b-415d-80a0-08dc75bc377f 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: DU6PEPF0000A7E4.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10727 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: Thu, 16 May 2024 08:24:07 -0700 Resent-From: sami.mujawar@arm.com Reply-To: devel@edk2.groups.io,sami.mujawar@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: WOllOZso5EyIGFQOWj2hL36fx7686176AA= Content-Type: multipart/alternative; boundary="------------p2zPlyni002Mbozf0MkTZ1WA" Content-Language: en-GB X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=HM+Xm2q7; 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 --------------p2zPlyni002Mbozf0MkTZ1WA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Sahil, Thank you for this patch. I have some suggestions marked inline below, otherwise this patch looks=20 good to me. With that fixed, Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 23/04/2024 06:56 am, Sahil Kaushal wrote: > From: sahil > > Add NOR flash library, this library provides APIs for getting the list > of NOR flash devices on the platform. [SAMI] I think the information in the commit message of patch 10/14=20 would be more useful here. Not mandatory, but it may be useful to have an ASCII diagram to explain=20 the flash partitioning. [/SAMI] > Signed-off-by: sahil > --- > Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf | 34 ++++= ++++++ > Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c | 65 ++++= ++++++++++++++++ > 2 files changed, 99 insertions(+) > > diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.in= f b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf > new file mode 100644 > index 000000000000..fad3bca79d3a > --- /dev/null > +++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf > @@ -0,0 +1,34 @@ > +## @file > > +# NOR flash lib for ARM Neoverse N1 platform. > > +# > > +# Copyright (c) 2024, ARM Limited. All rights reserved.
> > +# > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > +# > > +## > > + > > +[Defines] > > + INF_VERSION =3D 0x0001001B > > + BASE_NAME =3D NorFlashNeoverseN1SocLib > > + FILE_GUID =3D 7006fcf1-a585-4272-92e3-b286b1dff5b= b > > + MODULE_TYPE =3D DXE_DRIVER > > + VERSION_STRING =3D 1.0 > > + LIBRARY_CLASS =3D NorFlashPlatformLib > > + > > +[Sources.common] > > + NorFlashLib.c > > + > > +[Packages] > > + MdeModulePkg/MdeModulePkg.dec > > + MdePkg/MdePkg.dec > > + Platform/ARM/ARM.dec > > + Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec > > + > > +[LibraryClasses] > > + BaseLib > > + > > +[FixedPcd] > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > > diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c = b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c > new file mode 100644 > index 000000000000..a48db9c74548 > --- /dev/null > +++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c > @@ -0,0 +1,65 @@ > +/** @file > > +* NOR flash lib for ARM Neoverse N1 platform > > +* > > +* Copyright (c) 2024, ARM Limited. All rights reserved.
> > +* > > +* SPDX-License-Identifier: BSD-2-Clause-Patent > > +* > > +**/ > > + > > +#include > > +#include > > +#include > > + > > +#define FW_ENV_REGION_BASE FixedPcdGet32 (PcdFlashNvStorageVariableBase= ) > > +#define FW_ENV_REGION_SIZE (FixedPcdGet32 (PcdFlashNvStorageVariableSiz= e) + \ > > + FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSi= ze) + \ > > + FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize= )) [SAMI] Would it be an issue if someone were to increase the storage=20 variable sizes above? How can you prevent someone overwriting the flash region used by the SCP? Would it make sense to add a check in NorFlashPlatformInitialization() ? [/SAMI] > > + > > +STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] =3D { > > + { > > + /// Environment variable region > > + NEOVERSEN1SOC_SCP_QSPI_AHB_BASE, ///< device base > > + FW_ENV_REGION_BASE, ///< region base > > + FW_ENV_REGION_SIZE, ///< region size > > + SIZE_4KB, ///< block size > > + }, > > +}; > > + > > +/** > > + Dummy implementation of NorFlashPlatformInitialization to > > + comply with NorFlashPlatformLib structure. > > + > > + @retval EFI_SUCCESS Success. > > +**/ > > +EFI_STATUS > > +NorFlashPlatformInitialization ( > > + VOID > > + ) > > +{ > > + return EFI_SUCCESS; > > +} > > + > > +/** > > + Get NOR flash region info > > + > > + @param[out] NorFlashDevices NOR flash regions info. > > + @param[out] Count number of flash instance. > > + > > + @retval EFI_SUCCESS Success. > > + @retval EFI_INVALID_PARAMETER The parameters specified are not= valid. > > +**/ > > +EFI_STATUS > > +NorFlashPlatformGetDevices ( > > + OUT NOR_FLASH_DESCRIPTION **NorFlashDevices, > > + OUT UINT32 *Count > > + ) > > +{ > > + if ((NorFlashDevices =3D=3D NULL) || (Count =3D=3D NULL)) { > > + return EFI_INVALID_PARAMETER; > > + } > > + > > + *NorFlashDevices =3D mNorFlashDevices; > > + *Count =3D ARRAY_SIZE (mNorFlashDevices); > > + return EFI_SUCCESS; > > +} > -=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 (#118967): https://edk2.groups.io/g/devel/message/118967 Mute This Topic: https://groups.io/mt/105690946/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- --------------p2zPlyni002Mbozf0MkTZ1WA Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi Sahil,

Thank you for this patch.

I have some suggestions marked inline below, otherwise this patch looks good to me.

With that fixed,

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>

Regards,

Sami Mujawar

On 23/04/2024 06:56 am, Sahil Kaushal wrote:
From: sahil <sahil@arm.com>

Add NOR flash library, this library provides APIs for getting the list
of NOR flash devices on the platform.

[SAMI] I think the information in the commit message of patch 10/14 would be more useful here.

Not mandatory, but it may be useful to have an ASCII diagram to explain the flash partitioning.

[/SAMI]

Signed-off-by: sahil <sahil@arm.com>
---
 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf | 34 ++++++++++
 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c   | 65 ++++++++++++++++++++
 2 files changed, 99 insertions(+)

diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf
new file mode 100644
index 000000000000..fad3bca79d3a
--- /dev/null
+++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf
@@ -0,0 +1,34 @@
+## @file

+#  NOR flash lib for ARM Neoverse N1 platform.

+#

+#  Copyright (c) 2024, ARM Limited. All rights reserved.<BR>

+#

+#  SPDX-License-Identifier: BSD-2-Clause-Patent

+#

+##

+

+[Defines]

+  INF_VERSION                    = 0x0001001B

+  BASE_NAME                      = NorFlashNeoverseN1SocLib

+  FILE_GUID                      = 7006fcf1-a585-4272-92e3-b286b1dff5bb

+  MODULE_TYPE                    = DXE_DRIVER

+  VERSION_STRING                 = 1.0

+  LIBRARY_CLASS                  = NorFlashPlatformLib

+

+[Sources.common]

+  NorFlashLib.c

+

+[Packages]

+  MdeModulePkg/MdeModulePkg.dec

+  MdePkg/MdePkg.dec

+  Platform/ARM/ARM.dec

+  Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec

+

+[LibraryClasses]

+  BaseLib

+

+[FixedPcd]

+  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize

+  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize

+  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase

+  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize

diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c
new file mode 100644
index 000000000000..a48db9c74548
--- /dev/null
+++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c
@@ -0,0 +1,65 @@
+/** @file

+*  NOR flash lib for ARM Neoverse N1 platform

+*

+*  Copyright (c) 2024, ARM Limited. All rights reserved.<BR>

+*

+*  SPDX-License-Identifier: BSD-2-Clause-Patent

+*

+**/

+

+#include <Library/NorFlashPlatformLib.h>

+#include <NeoverseN1Soc.h>

+#include <PiDxe.h>

+

+#define FW_ENV_REGION_BASE  FixedPcdGet32 (PcdFlashNvStorageVariableBase)

+#define FW_ENV_REGION_SIZE  (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \

+                            FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \

+                            FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))

[SAMI] Would it be an issue if someone were to increase the storage variable sizes above? 

How can you prevent someone overwriting the flash region used by the SCP?

Would it make sense to add a check in NorFlashPlatformInitialization() ?

[/SAMI]


+

+STATIC NOR_FLASH_DESCRIPTION  mNorFlashDevices[] = {

+  {

+    /// Environment variable region

+    NEOVERSEN1SOC_SCP_QSPI_AHB_BASE,                    ///< device base

+    FW_ENV_REGION_BASE,                                 ///< region base

+    FW_ENV_REGION_SIZE,                                 ///< region size

+    SIZE_4KB,                                           ///< block size

+  },

+};

+

+/**

+  Dummy implementation of NorFlashPlatformInitialization to

+  comply with NorFlashPlatformLib structure.

+

+  @retval        EFI_SUCCESS        Success.

+**/

+EFI_STATUS

+NorFlashPlatformInitialization (

+  VOID

+  )

+{

+  return EFI_SUCCESS;

+}

+

+/**

+  Get NOR flash region info

+

+  @param[out]    NorFlashDevices        NOR flash regions info.

+  @param[out]    Count                  number of flash instance.

+

+  @retval        EFI_SUCCESS            Success.

+  @retval        EFI_INVALID_PARAMETER  The parameters specified are not valid.

+**/

+EFI_STATUS

+NorFlashPlatformGetDevices (

+  OUT NOR_FLASH_DESCRIPTION  **NorFlashDevices,

+  OUT UINT32                 *Count

+  )

+{

+  if ((NorFlashDevices == NULL) || (Count == NULL)) {

+    return EFI_INVALID_PARAMETER;

+  }

+

+  *NorFlashDevices = mNorFlashDevices;

+  *Count           = ARRAY_SIZE (mNorFlashDevices);

+  return EFI_SUCCESS;

+}

_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#118967) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_
--------------p2zPlyni002Mbozf0MkTZ1WA--