* [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE @ 2018-05-25 10:02 Ruiyu Ni 2018-05-25 10:02 ` [PATCH 1/2] MdeModulePkg/PciBus: Remove unnecessary PCIE detection Ruiyu Ni ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Ruiyu Ni @ 2018-05-25 10:02 UTC (permalink / raw) To: edk2-devel Per PCIE spec, Memory Write and Invalidate is hardwired to 0b so PciBus driver shouldn't write 1b to it. Patch #1 cleans up some unnecessary code. Ruiyu Ni (2): MdeModulePkg/PciBus: Remove unnecessary PCIE detection MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c | 17 +---------------- MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 10 ++++++---- 2 files changed, 7 insertions(+), 20 deletions(-) -- 2.16.1.windows.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] MdeModulePkg/PciBus: Remove unnecessary PCIE detection 2018-05-25 10:02 [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni @ 2018-05-25 10:02 ` Ruiyu Ni 2018-05-25 10:02 ` [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni 2018-05-28 4:47 ` 答复: [PATCH 0/2] " Zeng, Star 2 siblings, 0 replies; 5+ messages in thread From: Ruiyu Ni @ 2018-05-25 10:02 UTC (permalink / raw) To: edk2-devel; +Cc: Star Zeng, Hao A Wu CreatePciIoDevice() detects whether the PCI device is a PCI Express device and remembers the device type in PciIoDevice->IsPciExp. RegisterPciDevice() detects the device type again which is unnecessary. The detection logic can be removed. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> --- MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c index e76c8f0046..f69fe938da 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c @@ -1,7 +1,7 @@ /** @file Supporting functions implementaion for PCI devices management. -Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 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 @@ -211,7 +211,6 @@ RegisterPciDevice ( EFI_STATUS Status; VOID *PlatformOpRomBuffer; UINTN PlatformOpRomSize; - UINT8 PciExpressCapRegOffset; EFI_PCI_IO_PROTOCOL *PciIo; UINT8 Data8; BOOLEAN HasEfiImage; @@ -231,20 +230,6 @@ RegisterPciDevice ( return Status; } - // - // Detect if PCI Express Device - // - PciExpressCapRegOffset = 0; - Status = LocateCapabilityRegBlock ( - PciIoDevice, - EFI_PCI_CAPABILITY_ID_PCIEXP, - &PciExpressCapRegOffset, - NULL - ); - if (!EFI_ERROR (Status)) { - PciIoDevice->IsPciExp = TRUE; - } - // // Force Interrupt line to "Unknown" or "No Connection" // -- 2.16.1.windows.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE 2018-05-25 10:02 [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni 2018-05-25 10:02 ` [PATCH 1/2] MdeModulePkg/PciBus: Remove unnecessary PCIE detection Ruiyu Ni @ 2018-05-25 10:02 ` Ruiyu Ni 2018-05-28 2:33 ` Chiu, Chasel 2018-05-28 4:47 ` 答复: [PATCH 0/2] " Zeng, Star 2 siblings, 1 reply; 5+ messages in thread From: Ruiyu Ni @ 2018-05-25 10:02 UTC (permalink / raw) To: edk2-devel; +Cc: Star Zeng, Chasel Chiu Per PCIE spec, Memory Write and Invalidate is hardwired to 0b so PciBus driver shouldn't write 1b to it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> --- MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c index 81171c82d9..6f3d1bebc6 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c @@ -1,7 +1,7 @@ /** @file PCI emumeration support functions implementation for PCI Bus module. -Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -1254,9 +1254,11 @@ DetermineDeviceAttribute ( PciSetDeviceAttribute (PciIoDevice, OldCommand, OldBridgeControl, EFI_SET_ATTRIBUTES); // - // Enable other supported attributes but not defined in PCI_IO_PROTOCOL - // - PCI_ENABLE_COMMAND_REGISTER (PciIoDevice, EFI_PCI_COMMAND_MEMORY_WRITE_AND_INVALIDATE); + // Enable other PCI supported attributes but not defined in PCI_IO_PROTOCOL + // For PCI Express devices, Memory Write and Invalidate is hardwired to 0b so only enable it for PCI devices. + if (!PciIoDevice->IsPciExp) { + PCI_ENABLE_COMMAND_REGISTER (PciIoDevice, EFI_PCI_COMMAND_MEMORY_WRITE_AND_INVALIDATE); + } } FastB2BSupport = TRUE; -- 2.16.1.windows.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE 2018-05-25 10:02 ` [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni @ 2018-05-28 2:33 ` Chiu, Chasel 0 siblings, 0 replies; 5+ messages in thread From: Chiu, Chasel @ 2018-05-28 2:33 UTC (permalink / raw) To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Zeng, Star Reviewed-by: Chasel Chiu <chasel.chiu@intel.com> -----Original Message----- From: Ni, Ruiyu Sent: Friday, May 25, 2018 6:03 PM To: edk2-devel@lists.01.org Cc: Zeng, Star <star.zeng@intel.com>; Chiu, Chasel <chasel.chiu@intel.com> Subject: [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Per PCIE spec, Memory Write and Invalidate is hardwired to 0b so PciBus driver shouldn't write 1b to it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> --- MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c index 81171c82d9..6f3d1bebc6 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c @@ -1,7 +1,7 @@ /** @file PCI emumeration support functions implementation for PCI Bus module. -Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -1254,9 +1254,11 @@ DetermineDeviceAttribute ( PciSetDeviceAttribute (PciIoDevice, OldCommand, OldBridgeControl, EFI_SET_ATTRIBUTES); // - // Enable other supported attributes but not defined in PCI_IO_PROTOCOL - // - PCI_ENABLE_COMMAND_REGISTER (PciIoDevice, EFI_PCI_COMMAND_MEMORY_WRITE_AND_INVALIDATE); + // Enable other PCI supported attributes but not defined in PCI_IO_PROTOCOL + // For PCI Express devices, Memory Write and Invalidate is hardwired to 0b so only enable it for PCI devices. + if (!PciIoDevice->IsPciExp) { + PCI_ENABLE_COMMAND_REGISTER (PciIoDevice, EFI_PCI_COMMAND_MEMORY_WRITE_AND_INVALIDATE); + } } FastB2BSupport = TRUE; -- 2.16.1.windows.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* 答复: [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE 2018-05-25 10:02 [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni 2018-05-25 10:02 ` [PATCH 1/2] MdeModulePkg/PciBus: Remove unnecessary PCIE detection Ruiyu Ni 2018-05-25 10:02 ` [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni @ 2018-05-28 4:47 ` Zeng, Star 2 siblings, 0 replies; 5+ messages in thread From: Zeng, Star @ 2018-05-28 4:47 UTC (permalink / raw) To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Zeng, Star Reviewed-by: Star Zeng star.zeng@intel.com ________________________________________ 发件人: edk2-devel [edk2-devel-bounces@lists.01.org] 代表 Ruiyu Ni [ruiyu.ni@intel.com] 发送时间: 2018年5月25日 4:02 收件人: edk2-devel@lists.01.org 主题: [edk2] [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Per PCIE spec, Memory Write and Invalidate is hardwired to 0b so PciBus driver shouldn't write 1b to it. Patch #1 cleans up some unnecessary code. Ruiyu Ni (2): MdeModulePkg/PciBus: Remove unnecessary PCIE detection MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c | 17 +---------------- MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 10 ++++++---- 2 files changed, 7 insertions(+), 20 deletions(-) -- 2.16.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-05-28 4:47 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-05-25 10:02 [PATCH 0/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni 2018-05-25 10:02 ` [PATCH 1/2] MdeModulePkg/PciBus: Remove unnecessary PCIE detection Ruiyu Ni 2018-05-25 10:02 ` [PATCH 2/2] MdeModulePkg/PciBus: Do not enable MemWriteAndInvalidate bit for PCIE Ruiyu Ni 2018-05-28 2:33 ` Chiu, Chasel 2018-05-28 4:47 ` 答复: [PATCH 0/2] " Zeng, Star
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox