> -----Original Message-----
> From: Xiaowei Bao <xiaowei....@nxp.com>
> Sent: 2020年3月22日 19:13
> To: M.h. Lian <minghuan.l...@nxp.com>; Z.q. Hou
> <zhiqiang....@nxp.com>; Mingkai Hu <mingkai...@nxp.com>;
> bmeng...@gmail.com; yamada.masah...@socionext.com;
> u-boot@lists.denx.de
> Cc: Xiaowei Bao <xiaowei....@nxp.com>
> Subject: [PATCH 8/9] pci: layerscaple: Modify the ls_pcie_dump_atu function
> 
> Modify the ls_pcie_dump_atu function, make it can print the INBOUND
> windows registers.
> 
> Signed-off-by: Xiaowei Bao <xiaowei....@nxp.com>
> ---
>  drivers/pci/pcie_layerscape.c    | 25 +++++++++++++------------
>  drivers/pci/pcie_layerscape.h    |  2 +-
>  drivers/pci/pcie_layerscape_ep.c |  3 +++
> drivers/pci/pcie_layerscape_rc.c |  2 +-
>  4 files changed, 18 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/pci/pcie_layerscape.c b/drivers/pci/pcie_layerscape.c
> index c7a96ed..4015a0d 100644
> --- a/drivers/pci/pcie_layerscape.c
> +++ b/drivers/pci/pcie_layerscape.c
> @@ -117,24 +117,25 @@ void ls_pcie_atu_inbound_set(struct ls_pcie *pcie,
> u32 pf, u32 vf_flag,
>                  PCIE_ATU_BAR_NUM(bar), PCIE_ATU_CR2);  }
> 
> -void ls_pcie_dump_atu(struct ls_pcie *pcie)
> +void ls_pcie_dump_atu(struct ls_pcie *pcie, u32 win_num, u32 type)
>  {
> -     int i;
> +     int win_idx;
> 
> -     for (i = 0; i < PCIE_ATU_REGION_NUM; i++) {
> -             dbi_writel(pcie, PCIE_ATU_REGION_OUTBOUND | i,
> -                        PCIE_ATU_VIEWPORT);
> -             debug("iATU%d:\n", i);
> +     for (win_idx = 0; win_idx < win_num; win_idx++) {
> +             dbi_writel(pcie, type | win_idx, PCIE_ATU_VIEWPORT);
> +             debug("iATU%d:\n", win_idx);
>               debug("\tLOWER PHYS 0x%08x\n",
>                     dbi_readl(pcie, PCIE_ATU_LOWER_BASE));
>               debug("\tUPPER PHYS 0x%08x\n",
>                     dbi_readl(pcie, PCIE_ATU_UPPER_BASE));
> -             debug("\tLOWER BUS  0x%08x\n",
> -                   dbi_readl(pcie, PCIE_ATU_LOWER_TARGET));
> -             debug("\tUPPER BUS  0x%08x\n",
> -                   dbi_readl(pcie, PCIE_ATU_UPPER_TARGET));
> -             debug("\tLIMIT      0x%08x\n",
> -                   dbi_readl(pcie, PCIE_ATU_LIMIT));
> +             if (type == PCIE_ATU_REGION_OUTBOUND) {
> +                     debug("\tLOWER BUS  0x%08x\n",
> +                           dbi_readl(pcie, PCIE_ATU_LOWER_TARGET));
> +                     debug("\tUPPER BUS  0x%08x\n",
> +                           dbi_readl(pcie, PCIE_ATU_UPPER_TARGET));
> +                     debug("\tLIMIT      0x%08x\n",
> +                           dbi_readl(pcie, PCIE_ATU_LIMIT));
> +             }
>               debug("\tCR1        0x%08x\n",
>                     dbi_readl(pcie, PCIE_ATU_CR1));
>               debug("\tCR2        0x%08x\n",
> diff --git a/drivers/pci/pcie_layerscape.h b/drivers/pci/pcie_layerscape.h
> index 26d0177..5f5c51d 100644
> --- a/drivers/pci/pcie_layerscape.h
> +++ b/drivers/pci/pcie_layerscape.h
> @@ -185,7 +185,7 @@ void ls_pcie_atu_outbound_set(struct ls_pcie *pcie,
> int idx, int type,
>                             u64 phys, u64 bus_addr, u64 size);  void
> ls_pcie_atu_inbound_set(struct ls_pcie *pcie, u32 pf, u32 vf_flag,
>                            int type, int idx, int bar, u64 phys); -void
> ls_pcie_dump_atu(struct ls_pcie *pcie);
> +void ls_pcie_dump_atu(struct ls_pcie *pcie, u32 win_num, u32 type);
>  int ls_pcie_link_up(struct ls_pcie *pcie);  void ls_pcie_dbi_ro_wr_en(struct
> ls_pcie *pcie);  void ls_pcie_dbi_ro_wr_dis(struct ls_pcie *pcie); diff --git
> a/drivers/pci/pcie_layerscape_ep.c b/drivers/pci/pcie_layerscape_ep.c
> index 67ce36c..ebf69ee 100644
> --- a/drivers/pci/pcie_layerscape_ep.c
> +++ b/drivers/pci/pcie_layerscape_ep.c
> @@ -226,6 +226,9 @@ static void ls_pcie_setup_ep(struct ls_pcie_ep
> *pcie_ep)
>               ls_pcie_ep_setup_atu(pcie_ep, 0);
>       }
> 
> +     ls_pcie_dump_atu(pcie, PCIE_ATU_REGION_NUM_SRIOV,
> +                      PCIE_ATU_REGION_INBOUND);
> +
>       ls_pcie_ep_enable_cfg(pcie_ep);
>  }
> 
> diff --git a/drivers/pci/pcie_layerscape_rc.c
> b/drivers/pci/pcie_layerscape_rc.c
> index 927722d..b045159 100644
> --- a/drivers/pci/pcie_layerscape_rc.c
> +++ b/drivers/pci/pcie_layerscape_rc.c
> @@ -114,7 +114,7 @@ static void ls_pcie_setup_atu(struct ls_pcie_rc
> *pcie_rc)
>                                        pref->bus_start,
>                                        pref->size);
> 
> -     ls_pcie_dump_atu(pcie);
> +     ls_pcie_dump_atu(pcie, PCIE_ATU_REGION_NUM,
> PCIE_ATU_REGION_OUTBOUND);
>  }
> 
>  /* Return 0 if the address is valid, -errno if not valid */
> --
> 2.9.5
Reviewed-by: Hou Zhiqiang <zhiqiang....@nxp.com>

Reply via email to