Hi,
On 24/07/2020 00:38, Stefano Stabellini wrote:
+ bridge->dt_node = dev;
+ bridge->sysdata = cfg;
+ bridge->ops = &ops->pci_ops;
+
+ if( !dt_property_read_u32(dev, "linux,pci-domain", &segment) )
+ {
+ printk(XENLOG_ERR "\"linux,pci-domain\" property in not available in
DT\n");
+ return -ENODEV;
+ }
+
+ bridge->segment = (u16)segment;
My understanding is that a Linux pci-domain doesn't correspond exactly
to a PCI segment. See for instance:
https://lists.gnu.org/archive/html/qemu-devel/2018-04/msg03885.html
Do we need to care about the difference? If we mean pci-domain here,
should we just call them as such instead of calling them "segments" in
Xen (if they are not segments)?
So we definitely need a segment number in hand because this is what the
admin will use to assign a PCI device to a guest.
The segment number is just a value defined by the software. So as long
as Linux and Xen agrees with the number, then we should be ok.
Looking at the code, I think Linux is using 'segment' as 'domain'. So
they should be interchangeably. I am not sure what other OS does though.
Cheers,
--
Julien Grall