[PATCH] PCI: dw-rockchip: Disable BAR 0 and BAR 1 for RC mode
Manivannan Sadhasivam
mani at kernel.org
Tue Jan 13 23:38:18 PST 2026
On Wed, Jan 14, 2026 at 09:32:55AM +0800, Shawn Lin wrote:
> Hi Mani
>
> 在 2026/01/13 星期二 22:29, Manivannan Sadhasivam 写道:
> > On Wed, Dec 24, 2025 at 06:01:01PM +0800, Shawn Lin wrote:
> > > To slitence the useless bar allocation error log of RC when
> > > scanning bus, as RC doesn't need BARs at all.
> >
> > It is not RC, but Root Port. It is OK to disable the Root Port BARs if they
> > don't serve any purpose, but I think the issue is that the BAR size is bogus.
> > Both BARs report 1GiB of size, which I don't think it makes sense for a Root
> > Port.
> >
>
> Sure, it's the root port reports the bogus BARS size.
>
> > Can I reword the commit message as:
> >
> > Some Rockchip PCIe Root Port report bogus size of 1GiB for the BAR memories and
> > they cause below resource allocation issue during probe. Since there is no use
> > of the Root Port BAR memories, disable both of them.
> >
>
> Looks fine to me. Would you prefer a v2 or you could amend the commit
> msg while applying this patch?
>
Applied it after rewording the description and comment.
- Mani
> Thanks.
>
> > - Mani
> >
> > >
> > > pci 0000:00:00.0: [1d87:3588] type 01 class 0x060400 PCIe Root Port
> > > pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x3fffffff]
> > > pci 0000:00:00.0: BAR 1 [mem 0x00000000-0x3fffffff]
> > > pci 0000:00:00.0: ROM [mem 0x00000000-0x0000ffff pref]
> > > ...
> > > pci 0000:00:00.0: BAR 0 [mem 0x900000000-0x93fffffff]: assigned
> > > pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: can't assign; no space
> > > pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: failed to assign
> > > pci 0000:00:00.0: ROM [mem 0xf0200000-0xf020ffff pref]: assigned
> > > pci 0000:00:00.0: BAR 0 [mem 0x900000000-0x93fffffff]: releasing
> > > pci 0000:00:00.0: ROM [mem 0xf0200000-0xf020ffff pref]: releasing
> > > pci 0000:00:00.0: BAR 0 [mem 0x900000000-0x93fffffff]: assigned
> > > pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: can't assign; no space
> > > pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: failed to assign
> > >
> > > Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
> > > ---
> > >
> > > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
> > > index f8605fe..e421fa0 100644
> > > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
> > > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
> > > @@ -80,6 +80,8 @@
> > > #define PCIE_LINKUP_MASK GENMASK(17, 16)
> > > #define PCIE_LTSSM_STATUS_MASK GENMASK(5, 0)
> > > +#define PCIE_TYPE0_HDR_DBI2_OFFSET 0x100000
> > > +
> > > struct rockchip_pcie {
> > > struct dw_pcie pci;
> > > void __iomem *apb_base;
> > > @@ -292,6 +294,8 @@ static int rockchip_pcie_host_init(struct dw_pcie_rp *pp)
> > > if (irq < 0)
> > > return irq;
> > > + pci->dbi_base2 = pci->dbi_base + PCIE_TYPE0_HDR_DBI2_OFFSET;
> > > +
> > > ret = rockchip_pcie_init_irq_domain(rockchip);
> > > if (ret < 0)
> > > dev_err(dev, "failed to init irq domain\n");
> > > @@ -302,6 +306,10 @@ static int rockchip_pcie_host_init(struct dw_pcie_rp *pp)
> > > rockchip_pcie_configure_l1ss(pci);
> > > rockchip_pcie_enable_l0s(pci);
> > > + /* Disable RC's BAR0 and BAR1 */
> > > + dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_0, 0x0);
> > > + dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_1, 0x0);
> > > +
> > > return 0;
> > > }
> > > --
> > > 2.7.4
> > >
> > >
> >
>
>
--
மணிவண்ணன் சதாசிவம்
More information about the Linux-rockchip
mailing list