[PATCH u-boot-next 00/12] Common U-Boot macros for PCI Configuration Mechanism #1

Pali Rohár pali at kernel.org
Fri Dec 17 18:35:18 CET 2021


Hello! Could you look and review at this patch series?

On Friday 26 November 2021 11:42:40 Pali Rohár wrote:
> This patch series add new U-Boot macros for composing Config Address for
> PCI Configuration Mechanism #1 as defined in PCI Local Bus Specification,
> including extended variant (which do not have any formal specification)
> and then use these new macros (PCI_CONF1_ADDRESS and PCI_CONF1_EXT_ADDRESS)
> in all PCI drivers that use Config Address according to PCI Configuration
> Mechanism #1.
> 
> PCI Configuration Mechanism #1 was originally specified for x86 platforms
> and it is still supported on x86 together with PCIe ECAM. Nowadays lot of
> non-ECAM-compliant ARM PCIe controllers use only extended variant of this
> address construction and some of them requires cleared Enable bit. Extended
> variant is also supported by x86 AMD Barcelona (and new) CPUs, but U-Boot
> code does not provide this support yet.
> 
> Note that it exists also PCI Configuration Mechanism #2, but this one was
> removed from PCI Local Bus Specification revision 3.0 and seems that it is
> not used by any PCI driver in U-Boot. So I have not added macros for this
> mechanism in this patch series.
> 
> Because lot of hardware still use this (rather old) mechanism, relevant
> U-Boot PCI and PCIe drivers have own ad-hoc code address construction,
> which is repeated and written in different ways.
> 
> This patch series is code cleanup of these PCIe drivers to use common
> U-Boot macros for PCI Configuration Mechanism #1.
> 
> The last change is fixing construction of Config Address in PCI driver
> sh7751. Construction with this change matches Linux kernel code and also
> U-Boot code prior commit mentioned in commit message.
> 
> I have tested this patch series only for PCI mvebu driver on A385 board and
> it is working fine. So Please properly review all other changes. Ideally
> test them.
> 
> I have run CI tests with these changes on github and everything passed:
> https://github.com/u-boot/u-boot/pull/101
> 
> Please let me know what do you think about this change.
> 
> Pali Rohár (12):
>   pci: Add standard PCI Config Address macros
>   pci: gt64120: Use PCI_CONF1_ADDRESS() macro
>   pci: mpc85xx: Use PCI_CONF1_EXT_ADDRESS() macro
>   pci: msc01: Use PCI_CONF1_ADDRESS() macro
>   pci: mvebu: Use PCI_CONF1_EXT_ADDRESS() macro
>   pci: tegra: Use PCI_CONF1_EXT_ADDRESS() macro
>   pci: fsl: Use PCI_CONF1_EXT_ADDRESS() macro
>   pci: mediatek: Use PCI_CONF1_EXT_ADDRESS() macro
>   pci: sh7780: Use PCI_CONF1_ADDRESS() macro
>   x86: pci: Use PCI_CONF1_ADDRESS() macro
>   m68k: mcf5445x: pci: Use PCI_CONF1_ADDRESS() macro
>   pci: sh7751: Fix access to config space via PCI_CONF1_ADDRESS() macro
> 
>  arch/m68k/cpu/mcf5445x/pci.c |  7 +++---
>  arch/x86/cpu/pci.c           |  4 ++--
>  drivers/pci/pci_gt64120.c    |  7 ++----
>  drivers/pci/pci_mpc85xx.c    |  4 ++--
>  drivers/pci/pci_msc01.c      |  7 ++----
>  drivers/pci/pci_mvebu.c      | 17 ++++----------
>  drivers/pci/pci_sh7751.c     | 29 ++---------------------
>  drivers/pci/pci_sh7780.c     |  8 +++----
>  drivers/pci/pci_tegra.c      | 11 +++------
>  drivers/pci/pcie_fsl.c       | 10 ++++----
>  drivers/pci/pcie_mediatek.c  | 17 +++++++-------
>  include/gt64120.h            | 12 ----------
>  include/msc01.h              |  9 --------
>  include/pci.h                | 45 ++++++++++++++++++++++++++++++++++++
>  14 files changed, 83 insertions(+), 104 deletions(-)
> 
> -- 
> 2.20.1
> 


More information about the U-Boot mailing list