Re: Hint HB6 - kernel doesn't see chips behind it.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jan 30, 2016 at 05:54:28PM +0000, Richard F wrote:
> On 29/01/2016 16:24, Bjorn Helgaas wrote:
> > On Thu, Jan 28, 2016 at 10:23:03AM +0000, Richard F wrote:
> > Your topology looks a little strange:
> > 
> >   00:1c.0 PCIe root port to [bus 01]    slot 0
> >   00:1c.1 PCIe root port to [bus 02]    slot 1
> >   00:1c.2 PCIe root port to [bus 03-05] slot 2
> >   03:00.0 PCI bridge to [bus 04-05] (Integrated Technology Express)
> >   04:01.0 PCI bridge to [bus 05] (Hint Corp)
> > 
> > 00:1c.2 is a normal PCIe Root Port, so the device it's connected to
> > *should* be a PCIe device, but 03:00.0 doesn't have a PCIe capability.
> > Is this an adapter card of some kind?
> 
> It's a motherboard bridge to get from PCIe to legacy PCI slots, quite a
> few motherboards use it I think. It's not an adapter I plugged in.

That makes sense.  It sounds like there are two conventional PCI
slots?  I think it's also a minor platform bug that the 00:1c.2 root
port advertises a slot.  1c.2 is connected to a system-integrated
device, i.e., 03:00.0, not a slot.  This might cause pciehp to claim
1c.2 when it shouldn't.  But that's unrelated to the current issue, of
course.

> I posted the output of DMESG with your patch (in 4.4.0) to the bugzilla
> https://bugzilla.kernel.org/show_bug.cgi?id=110851
> 
> It produced a fair bit of output but doesn't look like the card was
> recognised. At least modprobe'ing bttv with the right parameters didn't
> yield the right response.

I only added printks, so I didn't expect it to change the behavior.  I
just wanted to confirm that we are scanning the bus and device numbers
where we expect the bttv devices to be, and we are.  I think your bttv
card includes these devices:

  04:01.0 PCI-PCI bridge (Hint Corp)
  05:0c.0 bt878
  05:0c.1 bt878
  05:0d.0 bt878
  ...
  05:0f.1 bt878

For conventional PCI, I think the device number is determined by the
slot wiring.  That affects the device number of the Hint Corp bridge,
so if you move it between slots, it should change from device 01 to
something else.

The device and function numbers of the bt878 devices are determined by
wiring on the card, so those should be the same between machine A and
B.  These are 5- and 3-bit fields, respectively, so 0c.0 means we have
01100 000 encoded into an 8-bit devfn as 0110 0000 or 0x60.  When we
tried to read the vendor & device ID from 0c.0, we got no response
from the device:

  pci_bus 0000:05: pci_scan_slot 60
  pci_bus 0000:05: pci_scan_single_device 60
  pci_bus 0000:05: pci_scan_device 60
  pci_bus 0000:05: pci_bus_read_dev_vendor_id 60 0xffffffff

I'm out of ideas.  Other cards work in this slot; it's only the bttv
card that doesn't work.  So it seems like it must be something about
that card that's different.

Maybe somebody on the list will have more ideas?

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux