Hi Joseph, On Thu, Aug 6, 2026 at 6:43 AM Joseph Guo <[email protected]> wrote:
> Hi Fabio, > > Thanks for the suggestion to make the U-Boot driver honor `linux,pci-domain = > <N>;` the way Linux does. > > I looked into implementing this, but I don't think it is the right fit for > U-Boot, for the following reasons: > > 1. `linux,pci-domain` and U-Boot bus numbering solve different problems. In > Linux, `linux,pci-domain` assigns a *PCI domain* (segment) number; it does > not control the order in which host bridges are probed or the Linux bus > numbers. U-Boot's driver model has no concept of PCI domains/segments — a PCI > controller is identified only by its DM sequence number, which doubles as the > root bus number. So there is no existing field to map `linux,pci-domain` > onto; honoring it would mean overloading the DM sequence number with domain > semantics. > > 2. Making U-Boot consume `linux,pci-domain` requires overriding the DM > sequence number in a non-obvious way. The DM sequence number is normally > assigned during the bind phase (from `/aliases`), and the only way to make a > controller pick up the domain value is to overwrite `dev->seq_` later in > `of_to_plat()`. This is fragile: it silently reinterprets a Linux-specific > property as a U-Boot core-behavior knob, it interacts with the `pci` alias > mechanism in ways that are easy to get wrong, and it changes the > enumeration/listing order for *every* PCI platform, not just i.MX95. The > regression surface (e.g. the `pci` command's bus-walk stopping at the first > link-down root complex) is larger than the problem being solved. > > 3. The pci aliases are the documented [1], portable U-Boot mechanism for > exactly this. U-Boot already defines pci<N> aliases as the canonical way to > fix PCI controller sequence numbers (DM_UC_FLAG_SEQ_ALIAS), and other boards > use them for the same purpose. Keeping the aliases in the board -u-boot.dtsi > is consistent with U-Boot conventions and does not touch the upstream kernel > DTS. > > If you main concern is keeping the U-boot DTS sync with the upstream. I can > upstream the pci aliases. These aliases only influence U-Boot's DM sequence > numbering; Linux ignores `pci` aliases for PCI enumeration and bus numbering, > so adding them upstream is functionally a no-op for the kernel. > > [1] > https://docs.u-boot.org/en/latest/develop/driver-model/design.html#device-sequence-numbers Ok, I applied your patch as is.
