public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "gaoliming via groups.io" <gaoliming=byosoft.com.cn@groups.io>
To: "'Xianglei Cai'" <xianglei.cai@intel.com>, <devel@edk2.groups.io>
Cc: "'Ray Ni'" <ray.ni@intel.com>,
	"'Krzysztof Lewandowski'" <krzysztof.lewandowski@intel.com>,
	"'Jenny Huang'" <jenny.huang@intel.com>,
	"'More Shih'" <more.shih@intel.com>,
	"'Ian Chiu'" <ian.chiu@intel.com>
Subject: [edk2-devel] 回复: [PATCH V2 1/1] MdeModulePkg/XhciDxe: Add PCD for the delay of HCRST
Date: Mon, 15 Apr 2024 14:30:59 +0800	[thread overview]
Message-ID: <013101da8efe$7aea1710$70be4530$@byosoft.com.cn> (raw)
In-Reply-To: <3a92577fa30900a7c16a73ce312e0166fc9950b5.1713162269.git.xianglei.cai@intel.com>

The change in DSC is not required. PCD default value is from DEC. 

Thanks
Liming
> -----邮件原件-----
> 发件人: Xianglei Cai <xianglei.cai@intel.com>
> 发送时间: 2024年4月15日 14:25
> 收件人: devel@edk2.groups.io
> 抄送: Xianglei Cai <xianglei.cai@intel.com>; Ray Ni <ray.ni@intel.com>;
> Liming Gao <gaoliming@byosoft.com.cn>; Krzysztof Lewandowski
> <krzysztof.lewandowski@intel.com>; Jenny Huang <jenny.huang@intel.com>;
> More Shih <more.shih@intel.com>; Ian Chiu <ian.chiu@intel.com>
> 主题: [PATCH V2 1/1] MdeModulePkg/XhciDxe: Add PCD for the delay of
> HCRST
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=4727
> 
> Recently some of XHCI host controllers require to have
> extra 1ms delay before accessing any MMIO register
> during reset. PHY transition from P3 to P0 can take
> around 1.3ms and the xHCI reset can take around 1.5ms.
> Add PCD to control the delay, the default is 2 ms.
> 
> Cc: Ray Ni                   <ray.ni@intel.com>
> Cc: Liming Gao               <gaoliming@byosoft.com.cn>
> Cc: Krzysztof Lewandowski    <krzysztof.lewandowski@intel.com>
> Cc: Jenny Huang              <jenny.huang@intel.com>
> Cc: More Shih                <more.shih@intel.com>
> Cc: Ian Chiu                 <ian.chiu@intel.com>
> Signed-off-by: Xianglei Cai <xianglei.cai@intel.com>
> Reviewed-by: Krzysztof Lewandowski <krzysztof.lewandowski@intel.com>
> ---
>  MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h      | 1 +
>  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf | 4 ++++
>  MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c   | 2 +-
>  MdeModulePkg/MdeModulePkg.dec            | 5 +++++
>  MdeModulePkg/MdeModulePkg.dsc            | 1 +
>  5 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h
> b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h
> index 44016758724c..c9a12095c29e 100644
> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h
> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.h
> @@ -28,6 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>  #include <Library/DebugLib.h>
>  #include <Library/ReportStatusCodeLib.h>
>  #include <Library/TimerLib.h>
> +#include <Library/PcdLib.h>
> 
>  #include <IndustryStandard/Pci.h>
> 
> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
> b/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
> index 18ef87916ae4..e6c1ac8a6346 100644
> --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
> @@ -56,6 +56,7 @@
>    DebugLib
>    ReportStatusCodeLib
>    TimerLib
> +  PcdLib
> 
>  [Guids]
>    gEfiEventExitBootServicesGuid                 ##
> SOMETIMES_CONSUMES ## Event
> @@ -64,6 +65,9 @@
>    gEfiPciIoProtocolGuid                         ## TO_START
>    gEfiUsb2HcProtocolGuid                        ## BY_START
> 
> +[Pcd]
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdDelayXhciHCReset  ##
> CONSUMES
> +
>  # [Event]
>  # EVENT_TYPE_PERIODIC_TIMER       ## CONSUMES
>  #
> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c
> b/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c
> index 40f2f1f22766..525942a167b0 100644
> --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c
> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c
> @@ -864,7 +864,7 @@ XhcResetHC (
>      // Otherwise there may have the timeout case happened.
>      // The below is a workaround to solve such problem.
>      //
> -    gBS->Stall (XHC_1_MILLISECOND);
> +    gBS->Stall (PcdGet16 (PcdDelayXhciHCReset));
>      Status = XhcWaitOpRegBit (Xhc, XHC_USBCMD_OFFSET,
> XHC_USBCMD_RESET, FALSE, Timeout);
> 
>      if (!EFI_ERROR (Status)) {
> diff --git a/MdeModulePkg/MdeModulePkg.dec
> b/MdeModulePkg/MdeModulePkg.dec
> index a91058e5b5df..d9e2e724df9e 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -1148,6 +1148,11 @@
>    # @Prompt Enable large address image loading.
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdImageLargeAddressLoad|TRUE|BOO
> LEAN|0x30001059
> 
> +  ## Indicates time delay for XHCI registers access after it issues
HCRST.
> +  # Default is 2000, it represent delay is 2 ms.
> +  # @Prompt Delay access XHCI register after it issues HCRST (us)
> +
> gEfiMdeModulePkgTokenSpaceGuid.PcdDelayXhciHCReset|2000|UINT16|0x3
> 0001060
> +
>  [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.dsc
> b/MdeModulePkg/MdeModulePkg.dsc
> index c0f1df3bfbca..0ce4f687679a 100644
> --- a/MdeModulePkg/MdeModulePkg.dsc
> +++ b/MdeModulePkg/MdeModulePkg.dsc
> @@ -210,6 +210,7 @@
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0x0
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|28
> +  gEfiMdePkgTokenSpaceGuid.PcdDelayXhciHCReset|2000
> 
>  [PcdsDynamicExDefault]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName|L"FVMAIN.FV"
> --
> 2.42.0.windows.2





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#117756): https://edk2.groups.io/g/devel/message/117756
Mute This Topic: https://groups.io/mt/105531056/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



      reply	other threads:[~2024-04-15  6:31 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1713162269.git.xianglei.cai@intel.com>
2024-04-15  6:25 ` [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Add PCD for the delay of HCRST Xianglei Cai
2024-04-15  6:30   ` gaoliming via groups.io [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='013101da8efe$7aea1710$70be4530$@byosoft.com.cn' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox