<div dir="ltr"><span style="font-size:12.8px">Hi Kyösti,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thank you for the hints. I have some comments below.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 13, 2018 at 8:59 PM, Kyösti Mälkki <span dir="ltr"><<a href="mailto:kyosti.malkki@gmail.com" target="_blank">kyosti.malkki@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi<br>
<span class="gmail-"><br>
On Sat, Jan 13, 2018 at 8:51 PM, Hal Martin <<a href="mailto:hal.martin@gmail.com">hal.martin@gmail.com</a>> wrote:<br>
> Hi all,<br>
><br>
> Is there any documentation around describing how coreboot scans for PCI<br>
> Express buses and devices?<br>
<br>
</span>Don't know of one. It's a recursive walk of the PCI tree, with the<br>
assigned bus number incremented for every detected PCI bridge. How<br>
vendor firmware does assignment may be different.<br>
<div><div class="gmail-h5"><br>
> I have an expansion module for the Intense PC I'd like to get working with<br>
> Coreboot. The expansion module adds 4 Intel Gigabit Ethernet interfaces<br>
> (82574L) via PCI Express 4 PCIe ports. All interfaces are on the same<br>
> physical FACE module.<br>
><br>
> In the vendor firmware, all four cards are properly detected:<br>
> 01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
> 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
> 06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
> 07:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
><br>
> But in coreboot, only the first two cards are detected:<br>
> 01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
> 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network<br>
> Connection<br>
><br>
> It seems from the coreboot uart output that coreboot isn't scanning PCIe<br>
> buses 6 & 7. Looking at pci_scan_bus in src/device/pci_device.c it seems<br>
> coreboot should be recursively scanning PCI bridges for any devices behind<br>
> them. The lspci output from the vendor firmware and coreboot lists the same<br>
> number of PCI bridges:<br>
> 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor<br>
> PCI Express Root Port (rev 09)<br>
> 00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor<br>
> PCI Express Root Port (rev 09)<br>
><br>
<br>
</div></div>Can you send 'lspci -tnv' output and 'sudo lspci -xxxx' from vendor<br>
firmware boot. Same for coreboot and perhaps the complete log. There<br>
are more PCIe root ports on device 0:1c.0, some of those you have<br>
marked disabled in devicetree.cb.<br></blockquote><div><br></div><div style="font-size:12.8px">Just to verify again, I enabled all the PCI Express devices in the devicetree.cb to see if the missing devices would appear. Unfortunately they didn't.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I am wondering though, all of these devices share the same PCIe clock signal, which goes through a differential clock driver which according to the manufacturer's documentation:</div><div style="font-size:12.8px">"The device distributes a differential input clock to four differential pairs of clock outputs either with or</div><div style="font-size:12.8px">without PLL. The clock outputs are controlled by input selection of several static control signals and Host</div><div style="font-size:12.8px">SMBus interface. The device oriented and designed for PCI Express applications."</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I used `i2cdetect -l` on the stock firmware and in coreboot, but nothing for SMBus appeared. I'm wondering if perhaps the issue is that this Pericom PI6C20400 clock driver is only providing clock to two of the devices and needs further configuration via SMBus?</div><div style="font-size:12.8px"><div>i2c-3<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus dpc                  <span style="white-space:pre-wrap">      </span>I2C adapter</div><div>i2c-1<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus vga                  <span style="white-space:pre-wrap">      </span>I2C adapter</div><div>i2c-6<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>DPDDC-C                         <span style="white-space:pre-wrap">   </span>I2C adapter</div><div>i2c-4<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus dpb                  <span style="white-space:pre-wrap">      </span>I2C adapter</div><div>i2c-2<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus panel                <span style="white-space:pre-wrap">       </span>I2C adapter</div><div>i2c-0<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus ssc                  <span style="white-space:pre-wrap">      </span>I2C adapter</div><div>i2c-7<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>DPDDC-D                         <span style="white-space:pre-wrap">   </span>I2C adapter</div><div>i2c-5<span style="white-space:pre-wrap"> </span>i2c       <span style="white-space:pre-wrap">  </span>i915 gmbus dpd                  <span style="white-space:pre-wrap">      </span>I2C adapter</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The information about the module I am using can be found on pages 36-40 of this document:</div><div style="font-size:12.8px"><a href="http://fit-pc.com/download/face-modules/documents/face-modules-hw-specifications.pdf" target="_blank">http://fit-pc.com/download/<wbr>face-modules/documents/face-<wbr>modules-hw-specifications.pdf</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The lspci output would make this email ~450KB, so I'll only link to them:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Vendor firmware lspci -tnv: <a href="https://watchmysys.com/files/3f6e6fb3-8231-4320-905b-94b11a88d09d/lspci-tnv_compulabfw.txt" target="_blank">https://watchmysys.com/<wbr>files/3f6e6fb3-8231-4320-905b-<wbr>94b11a88d09d/lspci-tnv_<wbr>compulabfw.txt</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Vendor firmware lspci -xxxx: <a href="https://watchmysys.com/files/3f6e6fb3-8231-4320-905b-94b11a88d09d/lspci-xxxx_compulabfw.txt" target="_blank">https://watchmysys.com/<wbr>files/3f6e6fb3-8231-4320-905b-<wbr>94b11a88d09d/lspci-xxxx_<wbr>compulabfw.txt</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">coreboot lspci -tnv: <a href="https://watchmysys.com/files/3f6e6fb3-8231-4320-905b-94b11a88d09d/lspci-tnv_coreboot.txt" target="_blank">https://watchmysys.com/<wbr>files/3f6e6fb3-8231-4320-905b-<wbr>94b11a88d09d/lspci-tnv_<wbr>coreboot.txt</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">coreboot lspci -xxxx: <a href="https://watchmysys.com/files/3f6e6fb3-8231-4320-905b-94b11a88d09d/lspci-xxxx_coreboot.txt" target="_blank">https://watchmysys.com/<wbr>files/3f6e6fb3-8231-4320-905b-<wbr>94b11a88d09d/lspci-xxxx_<wbr>coreboot.txt</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">coreboot cbmem log: <a href="https://watchmysys.com/files/3f6e6fb3-8231-4320-905b-94b11a88d09d/fm4lan_cbmem_console.txt" target="_blank">https://watchmysys.com/<wbr>files/3f6e6fb3-8231-4320-905b-<wbr>94b11a88d09d/fm4lan_cbmem_<wbr>console.txt</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks,</div><div><span style="font-size:12.8px">Hal</span></div><div><span style="font-size:12.8px"></span> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class="gmail-"><br>
> From the boot logs, it seems that coreboot stops scanning after PCI bus 05:<br>
<br>
</span>Default limit should be 63 for sandy/ivy and you could increase it to<br>
127 or 255.<br>
<span class="gmail-HOEnZb"><font color="#888888"><br>
Kyösti<br>
</font></span></blockquote></div><br></div></div>