Regarding my previous email please ignore the that device is being detected as Ethernet controller I have forced class change by making dev->class==0x020000, which also works. Which is also another option for possible a solution... On Thu, Apr 9, 2020 at 4:25 PM Luís Mendes <luis.p.mendes@xxxxxxxxx> wrote: > > Hi Bjorn, > > I've good news. I've found the culprit and it is a pretty simple > issue, however the good solution is not obvious to me. > Can you help in finding the best way to patch this issue? > > So first detailing the problem in file setup_bus.c there is this *if > condition* to ignore resources from classless devices and so > it is that this Google/Coral Edge TPU is a classless device with class 0xff: > > static void __dev_sort_resources(struct pci_dev *dev, struct list_head *head) > { > u16 class = dev->class >> 8; > > pci_info(dev, "%s\n", __func__); > /* Don't touch classless devices or host bridges or IOAPICs */ > if (class == PCI_CLASS_NOT_DEFINED || class == PCI_CLASS_BRIDGE_HOST) > return; > .... > > So the one possible trivial, non generic, attempt that works is to do: > static void __dev_sort_resources(struct pci_dev *dev, struct list_head *head) > { > u16 class = dev->class >> 8; > > pci_info(dev, "%s\n", __func__); > /* Don't touch classless devices or host bridges or IOAPICs */ > if ((class == PCI_CLASS_NOT_DEFINED && !(dev->vendor == 0x1ac1 && > dev->device==0x089a)) || class == PCI_CLASS_BRIDGE_HOST) > return; > .... > > What is your suggestion to make the solution generic? Create a > whitelist? Remove this verification? I have no idea... nothing sounds > good to me... > 01:00.0 Ethernet controller: Device 1ac1:089a (prog-if ff) > Subsystem: Device 1ac1:089a > Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- > ParErr+ Stepping- SERR+ FastB2B- DisINTx- > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- > <TAbort- <MAbort- >SERR- <PERR- INTx- > Interrupt: pin A routed to IRQ 0 > Region 0: Memory at d0100000 (64-bit, prefetchable) [disabled] [size=16K] > Region 2: Memory at d0000000 (64-bit, prefetchable) [disabled] [size=1M] > Capabilities: <access denied> > > > > Best regards. > Luís Mendes > > On Thu, Apr 9, 2020 at 12:05 AM Luís Mendes <luis.p.mendes@xxxxxxxxx> wrote: > > > > Hi Bjorn, > > > > I have successfully setup a JTAG remote debug environment. > > And I found this: > > First call to __pci_bus_assign_resources visits 11ab:6828 -> SLOT 1, > > which in turn calls __pci_bus_assign_resources which visits device > > 1ac1:089a on that slot and calls: