From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=eric.jin@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BD8532194EB77 for ; Sun, 10 Mar 2019 22:31:21 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Mar 2019 22:31:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,467,1544515200"; d="scan'208";a="326044646" Received: from shwdeopenpsi175.ccr.corp.intel.com ([10.239.9.33]) by fmsmga006.fm.intel.com with ESMTP; 10 Mar 2019 22:31:20 -0700 From: Eric Jin To: edk2-devel@lists.01.org Date: Mon, 11 Mar 2019 13:29:47 +0800 Message-Id: <20190311052947.3960-1-eric.jin@intel.com> X-Mailer: git-send-email 2.20.0.windows.1 MIME-Version: 1.0 Subject: [edk2-test][Patch 1/1] uefi-sct/SctPkg: Size in EraseBlocks() is in bytes 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: Mon, 11 Mar 2019 05:31:23 -0000 Content-Transfer-Encoding: 8bit The erase size used in current test is blocks number, and should be corrected to the size in bytes to be erased. According to UEFI spec, it must be a multiple of the physical block size of the device, even the EraseLengthGranularity blocks for some device. Cc: Supreeth Venkatesh Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Eric Jin --- uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/EraseBlock/BlackBoxTest/EraseBlockBBTestConformance.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/EraseBlock/BlackBoxTest/EraseBlockBBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/EraseBlock/BlackBoxTest/EraseBlockBBTestConformance.c index df057b26667f..a6156b988f44 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/EraseBlock/BlackBoxTest/EraseBlockBBTestConformance.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/EraseBlock/BlackBoxTest/EraseBlockBBTestConformance.c @@ -1,7 +1,7 @@ /** @file Copyright 2017 Unified EFI, Inc.
- Copyright (c) 2017, Intel Corporation. All rights reserved.
+ Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -51,8 +51,8 @@ BBTestEraseBlocksConformanceTest ( UINT32 BlockSize; UINT32 IoAlign; EFI_LBA LastBlock; - - UINT32 BlockNumber; + UINT32 EraseLengthGranularity; + UINTN EraseSize; EFI_ERASE_BLOCK_TOKEN Token; @@ -121,10 +121,11 @@ BBTestEraseBlocksConformanceTest ( IoAlign = Media->IoAlign; LastBlock = Media->LastBlock; - BlockNumber = (UINT32) MINIMUM(LastBlock, MAX_NUMBER_OF_READ_BLOCK_BUFFER); + EraseLengthGranularity = EraseBlock->EraseLengthGranularity; + EraseSize = (UINTN)SctMultU64x32 (EraseLengthGranularity, BlockSize); if (MediaPresent == FALSE) { - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, 0, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, 0, &Token, EraseSize); if (Status == EFI_NO_MEDIA) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -141,7 +142,7 @@ BBTestEraseBlocksConformanceTest ( Status ); - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock + 1, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock + 1, &Token, EraseSize); if (Status == EFI_NO_MEDIA) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -158,7 +159,7 @@ BBTestEraseBlocksConformanceTest ( Status ); - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock - 10, &Token, BlockNumber + 1); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock - 10, &Token, EraseSize + 1); if (Status == EFI_NO_MEDIA) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -177,7 +178,7 @@ BBTestEraseBlocksConformanceTest ( } else { if (ReadOnly == TRUE) { - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, 0, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, 0, &Token, EraseSize); if (Status == EFI_WRITE_PROTECTED) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -195,7 +196,7 @@ BBTestEraseBlocksConformanceTest ( ); } else { - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, 0, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, 0, &Token, EraseSize); if (Status == EFI_MEDIA_CHANGED) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -212,7 +213,7 @@ BBTestEraseBlocksConformanceTest ( Status ); - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, LastBlock + 1, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, LastBlock + 1, &Token, EraseSize); if (Status == EFI_MEDIA_CHANGED) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -229,7 +230,7 @@ BBTestEraseBlocksConformanceTest ( Status ); - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, LastBlock - 10, &Token, BlockNumber + 1); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId + 1, LastBlock - 10, &Token, EraseSize + 1); if (Status == EFI_MEDIA_CHANGED) AssertionType = EFI_TEST_ASSERTION_PASSED; else @@ -246,7 +247,7 @@ BBTestEraseBlocksConformanceTest ( Status ); - Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock + 1, &Token, BlockNumber); + Status = EraseBlock->EraseBlocks(EraseBlock, MediaId, LastBlock + 1, &Token, EraseSize); if (Status == EFI_INVALID_PARAMETER) AssertionType = EFI_TEST_ASSERTION_PASSED; else -- 2.20.0.windows.1