public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Heyi Guo <heyi.guo@linaro.org>
To: leif.lindholm@linaro.org, linaro-uefi@lists.linaro.org,
	edk2-devel@lists.01.org, graeme.gregory@linaro.org
Cc: ard.biesheuvel@linaro.org, guoheyi@huawei.com,
	wanghuiqiang@huawei.com, huangming23@huawei.com,
	zhangjinsong2@huawei.com, mengfanrong@huawei.com, waip23@126.com,
	Chenhui Sun <chenhui.sun@linaro.org>,
	Heyi Guo <heyi.guo@linaro.org>
Subject: [PATCH edk2-platforms v5 08/11] Hisilicon/D03: Disable the function of PerfTuning
Date: Fri, 29 Sep 2017 11:19:47 +0800	[thread overview]
Message-ID: <1506655190-56231-9-git-send-email-heyi.guo@linaro.org> (raw)
In-Reply-To: <1506655190-56231-1-git-send-email-heyi.guo@linaro.org>

From: Chenhui Sun <chenhui.sun@linaro.org>

The PerTuning function is not stable, it will cause the
LSI SAS 3008/3108 crash, disable this function first.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chenhui Sun <chenhui.sun@linaro.org>
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
---
 Platform/Hisilicon/D03/D03.dsc                                |  1 -
 Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitDxe.inf |  1 -
 Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitLib.c   | 50 --------------------
 Silicon/Hisilicon/HisiPkg.dec                                 |  1 -
 4 files changed, 53 deletions(-)

diff --git a/Platform/Hisilicon/D03/D03.dsc b/Platform/Hisilicon/D03/D03.dsc
index fca6781..f2a120e 100644
--- a/Platform/Hisilicon/D03/D03.dsc
+++ b/Platform/Hisilicon/D03/D03.dsc
@@ -112,7 +112,6 @@
   #  It could be set FALSE to save size.
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
   gHisiTokenSpaceGuid.PcdIsItsSupported|TRUE
-  gHisiTokenSpaceGuid.PcdIsPciPerfTuningEnable|TRUE
 
 [PcdsFixedAtBuild.common]
   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"D03"
diff --git a/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitDxe.inf b/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitDxe.inf
index ee9dbed..61b091f 100644
--- a/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitDxe.inf
+++ b/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitDxe.inf
@@ -55,7 +55,6 @@
 
 [FeaturePcd]
   gHisiTokenSpaceGuid.PcdIsItsSupported
-  gHisiTokenSpaceGuid.PcdIsPciPerfTuningEnable
 
 [depex]
   TRUE
diff --git a/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitLib.c b/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitLib.c
index 8ab7fa3..f420c91 100644
--- a/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitLib.c
+++ b/Silicon/Hisilicon/Hi1610/Drivers/PcieInit1610/PcieInitLib.c
@@ -315,50 +315,6 @@ PcieEnableItssm (
 
 }
 
