Re: [PATCH 1/2] dt-bindings: PCI: Add linux,pci-domain-reuse property
From: Krzysztof Kozlowski
Date: Thu Nov 05 2026 - 02:48:29 EST
On 05/11/2026 08:35, Cui Chao wrote:
>
> On 11/4/2026 3:23 PM, Krzysztof Kozlowski wrote:
>> On 03/11/2026 03:57, Cui Chao wrote:
>>> On 11/2/2026 6:00 PM, Krzysztof Kozlowski wrote:
>>>> On 02/11/2026 10:51, Cui Chao wrote:
>>>>> Add a new optional boolean property 'linux,pci-domain-reuse' for PCI
>>>>> host bridges.
>>>>>
>>>>> By default, the 'linux,pci-domain' property must be unique across all
>>>>> host bridges. This property allows a host bridge to explicitly opt-out
>>>>> of this uniqueness check, permitting multiple host bridges to reuse the
>>>>> same software domain number.
>>>> Why isn't this deducible from the compatibles?
>>> Hi Krzysztof,
>>>
>>> Thanks.
>>>
>>> The compatible cannot express this. "pci-host-ecam-generic" only
>> You have vendor specific compatibles, no?
>
>
> I used a tool to assist me earlier. I will now discuss directly.
> The driver used by our hardware is not a vendor specific driver but
> the generic "pci-host-generic" driver, so previously the compatible
> in our DTS was only "pci-host-ecam-generic", with no vendor specific
> compatibles.
Why aren't you using vendor specific compatible?
>
>>> describes how configuration space is accessed; it does not describe
>>> whether two host bridge instances may share one Linux PCI domain.
>>>
>>> The same compatible is used on systems where every host bridge must
>>> have a unique domain and on this system where two RCs intentionally
>>> share a domain with disjoint bus ranges and resource windows.
>>> Comparing the compatible strings of the nodes therefore cannot
>>> distinguish our case.
>> OK, so let's look at your DTS - where is it posted for upstream?
>
>
> The DTS has not been uploaded upstream. Below is our DTS (with
So do we need the property in upstream in such case?
> irrelevant information such as interrupts and IOMMU omitted). Both
> nodes use only "pci-host-ecam-generic", and their resources do not
> overlap, but the domain is the same.
>
> pcie0: pcie@80000000 {
> compatible = "pci-host-ecam-generic";
> device_type = "pci";
> #address-cells = <0x3>;
> #size-cells = <0x2>;
> #interrupt-cells = <0x1>;
> reg = <0x0 0x80000000 0x0 0x8000000>;
> linux,pci-domain = <0>;
> bus-range = <0x0 0x7f>;
> ranges = <0x1000000 0x0 0x100000 0x0 0x10000000 0x0 0x100000
> 0x2000000 0x0 0x20000000 0x0 0x20000000 0x0
> 0x10000000
> 0x43000000 0x200 0x0 0x200 0x0 0x100 0x0>;
> };
>
> pcie1: pcie@88000000 {
> compatible = "pci-host-ecam-generic";
> device_type = "pci";
> #address-cells = <0x3>;
> #size-cells = <0x2>;
> #interrupt-cells = <0x1>;
> reg = <0x0 0x88000000 0x0 0x8000000>;
> linux,pci-domain = <0>;
> bus-range = <0x80 0xff>;
> ranges = <0x1000000 0x0 0x200000 0x0 0x10100000 0x0 0x100000
> 0x2000000 0x0 0x30000000 0x0 0x30000000 0x0
> 0x10000000
> 0x43000000 0x300 0x0 0x300 0x0 0x100 0x0>;
> };
>
Anyway, I clearly see no usage of linux,pci-domain-reuse in above code,
so I think this closes the case.
Best regards,
Krzysztof