[U-Boot] [PATCH v3] PCIe:change the method to get the address of a requested capability in configuration space.
York Sun
yorksun at freescale.com
Fri Oct 11 00:42:46 CEST 2013
Qiang,
On 09/16/2013 02:27 AM, Zhao Qiang wrote:
> Previously, the address of a requested capability is define like that
> "#define PCI_DCR 0x78"
> But, the addresses of capabilities is different with regard to PCIe revs.
> So this method is not flexible.
>
> Now a function to get the address of a requested capability is added and used.
> It can get the address dynamically by capability ID.
> The step of this function:
> 1. Read Status register in PCIe configuration space to confirm that
> Capabilities List is valid.
> 2. Find the address of Capabilities Pointer Register.
> 3. Find the address of requested capability from the first capability.
>
> Signed-off-by: Zhao Qiang <B45475 at freescale.com>
> ---
> Changes for v2:
> -Put an variable into "#ifdef" and "#endif"
> Changes for v3:
> -Modify the patch description
>
>
> arch/powerpc/include/asm/fsl_pci.h | 13 +-------
> drivers/pci/fsl_pci_init.c | 44 +++++++++++++++++++-------
> drivers/pci/pci.c | 65 ++++++++++++++++++++++++++++++++++++++
> include/pci.h | 10 ++++++
> 4 files changed, 108 insertions(+), 24 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/fsl_pci.h b/arch/powerpc/include/asm/fsl_pci.h
> index 90b0a2f..6b12afa 100644
> --- a/arch/powerpc/include/asm/fsl_pci.h
> +++ b/arch/powerpc/include/asm/fsl_pci.h
> @@ -32,22 +32,11 @@
> /* Freescale-specific PCI config registers */
> #define FSL_PCI_PBFR 0x44
>
> -#ifdef CONFIG_SYS_FSL_PCI_VER_3_X
> +#ifndef CONFIG_SYS_FSL_PCI_VER_3_X
> /* Currently only the PCIe capability is used, so hardcode the offset.
> * if more capabilities need to be justified, the capability link method
> * should be applied here
> */
Does these comment still apply after you remove almost everything?
> -#define FSL_PCIE_CAP_ID 0x70
> -#define PCI_DCR 0x78 /* PCIe Device Control Register */
> -#define PCI_DSR 0x7a /* PCIe Device Status Register */
> -#define PCI_LSR 0x82 /* PCIe Link Status Register */
> -#define PCI_LCR 0x80 /* PCIe Link Control Register */
> -#else
> -#define FSL_PCIE_CAP_ID 0x4c
> -#define PCI_DCR 0x54 /* PCIe Device Control Register */
> -#define PCI_DSR 0x56 /* PCIe Device Status Register */
> -#define PCI_LSR 0x5e /* PCIe Link Status Register */
> -#define PCI_LCR 0x5c /* PCIe Link Control Register */
> #define FSL_PCIE_CFG_RDY 0x4b0
> #endif
> #define FSL_PCI_CFG_READY 1 /* Endpoint: allow inbound configuration */
What is the base of your patch? I don't see this line in either master
branch, or any of my branches. Can you rebase to master branch, or
mpc85xx/next branch?
York
More information about the U-Boot
mailing list