[PATCH] PCI: dw-rockchip: Disable BAR 0 and BAR 1 for RC mode

Shawn Lin shawn.lin at rock-chips.com
Tue Jan 13 17:32:55 PST 2026


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?

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