From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4864:20::444; helo=mail-wr1-x444.google.com; envelope-from=leif.lindholm@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 513C421959CB2 for ; Fri, 21 Dec 2018 02:24:08 -0800 (PST) Received: by mail-wr1-x444.google.com with SMTP id s12so4664428wrt.4 for ; Fri, 21 Dec 2018 02:24:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=HMl0zQGwy/wf5eVkA4Nu6YTUeN6gtuUvxfrveZuLTYU=; b=AFtLq0Jlqg5jLhBLS7CcFhxR594VyOSi0ZA1uUEnPts5iN03+VFBR/OpB29KcD3toG eDEQSl8AoUfTZCJ9TMJ1qd4smHQB1j9fc7h65KosdsKpE3g6FKJDVBfgGJxlVUWOkN3k 8UPt1oc14P1IPX6/TmZRi7z31tZBIbLqumhEA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=HMl0zQGwy/wf5eVkA4Nu6YTUeN6gtuUvxfrveZuLTYU=; b=AIYyzVOjh/DRR3gXUhk05tKlexSizIJAtvSRaYy96mwfSUoLqNYwxaV6ftdBTfVfNL 7+FnTtnF7m5pQ0WbImLlnDbk4ybXcogUxzv8KsHBqSWG5FrJ8T6VODfaeJYSwe0+l/pY qiYGRKPTwVNBmdHDgygNyr0lV+pLCSuBUTH5t/2hp38IgYbwF9Pz9mAyU501jfqybPK9 POQvkJ2j2UlPFznCaPJqOLLj4x2TTDFiIUGzDvLHaAL6JWw4SGPjYPAXLm4nGjwwgp3Q UomcR1wXB6AXOMoL1AC1dUmkzicHdUneLr8nXvP309MXUU8sthWqYaizmBRQAujOHqx8 Rfqw== X-Gm-Message-State: AJcUuke4pXS0+gAlcbMxN/+zmkjBYN5t+akZUibbxthYQ+/Tpw02B4xz IC3uOLUUeRQFYdRiqmDPYjza1A== X-Google-Smtp-Source: ALg8bN5hrCLOdhZMYh/d5LGTHfBhOpqrcnQ5xeGf+Jf/kEk4swdjJVKHjM5FvekH6e3ncHqNNTrTyw== X-Received: by 2002:a5d:694d:: with SMTP id r13mr1870783wrw.323.1545387845969; Fri, 21 Dec 2018 02:24:05 -0800 (PST) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id a187sm4292059wmf.33.2018.12.21.02.24.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Dec 2018 02:24:05 -0800 (PST) Date: Fri, 21 Dec 2018 10:24:03 +0000 From: Leif Lindholm To: Meenakshi Aggarwal Cc: ard.biesheuvel@linaro.org, michael.d.kinney@intel.com, edk2-devel@lists.01.org, udit.kumar@nxp.com, v.sethi@nxp.com, Wasim Khan Message-ID: <20181221102403.m46cg65htqghdwfs@bivouac.eciton.net> References: <1518771035-6733-1-git-send-email-meenakshi.aggarwal@nxp.com> <1543417315-5763-1-git-send-email-meenakshi.aggarwal@nxp.com> <1543417315-5763-34-git-send-email-meenakshi.aggarwal@nxp.com> MIME-Version: 1.0 In-Reply-To: <1543417315-5763-34-git-send-email-meenakshi.aggarwal@nxp.com> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [PATCH edk2-platforms 33/41] LS2088ARDB: Enable NOR driver and Runtime Services X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2018 10:24:08 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Nov 28, 2018 at 08:31:47PM +0530, Meenakshi Aggarwal wrote: > Enable NOR driver and Runtime Services for LS2088ARDB Platform > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Wasim Khan > Signed-off-by: Meenakshi Aggarwal Reviewed-by: Leif Lindholm > --- > Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.dsc | 15 ++++- > Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.fdf | 6 +- > Platform/NXP/LS2088aRdbPkg/VarStore.fdf.inc | 99 ++++++++++++++++++++++++++++ > 3 files changed, 118 insertions(+), 2 deletions(-) > create mode 100644 Platform/NXP/LS2088aRdbPkg/VarStore.fdf.inc > > diff --git a/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.dsc b/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.dsc > index 76d51a2..e788581 100755 > --- a/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.dsc > +++ b/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.dsc > @@ -42,6 +42,7 @@ > IfcLib|Silicon/NXP/Library/IfcLib/IfcLib.inf > BoardLib|Platform/NXP/LS2088aRdbPkg/Library/BoardLib/BoardLib.inf > FpgaLib|Platform/NXP/LS2088aRdbPkg/Library/FpgaLib/FpgaLib.inf > + NorFlashLib|Silicon/NXP/Library/NorFlashLib/NorFlashLib.inf > > [PcdsFixedAtBuild.common] > > @@ -84,6 +85,13 @@ > gDs3232RtcLibTokenSpaceGuid.PcdMuxRtcChannelValue|0x09 > gDs3232RtcLibTokenSpaceGuid.PcdMuxDefaultChannelValue|0x08 > > + # > + # NV Storage PCDs > + # > + gArmTokenSpaceGuid.PcdVFPEnabled|1 > + gNxpQoriqLsTokenSpaceGuid.PcdFlashDeviceBase64|0x580000000 > + gNxpQoriqLsTokenSpaceGuid.PcdFlashReservedRegionBase64|0x580300000 > + > ################################################################################ > # > # Components Section - list of all EDK II Modules needed by this Platform > @@ -93,7 +101,12 @@ > # > # Architectural Protocols > # > - MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf > + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf{ > + > + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > + } > + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf > Silicon/NXP/Drivers/I2cDxe/I2cDxe.inf > Platform/NXP/LS2088aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf > + Silicon/NXP/Drivers/NorFlashDxe/NorFlashDxe.inf > diff --git a/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.fdf b/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.fdf > index b526be1..61bb160 100644 > --- a/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.fdf > +++ b/Platform/NXP/LS2088aRdbPkg/LS2088aRdbPkg.fdf > @@ -55,6 +55,7 @@ gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize > FV = FVMAIN_COMPACT > > !include Platform/NXP/FVRules.fdf.inc > +!include VarStore.fdf.inc > ################################################################################ > # > # FV Section > @@ -103,7 +104,8 @@ READ_LOCK_STATUS = TRUE > INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf > - INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf > + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > + INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > > INF Platform/NXP/LS2088aRdbPkg/Drivers/PlatformDxe/PlatformDxe.inf > @@ -124,6 +126,8 @@ READ_LOCK_STATUS = TRUE > INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf > INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf > > + INF Silicon/NXP/Drivers/NorFlashDxe/NorFlashDxe.inf > + > # > # Network modules > # > diff --git a/Platform/NXP/LS2088aRdbPkg/VarStore.fdf.inc b/Platform/NXP/LS2088aRdbPkg/VarStore.fdf.inc > new file mode 100644 > index 0000000..7d35042 > --- /dev/null > +++ b/Platform/NXP/LS2088aRdbPkg/VarStore.fdf.inc > @@ -0,0 +1,99 @@ > +## @file > +# FDF include file with FD definition that defines an empty variable store. > +# > +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved. > +# Copyright (C) 2014, Red Hat, Inc. > +# Copyright (c) 2016, Linaro, Ltd. All rights reserved. > +# Copyright (c) 2016, Freescale Semiconductor. All rights reserved. > +# Copyright 2017-2018 NXP. > +# > +# This program and the accompanying materials are licensed and made available > +# under the terms and conditions of the BSD License which accompanies this > +# distribution. The full text of the license may be found at > +# http://opensource.org/licenses/bsd-license.php > +# > +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > +# IMPLIED. > +# > +## > + > +[FD.LS2088aRdbNv_EFI] > + > +BaseAddress = 0x580300000|gNxpQoriqLsTokenSpaceGuid.PcdNvFdBase #The base address of the FLASH device > +Size = 0x000C0000|gNxpQoriqLsTokenSpaceGuid.PcdNvFdSize #The size in bytes of the FLASH device > +ErasePolarity = 1 > +BlockSize = 0x1 > +NumBlocks = 0xC0000 > + > +# > +# Place NV Storage just above Platform Data Base > +# > +DEFINE NVRAM_AREA_VARIABLE_BASE = 0x00000000 > +DEFINE NVRAM_AREA_VARIABLE_SIZE = 0x00040000 > +DEFINE FTW_WORKING_BASE = $(NVRAM_AREA_VARIABLE_BASE) + $(NVRAM_AREA_VARIABLE_SIZE) > +DEFINE FTW_WORKING_SIZE = 0x00040000 > +DEFINE FTW_SPARE_BASE = $(FTW_WORKING_BASE) + $(FTW_WORKING_SIZE) > +DEFINE FTW_SPARE_SIZE = 0x00040000 > + > +############################################################################# > +# LS2088ARDB NVRAM Area > +# LS2088ARDB NVRAM Area contains: Variable + FTW Working + FTW Spare > +############################################################################# > + > + > +$(NVRAM_AREA_VARIABLE_BASE)|$(NVRAM_AREA_VARIABLE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > +#NV_VARIABLE_STORE > +DATA = { > + ## This is the EFI_FIRMWARE_VOLUME_HEADER > + # ZeroVector [] > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + # FileSystemGuid: gEfiSystemNvDataFvGuid = > + # { 0xFFF12B8D, 0x7696, 0x4C8B, > + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} > + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, > + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, > + # FvLength: 0xC0000 > + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, > + # Signature "_FVH" # Attributes > + 0x5f, 0x46, 0x56, 0x48, 0x36, 0x0E, 0x00, 0x00, > + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision > + 0x48, 0x00, 0xFA, 0xF5, 0x00, 0x00, 0x00, 0x02, > + # Blockmap[0]: 0x3 Blocks * 0x40000 Bytes / Block > + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, > + # Blockmap[1]: End > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + ## This is the VARIABLE_STORE_HEADER > + # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. > + # Signature: gEfiAuthenticatedVariableGuid = > + # { 0xaaf32c78, 0x947b, 0x439a, > + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} > + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, > + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, > + # Size: 0x40000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - > + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3ffb8 > + # This can speed up the Variable Dispatch a bit. > + 0xB8, 0xFF, 0x03, 0x00, > + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 > + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(FTW_WORKING_BASE)|$(FTW_WORKING_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > +#NV_FTW_WORKING > +DATA = { > + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = > + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }} > + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, > + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, > + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved > + 0x5b, 0xe7, 0xc6, 0x86, 0xFE, 0xFF, 0xFF, 0xFF, > + # WriteQueueSize: UINT64 > + 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(FTW_SPARE_BASE)|$(FTW_SPARE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > +#NV_FTW_SPARE > -- > 1.9.1 >