From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:400e:c05::243; helo=mail-pg0-x243.google.com; envelope-from=ming.huang@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-pg0-x243.google.com (mail-pg0-x243.google.com [IPv6:2607:f8b0:400e:c05::243]) (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 84C0C21E49032 for ; Wed, 14 Mar 2018 05:34:36 -0700 (PDT) Received: by mail-pg0-x243.google.com with SMTP id s13so1281037pgn.12 for ; Wed, 14 Mar 2018 05:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=HdnEngzsp0VglsN4XT2L59YJ8sT63GCtVd/pqQClhXQ=; b=JoP4nUE92jc7E7er+KN4SSZZNGvA40nTYQyoAJfV02XTqVVh2XebaHp3G/Ot0ty5ig HwDzrD9o2GPGZTYcm1SFjoNnGzV8JuhCesfHzNB2VHk3rJfLYzZpPOE1ZTZVUwA8QZEM 3uKebDeGr9dOsttY3fRas9Nw7gIxiLagX2gDk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=HdnEngzsp0VglsN4XT2L59YJ8sT63GCtVd/pqQClhXQ=; b=Iij+fNWxofqI8zEuWXBoXaS9CZMOp1R0iAYZhBSo9+FoGk9HaNaL0QKJGQGvQVS4lh /Y88u+SrVqNDyQzmyIJrhl3j6l/sHe+VcxE0QxFFbbtvkybJcygmkJPR9zvbUmLgOQ9S Ck2JmnsdxCredPx/u7HHcbY/Qc3B6KLWKywAImbUct/uDIBIA+dQGNs8s2zB9aW7xFor x1xV+9lJj81n9m72y94napnMC8nt/KpapgHm7C+0FW+6/VXRgRo7gwSWNmyEsQ4PwkM7 6XI8KCDiWkuLQQGYeXL4WPGszlcnDW5jBT5f0Kz8fIW0Jd1Ox3VfaFF3EMRVJqj+jBDw Ut8g== X-Gm-Message-State: AElRT7Gv/0fjU7lKI8QikD5EnLSsmrsNitNyfaWtpxMU4lBF+s9q/4iP AwnLjZiEbdZrafMJUG++T+ojVg== X-Google-Smtp-Source: AG47ELv1u0THvuf7R45t5QHi6/RaOT7lk8IFUBsLjr8SsecWp6wj5weY9iGok20+wJD1NrYU4yqSaQ== X-Received: by 10.98.249.76 with SMTP id g12mr4211690pfm.76.1521031258708; Wed, 14 Mar 2018 05:40:58 -0700 (PDT) Received: from [10.102.1.170] ([45.56.155.45]) by smtp.gmail.com with ESMTPSA id e10sm4899968pff.151.2018.03.14.05.40.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 05:40:57 -0700 (PDT) To: "Kinney, Michael D" , "Zeng, Star" , "Ni, Ruiyu" , "leif.lindholm@linaro.org" , "linaro-uefi@lists.linaro.org" , "edk2-devel@lists.01.org" , "graeme.gregory@linaro.org" , "Dong, Eric" Cc: "huangming23@huawei.com" , "wanghuiqiang@huawei.com" , "ard.biesheuvel@linaro.org" , "zhangjinsong2@huawei.com" , "Gao, Liming" , "guoheyi@huawei.com" , "waip23@126.com" , "mengfanrong@huawei.com" , "huangdaode@hisilicon.com" References: <1519464575-38109-1-git-send-email-ming.huang@linaro.org> <1519464575-38109-2-git-send-email-ming.huang@linaro.org> <734D49CCEBEEF84792F5B80ED585239D5BBC26C6@SHSMSX104.ccr.corp.intel.com> <8fb46727-76ea-6a86-d936-ea3cec9df3d8@linaro.org> <3d24a3f3-a704-b4bd-4d7d-6f1fdc46f78b@linaro.org> <0C09AFA07DD0434D9E2A0C6AEB0483103BA62A36@shsmsx102.ccr.corp.intel.com> From: Ming Huang Message-ID: <1f094f34-4507-f6fd-f79d-01e7b77067ff@linaro.org> Date: Wed, 14 Mar 2018 20:40:29 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Subject: Re: [RFC v1 1/1] MdeModulePkg/Usb: Use Pcd for UsbBootIoBlocks X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2018 12:34:36 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Mike, Evaluating block size is a good idea! The block size of the target USB device is 2048 in my platform. I modify the UsbMassBoot.c with evaluating block size and it works. I will send the patch later. Thanks, Ming On 2018/3/13 9:38, Kinney, Michael D wrote: > Star, > > Maybe we should evaluate block size of the target USB > device and limit the total transfer size to 64KB. > > This would continue to use 128 for 512B blocks and > 32 for 2K blocks. > > Mike > >> -----Original Message----- >> From: Zeng, Star >> Sent: Monday, March 12, 2018 5:44 PM >> To: Kinney, Michael D ; Ming >> Huang ; Ni, Ruiyu >> ; leif.lindholm@linaro.org; linaro- >> uefi@lists.linaro.org; edk2-devel@lists.01.org; >> graeme.gregory@linaro.org; Dong, Eric >> >> Cc: huangming23@huawei.com; wanghuiqiang@huawei.com; >> ard.biesheuvel@linaro.org; zhangjinsong2@huawei.com; >> Gao, Liming ; guoheyi@huawei.com; >> waip23@126.com; mengfanrong@huawei.com; >> huangdaode@hisilicon.com; Zeng, Star >> >> Subject: RE: [edk2] [RFC v1 1/1] MdeModulePkg/Usb: Use >> Pcd for UsbBootIoBlocks >> >> Mike, >> >> There was some discussion at >> https://lists.01.org/pipermail/edk2-devel/2017- >> January/006707.html. >> Seeming, there is no detailed information about why it >> was changed to 128 according to the commit log. >> >> >> Thanks, >> Star >> >> -----Original Message----- >> From: Kinney, Michael D >> Sent: Monday, March 12, 2018 11:47 PM >> To: Ming Huang ; Ni, Ruiyu >> ; leif.lindholm@linaro.org; linaro- >> uefi@lists.linaro.org; edk2-devel@lists.01.org; >> graeme.gregory@linaro.org; Zeng, Star >> ; Dong, Eric ; >> Kinney, Michael D >> Cc: huangming23@huawei.com; wanghuiqiang@huawei.com; >> ard.biesheuvel@linaro.org; zhangjinsong2@huawei.com; >> Gao, Liming ; guoheyi@huawei.com; >> waip23@126.com; mengfanrong@huawei.com; >> huangdaode@hisilicon.com >> Subject: RE: [edk2] [RFC v1 1/1] MdeModulePkg/Usb: Use >> Pcd for UsbBootIoBlocks >> >> Does anyone know wow was the original #define of 128 >> selected? >> >> If we are seeing compatibility issues with 128 and we >> have greater compatibility with 64, what would be the >> impact of just changing the #define to 64? >> >> Thanks, >> >> Mike >> >>> -----Original Message----- >>> From: Ming Huang [mailto:ming.huang@linaro.org] >>> Sent: Sunday, March 11, 2018 11:01 PM >>> To: Ni, Ruiyu ; >>> leif.lindholm@linaro.org; linaro- >> uefi@lists.linaro.org; >>> edk2-devel@lists.01.org; graeme.gregory@linaro.org; >> Zeng, Star >>> ; Dong, Eric >> >>> Cc: huangming23@huawei.com; wanghuiqiang@huawei.com; >>> ard.biesheuvel@linaro.org; zhangjinsong2@huawei.com; >> Kinney, Michael D >>> ; Gao, Liming >> ; >>> guoheyi@huawei.com; waip23@126.com; >> mengfanrong@huawei.com; >>> huangdaode@hisilicon.com >>> Subject: Re: [edk2] [RFC v1 1/1] MdeModulePkg/Usb: Use >> Pcd for >>> UsbBootIoBlocks >>> >>> Any comments about this patch? >>> >>> >>> On 2018/3/2 14:36, Ming Huang wrote: >>>> On 2018/2/27 18:01, Ni, Ruiyu wrote: >>>>> On 2/27/2018 5:25 PM, Ming Huang wrote: >>>>>> On 2018/2/27 13:25, Ni, Ruiyu wrote: >>>>>>> I don't prefer to add PCD, unless we cannot find: >>>>>>> 1. spec content  to describe the max/min blocks >>>>>> There is no spec about the max/min blocks in my >>> mind. I had checked this in >>>>>> several pdf document like >>>>>> Universal Serial Bus Mass Storage Class >>> Specification Overview, >>>>>> Universal Serial Bus Mass Storage Specification >> For >>> Bootability, >>>>>> Universal Serial Bus Mass Storage Class Bulk-Only >>> Transport. >>>>>>> 2. error handling when the blocks number is >> bigger >>> than HW expects. >>>>>> Where should error handling add to?  Error handing >>> can't add to HW (end-point device), >>>>>> because HW is not in our control scope. >>>>> I mean maybe spec describes an error status could >> be >>> returned from HW when using 128. So that we can use >> 64, 32, and >>> smaller value until HW is happy. >>>>> I am curious how the other USB storage drivers >> handle >>> this. >>>>> PCD is a static way. Dynamic way is more preferred. >>>>> >>>> When using 128,  after waiting >>> 5x5(USB_BOOT_COMMAND_RETRY=5, >>> USB_BOOT_GENERAL_CMD_TIMEOUT=5) seconds, >>>> the UsbBootReadBlocks ->UsbBootExecCmdWithRetry >> retrun >>> TimeOut. I don't know why HW return Timeout. >>>> Booting time is to long if using Dynamic way to fix >>> the issue. >>>> When using 64, It works and booting from HW succeed. >>>> May be using PCD is a simple and effective mean. >>>> >>>> Thanks >>>> Ming >>>>>>> Thanks/Ray >>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: edk2-devel [mailto:edk2-devel- >>> bounces@lists.01.org] On Behalf Of >>>>>>>> Ming Huang >>>>>>>> Sent: Saturday, February 24, 2018 5:30 PM >>>>>>>> To: leif.lindholm@linaro.org; linaro- >>> uefi@lists.linaro.org; edk2- >>>>>>>> devel@lists.01.org; graeme.gregory@linaro.org; >>> Zeng, Star >>>>>>>> ; Dong, Eric >>> >>>>>>>> Cc: huangming23@huawei.com; >>> ard.biesheuvel@linaro.org; Ming Huang >>>>>>>> ; Gao, Liming >>> ; >>>>>>>> mengfanrong@huawei.com; guoheyi@huawei.com; >>>>>>>> zhangjinsong2@huawei.com; Kinney, Michael D >>>>>>>> ; waip23@126.com; >>>>>>>> wanghuiqiang@huawei.com; >> huangdaode@hisilicon.com >>>>>>>> Subject: [edk2] [RFC v1 1/1] MdeModulePkg/Usb: >> Use >>> Pcd for >>>>>>>> UsbBootIoBlocks >>>>>>>> >>>>>>>> Booting from USB may fail while the macro >>> USB_BOOT_IO_BLOCKS set to 128 >>>>>>>> because 128 blocks is exceeded the maximun >> blocks >>> of some USB >>>>>>>> devices,like some virtual CD-ROM from BMC. So, >>> give a chance to set the >>>>>>>> value of USB_BOOT_IO_BLOCKS by adding a Pcd. >>>>>>>> >>>>>>>> Contributed-under: TianoCore Contribution >>> Agreement 1.1 >>>>>>>> Signed-off-by: Ming Huang >> >>>>>>>> --- >>>>>>>   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBo >>> ot.h         | 7 >>>>>>>> +++++-- >>>>>>>   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassSt >>> orageDxe.inf | 4 >>>>>>>> ++++ >>>>>>>>   MdeModulePkg/MdeModulePkg.dec >>>              | 4 ++++ >>>>>>>>   MdeModulePkg/MdeModulePkg.uni >>>              | 4 ++++ >>>>>>>>   4 files changed, 17 insertions(+), 2 >> deletions(- >>> ) >>>>>>>> diff --git >>> a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.h >>> b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.h >>>>>>>> index 5ee50ac52a21..ca9240adbd5f 100644 >>>>>>>> --- >>> a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.h >>>>>>>> +++ >>> b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.h >>>>>>>> @@ -16,6 +16,8 @@ WITHOUT WARRANTIES OR >>> REPRESENTATIONS OF ANY >>>>>>>> KIND, EITHER EXPRESS OR IMPLIED. >>>>>>>>   #ifndef _EFI_USB_MASS_BOOT_H_ >>>>>>>>   #define _EFI_USB_MASS_BOOT_H_ >>>>>>>> >>>>>>>> +#include >>>>>>>> + >>>>>>>>   // >>>>>>>>   // The opcodes of various USB boot commands: >>>>>>>>   // INQUIRY/REQUEST_SENSE are "No Timeout >>> Commands" as specified @@ >>>>>>>> -66,9 +68,10 @@ WITHOUT WARRANTIES OR >>> REPRESENTATIONS OF ANY >>>>>>>> KIND, EITHER EXPRESS OR IMPLIED. >>>>>>>>   #define >>> USB_PDT_SIMPLE_DIRECT           0x0E       ///< >> Simplified direct >>> access >>>>>>>> device >>>>>>>> >>>>>>>>   // >>>>>>>> -// Other parameters, Max carried size is 512B * >>> 128 = 64KB >>>>>>>> +// Other parameters, Max carried size is >> depanded >>> on Pcd. >>>>>>>> +// The default of PcdUsbBootIoBlocks is 128. >> 512B >>> * 128 = 64KB >>>>>>>>   // >>>>>>>> -#define USB_BOOT_IO_BLOCKS              128 >>>>>>>> +#define >>> USB_BOOT_IO_BLOCKS              (FixedPcdGet32 >>>>>>>> (PcdUsbBootIoBlocks)) >>>>>>>> >>>>>>>>   // >>>>>>>>   // Retry mass command times, set by experience >>> diff --git >> a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageD >>> xe.inf >> b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageD >>> xe.inf >>>>>>>> index 26d15c7679bf..40426512f884 100644 >>>>>>>> --- >>>>>>>> >> a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageD >>> xe.inf >>>>>>>> +++ >>>>>>>> >> b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageD >>> xe.inf >>>>>>>> @@ -60,6 +60,7 @@ [Sources] >>>>>>>>     UsbMassDiskInfo.c >>>>>>>> >>>>>>>>   [Packages] >>>>>>>> +  MdeModulePkg/MdeModulePkg.dec >>>>>>>>     MdePkg/MdePkg.dec >>>>>>>> >>>>>>>>   [LibraryClasses] >>>>>>>> @@ -83,5 +84,8 @@ [Protocols] >>>>>>>>   # EVENT_TYPE_RELATIVE_TIMER        ## CONSUMES >>>>>>>>   # >>>>>>>> >>>>>>>> +[FixedPcd] >>>>>>>> >>> +  gEfiMdeModulePkgTokenSpaceGuid.PcdUsbBootIoBlocks >>>>>>>> + >>>>>>>>   [UserExtensions.TianoCore."ExtraFiles"] >>>>>>>>     UsbMassStorageDxeExtra.uni >>>>>>>> diff --git a/MdeModulePkg/MdeModulePkg.dec >>>>>>>> b/MdeModulePkg/MdeModulePkg.dec index >>> 455979386e3f..fc40745315a0 >>>>>>>> 100644 >>>>>>>> --- a/MdeModulePkg/MdeModulePkg.dec >>>>>>>> +++ b/MdeModulePkg/MdeModulePkg.dec >>>>>>>> @@ -999,6 +999,10 @@ [PcdsFixedAtBuild] >>>>>>>>     # @Prompt Enable UEFI Stack Guard. >>>>>>>> >>>>>>>> >> gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard|FALSE|BO >>> OLEAN|0 >>>>>>>> x30001055 >>>>>>>> >>>>>>>> +## The Max blocks of usb transfer. The default >> is >>> 128. >>>>>>>> +# @Prompt The Max blocks of usb transfer >>>>>>>> >> +gEfiMdeModulePkgTokenSpaceGuid.PcdUsbBootIoBlocks|128|U >>> INT32|0x0 >>>>>>>> 000010B >>>>>>>> + >>>>>>>>   [PcdsFixedAtBuild, PcdsPatchableInModule] >>>>>>>>     ## Dynamic type PCD can be registered >> callback >>> function for Pcd setting >>>>>>>> action. >>>>>>>>     #  PcdMaxPeiPcdCallBackNumberPerPcdEntry >>> indicates the maximum >>>>>>>> number of callback function diff --git >>> a/MdeModulePkg/MdeModulePkg.uni >>>>>>>> b/MdeModulePkg/MdeModulePkg.uni index >>> f3fa616438b0..c996d6b4ebe0 >>>>>>>> 100644 >>>>>>>> --- a/MdeModulePkg/MdeModulePkg.uni >>>>>>>> +++ b/MdeModulePkg/MdeModulePkg.uni >>>>>>>> @@ -1243,3 +1243,7 @@ >>>>>>>>   #string >>>>>>>> >> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdEdkiiFpdtStringRec >>> ordEnableO >>>>>>>> nly_HELP    #language en-US "Control which FPDT >>> record format will be used >>>>>>>> to store the performance entry.\n" >>>>>>>> >> "O n TRUE, the >>> string FPDT >>>>>>>> record will be used to store every performance >>> entry.\n" >> "O n FALSE, the >>> different >>>>>>>> FPDT record will be used to store the different >>> performance entries." >>>>>>>> + >>>>>>>> +#string >>>>>>>> >> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdUsbBootIoBlocks_PR >>> OMPT >>>>>>>> #language en-US "The Max blocks of usb >> transfer." >>>>>>>> + >>>>>>>> +#string >>>>>>>> >> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdUsbBootIoBlocks_HE >>> LP >>>>>>>> #language en-US "The Max blocks of usb transfer. >>> The default is 128." >>>>>>>> -- >>>>>>>> 1.9.1 >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> edk2-devel mailing list >>>>>>>> edk2-devel@lists.01.org >>>>>>>> https://lists.01.org/mailman/listinfo/edk2-devel >>>>>> _______________________________________________ >>>>>> edk2-devel mailing list >>>>>> edk2-devel@lists.01.org >>>>>> https://lists.01.org/mailman/listinfo/edk2-devel >>>>>>