-STATIC EFI_STATUS PciPerfTuning(UINT32 soctype, UINT32 HostBridgeNum, UINT32 Port)
-{
-    UINT32 Value;
-    UINTN  RegSegmentOffset;
-
-    if (Port >= PCIE_MAX_ROOTBRIDGE) {
-      DEBUG((DEBUG_ERROR, "Invalid port number: %d\n", Port));
-      return EFI_INVALID_PARAMETER;
-    }
-
-    RegSegmentOffset = PCIE_APB_SLAVE_BASE_1610[HostBridgeNum][Port] + PCIE_SYS_REG_OFFSET;
-
-    //Enable SMMU bypass for translation
-    RegRead(RegSegmentOffset + PCIE_SYS_CTRL13_REG, Value);
-    //BIT13: controller master read SMMU bypass
-    //BIT12: controller master write SMMU bypass
-    //BIT10: SMMU bypass enable
-    Value |= (BIT13 | BIT12 | BIT10);
-    RegWrite(RegSegmentOffset + PCIE_SYS_CTRL13_REG, Value);
-
-    //Switch strongly order (SO) to relaxed order (RO) for write transaction
-    RegRead(RegSegmentOffset + PCIE_CTRL_6_REG, Value);
-    //BIT13 | BIT12: Enable write merge and SMMU streaming ordered write acknowledge
-    Value |= (BIT13 | BIT12);
-    //BIT29 | BIT27 | BIT25 | BIT23 | BIT21 | BIT19 | BIT17: Enable RO for all types of write transaction
-    Value |= (BIT29 | BIT27 | BIT25 | BIT23 | BIT21 | BIT19 | BIT17);
-    RegWrite(RegSegmentOffset + PCIE_CTRL_6_REG, Value);
-
-    //Force streamID for controller read operation
-    RegRead(RegSegmentOffset + PCIE_SYS_CTRL54_REG, Value);
-    //Force using streamID in PCIE_SYS_CTRL54_REG
-    Value &= ~(BIT30);
-    //Set streamID to 0, bit[0:15] is for request ID and should be kept
-    Value &= ~(0xff << 16);
-    RegWrite(RegSegmentOffset + PCIE_SYS_CTRL54_REG, Value);
-
-    //Enable read and write snoopy
-    RegRead(RegSegmentOffset + PCIE_SYS_CTRL19_REG, Value);
-    Value |= (BIT30 | BIT28);
-    RegWrite(RegSegmentOffset + PCIE_SYS_CTRL19_REG, Value);
-
-    return EFI_SUCCESS;
-}
-
 EFI_STATUS PcieDisableItssm(UINT32 soctype, UINT32 HostBridgeNum, UINT32 Port)
 {
     PCIE_CTRL_7_U pcie_ctrl7;
@@ -1141,12 +1097,6 @@ PciePortInit (
      DisableRcOptionRom (soctype, HostBridgeNum, PortIndex, PcieCfg->PortInfo.PortType);
      /* assert LTSSM enable */
      (VOID)PcieEnableItssm (soctype, HostBridgeNum, PortIndex, PcieCfg);
-     if (FeaturePcdGet(PcdIsPciPerfTuningEnable)) {
-       //PCIe will still work even if performance tuning fails,
-       //and there is warning message inside the function to print
-       //detailed error if there is.
-       (VOID)PciPerfTuning(soctype, HostBridgeNum, PortIndex);
-     }
 
      PcieConfigContextHi1610(soctype, HostBridgeNum, PortIndex);
      /*
diff --git a/Silicon/Hisilicon/HisiPkg.dec b/Silicon/Hisilicon/HisiPkg.dec
index 2c02e14..81ba3be 100644
--- a/Silicon/Hisilicon/HisiPkg.dec
+++ b/Silicon/Hisilicon/HisiPkg.dec
@@ -274,7 +274,6 @@
 
 [PcdsFeatureFlag]
   gHisiTokenSpaceGuid.PcdIsItsSupported|FALSE|BOOLEAN|0x00000065
-  gHisiTokenSpaceGuid.PcdIsPciPerfTuningEnable|FALSE|BOOLEAN|0x00000066
 
 
 
-- 
1.9.1



  parent reply	other threads:[~2017-09-29  3:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-29  3:19 [PATCH edk2-platforms v5 00/11] Improve D0x platforms and bug fix Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 01/11] Hisilicon/D05: Modify dsc and fdf file Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 02/11] Hisilicon/D03: " Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 03/11] Hisilicon: Fix the drivers use the same GUID issue Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 04/11] Hisilicon D03/D05: get firmware version from FIRMWARE_VER Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 05/11] Hisilicon/PciHostBridgeDxe: Assign BAR resource from PciRegionBase Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 06/11] Hisilicon/D05/Pcie: fix bug of size definition Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 07/11] D05/PCIe: Modify PcieRegionBase of secondary chip Heyi Guo
2017-09-29  3:19 ` Heyi Guo [this message]
2017-09-29  3:19 ` [PATCH edk2-platforms v5 09/11] D05/ACPI: Disable D05 SAS0 and SAS2 Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 10/11] D05/ACPI: Modify I2C device Heyi Guo
2017-09-29  3:19 ` [PATCH edk2-platforms v5 11/11] Hisilicon D03/D05: Enlarge iATU for RP with ARI capable device Heyi Guo
2017-09-29 19:19 ` [PATCH edk2-platforms v5 00/11] Improve D0x platforms and bug fix Heyi Guo
2017-10-05 12:54 ` Leif Lindholm

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=1506655190-56231-9-git-send-email-heyi.guo@linaro.org \
    --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