Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/44917 )
Change subject: soc/intel/tigerlake: Enable and use USB4 PCIe driver ......................................................................
Patch Set 14:
(1 comment)
https://review.coreboot.org/c/coreboot/+/44917/3/src/soc/intel/tigerlake/chi... File src/soc/intel/tigerlake/chipset.cb:
https://review.coreboot.org/c/coreboot/+/44917/3/src/soc/intel/tigerlake/chi... PS3, Line 8: chip drivers/intel/usb4/pcie : register "port_id" = "0" : use tbt_dma0 as usb4_port : device pci 07.0 alias tbt_pcie_rp0 off end : end
The driver will need to have pci ops and *_resource handlers for an attached pci device to get properly set up.
Are you referring to the driver that would handle the TBT RP device? I think if we don't have any chip driver associated with it in the device tree, then it would be handled by the generic PCI device driver? And hence the device ops provided by it?
This is for the device attached to the RP. I ran into this trying to set up the NVMe device this way for RTD3, it didn't do the basic PCI setup on the NVMe unless the chip under the RP had PCI ops.
Ah okay. That makes sense.
as long as the driver is set up for pci it should work even if the child is declared as generic in devicetree, but we should probably be clear what is attached to the root port and make this 'device pci 00.0 on end'
The child device would basically be a dummy/virtual one which would only be used for generating _DSD under the parent RP. Do we really want that to be a PCI device? All the actual PCI devices sitting behind the RP should be enumerated and initialized by the PCI bus scan under the RP, right?
Generic can work too as long as the driver itself provides PCI ops, but I just think we should be explicit since if something is discovered it will present as a PCI device.
But, is the device we are adding here really a PCI device? i.e. the child device is actually a dummy/virtual device. If PCI enumeration ends up finding an actual PCI device under the RP, would it be correct to associate it with drivers/intel/usb4/pcie? We are currently setting scan_bus as scan_generic_bus in drivers/intel/usb4/pcie which might not be correct for a PCI device especially if it turns out to be a bridge. Or am I thinking about this wrong? We can go ahead with the current change if you think that PCI device is the correct representation and revisit this later.