Re: [edk2-devel] [edk2-platforms: PATCH 07/14] Marvell/Armada7k8k: Implement PciHostBridgeLib
On Thu, 9 May 2019 at 11:54, Marcin Wojtas wrote: > > Add an implementation of the PciHostBridgeLib glue library that > describes the PCIe RC on this SoC so that the generic PCI host bridge > driver can attach to it. > > This includes a constructor which performs the SoC specific init and > training sequences. > > This patch is based on work of Ard Biesheuvel > and Jing Hua / > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Marcin Wojtas > --- > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > | 52 +++ > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > | 95 ++ > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > | 244 +++ > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > | 330 > 4 files changed, 721 insertions(+) > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > > diff --git > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > new file mode 100644 > index 000..e46f71d > --- /dev/null > +++ > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > @@ -0,0 +1,52 @@ > +## @file > +# PCI Host Bridge Library instance for Marvell Armada 7k/8k SOC > +# > +# Copyright (c) 2017, Linaro Ltd. All rights reserved. > +# Copyright (c) 2019 Marvell International Ltd. 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. > +# > +# > +## > + > +[Defines] > + INF_VERSION= 0x0001001B > + BASE_NAME = Armada7k8kPciHostBridgeLib > + FILE_GUID = 7f989c9d-02a0-4348-8aeb-ab2e1566fb18 > + MODULE_TYPE= DXE_DRIVER > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = PciHostBridgeLib|DXE_DRIVER > + CONSTRUCTOR= Armada7k8kPciHostBridgeLibConstructor > + > +[Sources] > + PciHostBridgeLib.c > + PciHostBridgeLibConstructor.c > + > +[Packages] > + ArmPkg/ArmPkg.dec > + EmbeddedPkg/EmbeddedPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + Silicon/Marvell/Marvell.dec > + > +[LibraryClasses] > + ArmLib > + ArmadaSoCDescLib > + DebugLib > + DevicePathLib > + MemoryAllocationLib > + MvGpioLib > + UefiBootServicesTableLib > + > +[Protocols] > + gEmbeddedGpioProtocolGuid > + gMarvellBoardDescProtocolGuid > + > +[Depex] > + gMarvellPlatformInitCompleteProtocolGuid > diff --git > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > new file mode 100644 > index 000..ff9d919 > --- /dev/null > +++ > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > @@ -0,0 +1,95 @@ > +/** @file > + PCI Host Bridge Library instance for Marvell 70x0/80x0 > + > + Copyright (c) 2017, Linaro Ltd. All rights reserved. > + Copyright (c) 2019 Marvell International Ltd. 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 __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ > +#define __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ > + > +#define IATU_VIEWPORT_OFF 0x900 > +#define IATU_VIEWPORT_INBOUND BIT31 > +#define IATU_VIEWPORT_OUTBOUND 0 > +#define IATU_VIEWPORT_REGION_INDEX(Idx) ((Idx) & 7) > + > +#define IATU_REGION_CTRL_1_OFF_OUTBOUND_0 0x904
Re: [edk2-devel] [edk2-platforms: PATCH 07/14] Marvell/Armada7k8k: Implement PciHostBridgeLib
Hi Leif, pt., 10 maj 2019 o 17:50 Leif Lindholm napisaĆ(a): > > On Thu, May 09, 2019 at 11:53:35AM +0200, Marcin Wojtas wrote: > > Add an implementation of the PciHostBridgeLib glue library that > > describes the PCIe RC on this SoC so that the generic PCI host bridge > > driver can attach to it. > > > > This includes a constructor which performs the SoC specific init and > > training sequences. > > > > This patch is based on work of Ard Biesheuvel > > and Jing Hua / > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Marcin Wojtas > > --- > > > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > | 52 +++ > > > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > | 95 ++ > > Since you so helpfully gave me a link to your branch, I can tell that > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > has incorrect line endings. If you could address for v2, that would be > most appreciated. > > > > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > > | 244 +++ > > > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > > | 330 > > 4 files changed, 721 insertions(+) > > create mode 100644 > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > create mode 100644 > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > create mode 100644 > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > > create mode 100644 > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > > > > diff --git > > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > new file mode 100644 > > index 000..e46f71d > > --- /dev/null > > +++ > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > @@ -0,0 +1,52 @@ > > +## @file > > +# PCI Host Bridge Library instance for Marvell Armada 7k/8k SOC > > +# > > +# Copyright (c) 2017, Linaro Ltd. All rights reserved. > > +# Copyright (c) 2019 Marvell International Ltd. 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. > > +# > > +# > > +## > > + > > +[Defines] > > + INF_VERSION= 0x0001001B > > + BASE_NAME = Armada7k8kPciHostBridgeLib > > + FILE_GUID = 7f989c9d-02a0-4348-8aeb-ab2e1566fb18 > > + MODULE_TYPE= DXE_DRIVER > > + VERSION_STRING = 1.0 > > + LIBRARY_CLASS = PciHostBridgeLib|DXE_DRIVER > > + CONSTRUCTOR= Armada7k8kPciHostBridgeLibConstructor > > + > > +[Sources] > > + PciHostBridgeLib.c > > + PciHostBridgeLibConstructor.c > > + > > +[Packages] > > + ArmPkg/ArmPkg.dec > > + EmbeddedPkg/EmbeddedPkg.dec > > + MdeModulePkg/MdeModulePkg.dec > > + MdePkg/MdePkg.dec > > + Silicon/Marvell/Marvell.dec > > + > > +[LibraryClasses] > > + ArmLib > > + ArmadaSoCDescLib > > + DebugLib > > + DevicePathLib > > + MemoryAllocationLib > > + MvGpioLib > > + UefiBootServicesTableLib > > + > > +[Protocols] > > + gEmbeddedGpioProtocolGuid > > + gMarvellBoardDescProtocolGuid > > + > > +[Depex] > > + gMarvellPlatformInitCompleteProtocolGuid > > diff --git > > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > new file mode 100644 > > index 000..ff9d919 > > --- /dev/null > > +++ > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > @@ -0,0 +1,95 @@ > > +/** @file > > + PCI Host Bridge Library instance for Marvell 70x0/80x0 > > + > > + Copyright (c) 2017, Linaro Ltd. All rights reserved. > > + Copyright (c) 2019 Marvell International Ltd. 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
Re: [edk2-devel] [edk2-platforms: PATCH 07/14] Marvell/Armada7k8k: Implement PciHostBridgeLib
On Thu, May 09, 2019 at 11:53:35AM +0200, Marcin Wojtas wrote: > Add an implementation of the PciHostBridgeLib glue library that > describes the PCIe RC on this SoC so that the generic PCI host bridge > driver can attach to it. > > This includes a constructor which performs the SoC specific init and > training sequences. > > This patch is based on work of Ard Biesheuvel > and Jing Hua / > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Marcin Wojtas > --- > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > | 52 +++ > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > | 95 ++ Since you so helpfully gave me a link to your branch, I can tell that Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h has incorrect line endings. If you could address for v2, that would be most appreciated. > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > | 244 +++ > > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > | 330 > 4 files changed, 721 insertions(+) > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.c > create mode 100644 > Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.c > > diff --git > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > new file mode 100644 > index 000..e46f71d > --- /dev/null > +++ > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLib.inf > @@ -0,0 +1,52 @@ > +## @file > +# PCI Host Bridge Library instance for Marvell Armada 7k/8k SOC > +# > +# Copyright (c) 2017, Linaro Ltd. All rights reserved. > +# Copyright (c) 2019 Marvell International Ltd. 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. > +# > +# > +## > + > +[Defines] > + INF_VERSION= 0x0001001B > + BASE_NAME = Armada7k8kPciHostBridgeLib > + FILE_GUID = 7f989c9d-02a0-4348-8aeb-ab2e1566fb18 > + MODULE_TYPE= DXE_DRIVER > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = PciHostBridgeLib|DXE_DRIVER > + CONSTRUCTOR= Armada7k8kPciHostBridgeLibConstructor > + > +[Sources] > + PciHostBridgeLib.c > + PciHostBridgeLibConstructor.c > + > +[Packages] > + ArmPkg/ArmPkg.dec > + EmbeddedPkg/EmbeddedPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + Silicon/Marvell/Marvell.dec > + > +[LibraryClasses] > + ArmLib > + ArmadaSoCDescLib > + DebugLib > + DevicePathLib > + MemoryAllocationLib > + MvGpioLib > + UefiBootServicesTableLib > + > +[Protocols] > + gEmbeddedGpioProtocolGuid > + gMarvellBoardDescProtocolGuid > + > +[Depex] > + gMarvellPlatformInitCompleteProtocolGuid > diff --git > a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > new file mode 100644 > index 000..ff9d919 > --- /dev/null > +++ > b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kPciHostBridgeLib/PciHostBridgeLibConstructor.h > @@ -0,0 +1,95 @@ > +/** @file > + PCI Host Bridge Library instance for Marvell 70x0/80x0 > + > + Copyright (c) 2017, Linaro Ltd. All rights reserved. > + Copyright (c) 2019 Marvell International Ltd. 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 __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ > +#define __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ > + > +#define IATU_VIEWPORT_OFF 0x900 > +#define