From patchwork Thu Aug 16 12:12:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Huang X-Patchwork-Id: 144351 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp1999021ljj; Thu, 16 Aug 2018 05:13:03 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwbMvjoSBHbDafgkT4SkSdjqfrtAJELb3UMSGARBcYaOEJZHCCOcJhgsByC2hstx7pOu/n/ X-Received: by 2002:a62:d8c:: with SMTP id 12-v6mr32201246pfn.202.1534421583075; Thu, 16 Aug 2018 05:13:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534421583; cv=none; d=google.com; s=arc-20160816; b=iBH3UvHBuMOwy0q/FRzjsi3Zb/5RAtfW0iCDxqrR5gb8oqi79bdqEp16fCEHlF8jmB eY9CrU6v1ejfXAn/HW7oEJxLbV9fcYuOnxTpLrhbX6T1/0x+2xMWkENRI30dmGe6sqlu 6zrp7DoHTalbwcmbScagN8uhft3+umxsA4JKI9WlZVMc7vJPFlycTVJeXCUnYx0NlF1H V5pOQpO2lwkFSQFftk2aokT6EPpVHlbUPV7JBAn2pkBvpvddQbcKGy5h6SgxiRRvlRj9 eCql+Mw4xG1tMOcB0OReRvdMd237wZ71US6tzSeXe6NCbaAriEL+wCsxdGg9W5lWK3Bn PdrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=Vg0Ht6vVGNGxfADcM4RJBDRnxbOGKHzyQSaRQIHq9SQ=; b=pM9r8uK+fzrEREUYrK57NIjChSu84InDPvfKXakRJKF9KYfV2mSGiztTlVrtYvdV3t 0x7JrBs572ELWkV01k4p6j/IIFiYS2uYEzE9idWh8yYMdZ6M29kMCmgXoGtuiAugXcd7 3tM5wWQ/yDJoIl8dbBxkKl8y+0Vg0GyHv4yqWxRcgLUD+IxH1caBJqjK/KFOlOa7qSHL whhSzEZHdqGAVIe7fjBFTkhLN9EtQ20PqPvGzJIIM8QCIgrucrHdfMWrID+mhAW2P34s JcnHjrowAUMVBDG+TKcx2vTR00UwBxTNi+7T2r6Afo1IRCJG55SLg1fZH2UqSMwmbwhV yb6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Hzt1M7MQ; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id e1-v6si21419252pld.408.2018.08.16.05.13.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Aug 2018 05:13:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Hzt1M7MQ; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id A70C2210F30D9; Thu, 16 Aug 2018 05:13:02 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:400e:c01::244; helo=mail-pl0-x244.google.com; envelope-from=ming.huang@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-pl0-x244.google.com (mail-pl0-x244.google.com [IPv6:2607:f8b0:400e:c01::244]) (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 7138D210EB4FF for ; Thu, 16 Aug 2018 05:13:01 -0700 (PDT) Received: by mail-pl0-x244.google.com with SMTP id ba4-v6so2006504plb.11 for ; Thu, 16 Aug 2018 05:13:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Xqy+gVD1Tx6oZtuVdyIVLcO2YeIrpvgNWwGgOo0JhBc=; b=Hzt1M7MQiRa0aGsznOYdUnJVEa5DIxTDopGnODZ21/z4bMd16sMDrIUqJf9YfcBGk/ jXmuwNqEKE41/iKqD9LyRU5wzZdtnmaGnoqf5uLl7PRCdVMwDVQx6yK0+IJu64x5gLEg zQbfyc1xWFap5GN+oGD+/XBW7ZJEfGM4WIP90= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Xqy+gVD1Tx6oZtuVdyIVLcO2YeIrpvgNWwGgOo0JhBc=; b=hmqjIM6+PnaBQE1x1RsByPEhpwkQfgdHUneO9sXhS904BgloHpndRJdYEctdM5an9N N2nuc7kZOAu3AKJy/4MHF9Fd/SRrhe5h2sQBqioFzFkGZuYf0g2iQYSWMAucCf0vB1Hx 6bFduI0+hLf6ft4WnVI2rgNKVu0JqntSY5hyzOJLUlDoLXySg7rBncDCX3goe7sft2Fr zN3IpYjpqBjp2d0tJ9WmlLjZiAiOH8kVZaHaD56J6PibayyGUlsOU9qE/ReEwXF1SFRe 05c4FLYT3VjJPMtT5r5dmRtI7c9FX4LkcS9H9KGoaUmG2XAhp+OOLZmZZEivBoK0ztjr 0OaA== X-Gm-Message-State: AOUpUlHw7QI0UGXOQIM4a9s++ZCVIkkg2WaZwDaD3b8StWTbAReabach uilwGg2h1B+3fxz0w+ka9PfnGQ== X-Received: by 2002:a17:902:e10d:: with SMTP id cc13-v6mr28470931plb.96.1534421581038; Thu, 16 Aug 2018 05:13:01 -0700 (PDT) Received: from localhost.localdomain ([120.31.149.194]) by smtp.gmail.com with ESMTPSA id j27-v6sm46736311pfj.91.2018.08.16.05.12.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 16 Aug 2018 05:13:00 -0700 (PDT) From: Ming Huang To: leif.lindholm@linaro.org, linaro-uefi@lists.linaro.org, edk2-devel@lists.01.org, graeme.gregory@linaro.org Date: Thu, 16 Aug 2018 20:12:04 +0800 Message-Id: <20180816121239.44129-2-ming.huang@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180816121239.44129-1-ming.huang@linaro.org> References: <20180816121239.44129-1-ming.huang@linaro.org> Subject: [edk2] [PATCH edk2-platforms v3 01/36] Hisilicon/D0x: Unify FlashFvbDxe driver X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: huangming23@huawei.com, xinliang.liu@linaro.org, john.garry@huawei.com, zhangjinsong2@huawei.com, guoheyi@huawei.com, huangdaode@hisilicon.com, michael.d.kinney@intel.com, lersek@redhat.com, wanghuiqiang@huawei.com MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Add PcdSFCMEM0BaseAddress and switch three 32-bit macro PcdFlashNvStorage of D05/D03 to 64-bit for unifying FlashFvbDxe driver. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ming Huang --- Platform/Hisilicon/D03/D03.fdf | 6 +++--- Platform/Hisilicon/D05/D05.fdf | 6 +++--- Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf | 7 ++++--- Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c | 22 ++++++++++---------- 4 files changed, 21 insertions(+), 20 deletions(-) -- 2.17.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/Platform/Hisilicon/D03/D03.fdf b/Platform/Hisilicon/D03/D03.fdf index 4591f7b5b1..b23765020d 100644 --- a/Platform/Hisilicon/D03/D03.fdf +++ b/Platform/Hisilicon/D03/D03.fdf @@ -69,7 +69,7 @@ FILE = Platform/Hisilicon/D03/bl1.bin FILE = Platform/Hisilicon/D03/fip.bin 0x002D0000|0x0000E000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize DATA = { ## This is the EFI_FIRMWARE_VOLUME_HEADER 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -97,7 +97,7 @@ DATA = { } 0x002DE000|0x00002000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize #NV_FTW_WORKING DATA = { # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = @@ -110,7 +110,7 @@ DATA = { } 0x002E0000|0x00010000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize 0x002F0000|0x00010000 FILE = Platform/Hisilicon/D0x-CustomData.Fv diff --git a/Platform/Hisilicon/D05/D05.fdf b/Platform/Hisilicon/D05/D05.fdf index 6227607ffe..6fa5b5e6c8 100644 --- a/Platform/Hisilicon/D05/D05.fdf +++ b/Platform/Hisilicon/D05/D05.fdf @@ -69,7 +69,7 @@ FILE = Platform/Hisilicon/D05/bl1.bin FILE = Platform/Hisilicon/D05/fip.bin 0x002D0000|0x0000E000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize DATA = { ## This is the EFI_FIRMWARE_VOLUME_HEADER 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -97,7 +97,7 @@ DATA = { } 0x002DE000|0x00002000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize #NV_FTW_WORKING DATA = { # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = @@ -110,7 +110,7 @@ DATA = { } 0x002E0000|0x00010000 -gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize 0x002F0000|0x00010000 FILE = Platform/Hisilicon/D0x-CustomData.Fv diff --git a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf index 09ec7ce08b..f8be4741ef 100644 --- a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf +++ b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.inf @@ -54,14 +54,15 @@ gHisiSpiFlashProtocolGuid [Pcd.common] - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize gArmPlatformTokenSpaceGuid.PcdNorFlashCheckBlockLocked + gHisiTokenSpaceGuid.PcdSFCMEM0BaseAddress [Depex] gHisiSpiFlashProtocolGuid diff --git a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c index 7c6b64c33e..e18cc9e06e 100644 --- a/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c +++ b/Silicon/Hisilicon/Drivers/FlashFvbDxe/FlashFvbDxe.c @@ -28,8 +28,8 @@ FLASH_DESCRIPTION mFlashDevices[FLASH_DEVICE_COUNT] = { { // UEFI Variable Services non-volatile storage - 0xa4000000, - FixedPcdGet32(PcdFlashNvStorageVariableBase), + FixedPcdGet64 (PcdSFCMEM0BaseAddress), + FixedPcdGet64 (PcdFlashNvStorageVariableBase64), 0x20000, SIZE_64KB, {0xCC2CBF29, 0x1498, 0x4CDD, {0x81, 0x71, 0xF8, 0xB6, 0xB4, 0x1D, 0x09, 0x09}} @@ -145,8 +145,8 @@ InitializeFvAndVariableStoreHeaders ( Headers = AllocateZeroPool(HeadersLength); // FirmwareVolumeHeader->FvLength is declared to have the Variable area AND the FTW working area AND the FTW Spare contiguous. - ASSERT(PcdGet32(PcdFlashNvStorageVariableBase) + PcdGet32(PcdFlashNvStorageVariableSize) == PcdGet32(PcdFlashNvStorageFtwWorkingBase)); - ASSERT(PcdGet32(PcdFlashNvStorageFtwWorkingBase) + PcdGet32(PcdFlashNvStorageFtwWorkingSize) == PcdGet32(PcdFlashNvStorageFtwSpareBase)); + ASSERT(PcdGet64(PcdFlashNvStorageVariableBase64) + PcdGet32(PcdFlashNvStorageVariableSize) == PcdGet64(PcdFlashNvStorageFtwWorkingBase64)); + ASSERT(PcdGet64(PcdFlashNvStorageFtwWorkingBase64) + PcdGet32(PcdFlashNvStorageFtwWorkingSize) == PcdGet64(PcdFlashNvStorageFtwSpareBase64)); // Check if the size of the area is at least one block size ASSERT((PcdGet32(PcdFlashNvStorageVariableSize) > 0) && ((UINT32)PcdGet32(PcdFlashNvStorageVariableSize) / Instance->Media.BlockSize > 0)); @@ -154,9 +154,9 @@ InitializeFvAndVariableStoreHeaders ( ASSERT((PcdGet32(PcdFlashNvStorageFtwSpareSize) > 0) && ((UINT32)PcdGet32(PcdFlashNvStorageFtwSpareSize) / Instance->Media.BlockSize > 0)); // Ensure the Variable area Base Addresses are aligned on a block size boundaries - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageVariableBase) % Instance->Media.BlockSize == 0); - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageFtwWorkingBase) % Instance->Media.BlockSize == 0); - ASSERT((UINT32)PcdGet32(PcdFlashNvStorageFtwSpareBase) % Instance->Media.BlockSize == 0); + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageVariableBase64) % Instance->Media.BlockSize == 0); + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageFtwWorkingBase64) % Instance->Media.BlockSize == 0); + ASSERT((UINT32)PcdGet64(PcdFlashNvStorageFtwSpareBase64) % Instance->Media.BlockSize == 0); // // EFI_FIRMWARE_VOLUME_HEADER @@ -855,10 +855,10 @@ FvbInitialize ( UINT32 FvbNumLba; Instance->Initialized = TRUE; - mFlashNvStorageVariableBase = FixedPcdGet32 (PcdFlashNvStorageVariableBase); + mFlashNvStorageVariableBase = FixedPcdGet64 (PcdFlashNvStorageVariableBase64); // Set the index of the first LBA for the FVB - Instance->StartLba = (PcdGet32 (PcdFlashNvStorageVariableBase) - Instance->RegionBaseAddress) / Instance->Media.BlockSize; + Instance->StartLba = (PcdGet64 (PcdFlashNvStorageVariableBase64) - Instance->RegionBaseAddress) / Instance->Media.BlockSize; // Determine if there is a valid header at the beginning of the Flash Status = ValidateFvHeader (Instance); @@ -1208,8 +1208,8 @@ FlashFvbInitialize ( { // Check if this Flash device contain the variable storage region ContainVariableStorage = - (FlashDevices[Index].RegionBaseAddress <= (UINT32)PcdGet32 (PcdFlashNvStorageVariableBase)) && - ((UINT32)(PcdGet32 (PcdFlashNvStorageVariableBase) + PcdGet32 (PcdFlashNvStorageVariableSize)) <= FlashDevices[Index].RegionBaseAddress + FlashDevices[Index].Size); + (FlashDevices[Index].RegionBaseAddress <= PcdGet64 (PcdFlashNvStorageVariableBase64)) && + ((PcdGet64 (PcdFlashNvStorageVariableBase64) + PcdGet32 (PcdFlashNvStorageVariableSize)) <= FlashDevices[Index].RegionBaseAddress + FlashDevices[Index].Size); Status = FlashCreateInstance ( FlashDevices[Index].DeviceBaseAddress,