From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4864:20::443; helo=mail-pf1-x443.google.com; envelope-from=ming.huang@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) (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 53DB621BADAB2 for ; Wed, 22 Aug 2018 08:01:11 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id j26-v6so1096914pfi.10 for ; Wed, 22 Aug 2018 08:01:11 -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-language:content-transfer-encoding; bh=bN4REAEvGjJa9/g9MzeeLoe9NY6MAxSuKmwdV2n40Cc=; b=S8eYZuyBR1TYOtyUuD4lU8AInofQ3rISxJmlmutlaN0rBhp83ERHFW90V8MXI0FVyN W9HihfQcNZ9cPGQQQjBro+loLXn18TIyYh06Bn2FHET4TpK85h2ngbmlq6yfTNw7Mx74 E/kdaVzGM+HmZ8TyGT2GiaTEURyeJcMu6X4Fc= 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-language :content-transfer-encoding; bh=bN4REAEvGjJa9/g9MzeeLoe9NY6MAxSuKmwdV2n40Cc=; b=j7qbqfEo+uiPmIUJPGwT9Cf9wFwdnek5zODZfl4F3DN2OPVcjqyQIXjld71v2k4fIc yDYacCyxGoYLUeBO0+wAa2lyqDEjtmaIsQ8uikbeg3ABEFixAVJXEb6W5pBwlp4OELOj ZljUlXxsGFDgMvOAmOb3/1bUZrhPNRo+qJstkCPcuP5cN86Hd2mmyEQmhiH+fl2qSew2 t2GKvWUypkN7KRTS1JPjNQcru2EhDeAqEgtSngft5nJz+NG+f+nt0hn4uKtY4sPVDeVr xx7VaJMmPfgxwduBr3vAVof/+Mcq+WSiXWc2dysY6neZqKJkWMYz0VWSXNE4ORgXhh// p5rw== X-Gm-Message-State: AOUpUlGnsI3e/x/fK1+VwjToAhlFoB8kwAThY6Skpab6TKmrCQbqk5oe UgclQcv4LBs4G9CYoQXPBZTymw== X-Google-Smtp-Source: AA+uWPzfO0QkVCepM0rZbetawjOx7ch96YHIYjYGumlRoeLgz8wAHnaBEs0drlJYA0JqS0rlWkTDbg== X-Received: by 2002:a63:f90a:: with SMTP id h10-v6mr10493032pgi.154.1534950071003; Wed, 22 Aug 2018 08:01:11 -0700 (PDT) Received: from [10.84.0.214] ([64.64.108.140]) by smtp.gmail.com with ESMTPSA id u83-v6sm6601558pfj.37.2018.08.22.08.00.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Aug 2018 08:01:10 -0700 (PDT) To: Leif Lindholm Cc: linaro-uefi@lists.linaro.org, edk2-devel@lists.01.org, graeme.gregory@linaro.org, ard.biesheuvel@linaro.org, michael.d.kinney@intel.com, lersek@redhat.com, guoheyi@huawei.com, wanghuiqiang@huawei.com, huangming23@huawei.com, zhangjinsong2@huawei.com, huangdaode@hisilicon.com, john.garry@huawei.com, xinliang.liu@linaro.org References: <20180816121239.44129-1-ming.huang@linaro.org> <20180816121239.44129-8-ming.huang@linaro.org> <20180822102515.a5zts3sz42m6om3q@bivouac.eciton.net> From: Ming Message-ID: Date: Wed, 22 Aug 2018 23:00:54 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <20180822102515.a5zts3sz42m6om3q@bivouac.eciton.net> Subject: Re: [PATCH edk2-platforms v3 07/36] Silicon/Hisilicon/D06: Wait for all disk ready 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: Wed, 22 Aug 2018 15:01:11 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 8/22/2018 6:25 PM, Leif Lindholm wrote: > (Commenting on the v3 patch since I know it supersedes the v2 patch.) > > On Thu, Aug 16, 2018 at 08:12:10PM +0800, Ming Huang wrote: >> This patch is relative to D06 SasDxe driver. The SasDxe set a >> variable to notice this libray. Here Wait for all disk ready >> for 15S at most. >> >> D06: >> For using straight-through hard disk backboard, some disk need >> 15 seconds to ready. Actually, wait less 15 seconds here(minus >> the time from end of SAS driver to here). >> For using expander backboard, wait less 6 seconds here(minus >> the time from end of SAS driver to here). >> >> D03/D05: >> As Sas driver don't install PLATFORM_SAS_NOTIFY Protocol, D03/D05 >> will skip waiting here. >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Ming Huang >> --- >> Silicon/Hisilicon/HisiPkg.dec | 1 + >> Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf | 3 ++ >> Silicon/Hisilicon/Include/Protocol/PlatformSasNotify.h | 27 ++++++++++++++ >> Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c | 37 ++++++++++++++++++++ >> 4 files changed, 68 insertions(+) >> >> diff --git a/Silicon/Hisilicon/HisiPkg.dec b/Silicon/Hisilicon/HisiPkg.dec >> index 35bea970ec..0595790df8 100644 >> --- a/Silicon/Hisilicon/HisiPkg.dec >> +++ b/Silicon/Hisilicon/HisiPkg.dec >> @@ -39,6 +39,7 @@ >> gPlatformSasProtocolGuid = {0x40e9829f, 0x3a2c, 0x479a, {0x9a, 0x93, 0x45, 0x7d, 0x13, 0x50, 0x96, 0x5d}} >> gHisiPlatformSasProtocolGuid = {0x20e9829f, 0x3a2c, 0x479a, {0x9a, 0x93, 0x45, 0x7d, 0x13, 0x50, 0x96, 0x6d}} >> gHisiSnpPlatformProtocolGuid = {0x81321f27, 0xff58, 0x4a1d, {0x99, 0x97, 0xd, 0xcc, 0xfa, 0x82, 0xf4, 0x6f}} >> + gPlatformSasNotifyProtocolGuid = {0xac62b9a5, 0x9939, 0x41d3, {0xff, 0x5c, 0xc5, 0x80, 0x32, 0x7d, 0x9b, 0x29}} > > Ideally, I would like to see a new package declaration file added in > edk2-non-osi/Silicon/Hisilicon. Maybe HisiliconNonOsi.dec. And this > guid added there. > >> >> [Guids] >> gHisiTokenSpaceGuid = {0xc8bc553e, 0x12bf, 0x11e6, {0x97, 0x4f, 0x87, 0xf7, 0x7c, 0xfd, 0x52, 0x1d}} >> diff --git a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> index 7a53befc44..96a46da8c5 100644 >> --- a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> +++ b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> @@ -49,6 +49,7 @@ >> MemoryAllocationLib >> PcdLib >> PrintLib >> + TimerLib >> UefiBootManagerLib >> UefiBootServicesTableLib >> UefiLib >> @@ -67,8 +68,10 @@ >> [Guids] >> gEfiEndOfDxeEventGroupGuid >> gEfiTtyTermGuid >> + gOemConfigGuid >> >> [Protocols] >> gEfiGenericMemTestProtocolGuid >> gEfiLoadedImageProtocolGuid >> gEsrtManagementProtocolGuid >> + gPlatformSasNotifyProtocolGuid >> diff --git a/Silicon/Hisilicon/Include/Protocol/PlatformSasNotify.h b/Silicon/Hisilicon/Include/Protocol/PlatformSasNotify.h >> new file mode 100644 >> index 0000000000..54fd30fc68 >> --- /dev/null >> +++ b/Silicon/Hisilicon/Include/Protocol/PlatformSasNotify.h > > And similarly, this file added under edk2-non-osi/Silicon/Hisilicon/Include/Protocol. > > Other than that, I am happy with this patch. > > (Yes, I know we have not enforced this in the past, but it is way > cleaner and makes API-updates a single patch in a single repository.) OK, do it in v4. Thanks. > > / > Leif > >> @@ -0,0 +1,27 @@ >> +/** @file >> +* >> +* Copyright (c) 2018, Hisilicon Limited. All rights reserved. >> +* Copyright (c) 2018, Linaro Limited. All rights reserved. >> +* >> +* 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. >> +* >> +**/ >> + >> +#ifndef _PLATFORM_SAS_NOTIFY_H_ >> +#define _PLATFORM_SAS_NOTIFY_H_ >> + >> +typedef struct _PLATFORM_SAS_NOTIFY PLATFORM_SAS_NOTIFY; >> + >> +struct _PLATFORM_SAS_NOTIFY { >> + EFI_EVENT WaitDiskEvent; >> +}; >> + >> +extern EFI_GUID gPlatformSasNotifyProtocolGuid; >> + >> +#endif >> diff --git a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> index 7dd5ba615c..eaa6ce78d0 100644 >> --- a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> +++ b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> @@ -20,6 +20,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -29,6 +30,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> >> @@ -554,6 +556,40 @@ PlatformBootManagerBeforeConsole ( >> PlatformRegisterOptionsAndKeys (); >> } >> >> +STATIC >> +VOID >> +WaitForDiskReady ( >> + VOID >> + ) >> +{ >> + EFI_STATUS Status; >> + UINT32 Index; >> + PLATFORM_SAS_NOTIFY *SasNotify; >> + >> + Status = gBS->LocateProtocol ( >> + &gPlatformSasNotifyProtocolGuid, >> + NULL, >> + (VOID **)&SasNotify); >> + if (EFI_ERROR (Status)) { >> + DEBUG ((DEBUG_INFO, "Locate SasPlatformNotify:%r\n", Status)); >> + return; >> + } >> + >> + // Wait for 30 seconds at most. >> + for (Index = 0; Index < 30; Index++) { >> + Status = gBS->CheckEvent (SasNotify->WaitDiskEvent); >> + if (!EFI_ERROR (Status)) { >> + DEBUG ((DEBUG_INFO, "WaitDiskEvent is signaled.\n")); >> + EfiBootManagerConnectAll (); >> + break; >> + } >> + DEBUG ((DEBUG_ERROR, "%a", Index == 0 ? "Wait for disk." : ".")); >> + MicroSecondDelay (1000 * 1000); >> + } >> + >> + return; >> +} >> + >> /** >> Do the platform specific action after the console is ready >> Possible things that can be done in PlatformBootManagerAfterConsole: >> @@ -583,6 +619,7 @@ PlatformBootManagerAfterConsole ( >> // Connect the rest of the devices. >> // >> EfiBootManagerConnectAll (); >> + WaitForDiskReady (); >> >> // >> // Enumerate all possible boot options. >> -- >> 2.17.0 >>