<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic BayTrail PCIe problems (hangup) in FSP in Embedded Intel Atom® Processors</title>
    <link>https://community.intel.com/t5/Embedded-Intel-Atom-Processors/BayTrail-PCIe-problems-hangup-in-FSP/m-p/234447#M1740</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm facing a PCIe init related problem most likely caused in the &lt;/P&gt;&lt;P&gt;Intel FSP in our BayTrail U-Boot port (not coreboot!).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are currently struggling with an FSP PCIe related issue on our &lt;/P&gt;&lt;P&gt;BayTrail target. We are using U-Boot as the bootloader which also&lt;/P&gt;&lt;P&gt;uses the Intel FSP for HW setup (similar to coreboot etc). Currently&lt;/P&gt;&lt;P&gt;we have the BayTrail-Gold4 FSP version installed. Here we use an&lt;/P&gt;&lt;P&gt;PLX / Avago PCIe switch, connected to the PCIe root port of the CPU&lt;/P&gt;&lt;P&gt;with a PCIe x4 link. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the original board-vendor (congatec) BIOS always boots fine. Only&lt;/P&gt;&lt;P&gt;U-Boot using the Intel FSP shows the PCIe related hangup on some&lt;/P&gt;&lt;P&gt;board types - somehow depending on the PLX switch that is connected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Measuring has shown, that the PCIe clock is only stable for ~20ms &lt;/P&gt;&lt;P&gt;before data is transferred in the U-Boot case. In the BIOS case, &lt;/P&gt;&lt;P&gt;the time between clock stable and data is ~120ms. The PCIe spec &lt;/P&gt;&lt;P&gt;mentions, that  the clock should be asserted for more than 100ms. &lt;/P&gt;&lt;P&gt;So U-Boot is violating the spec here, which might be the root cause. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've now instrumented the U-Boot with many early debug and delay &lt;/P&gt;&lt;P&gt;code and found, that it hangs inside of the FSP code. I then &lt;/P&gt;&lt;P&gt;installed the DEBUG FSP blob and have found, that its stuck (as &lt;/P&gt;&lt;P&gt;expected) in the FSP PCIe init: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;.... &lt;/P&gt;&lt;P&gt;CommonUsbInit() - End &lt;/P&gt;&lt;P&gt;ConfigureUsb() End &lt;/P&gt;&lt;P&gt;PchInitRootPorts() Start &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nothing more. Here the board is completely stuck!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here the log from a different board, with stable and working &lt;/P&gt;&lt;P&gt;4 times x1 PCIe links (different board with 4 times x1 PCIe &lt;/P&gt;&lt;P&gt;links): &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... &lt;/P&gt;&lt;P&gt;CommonUsbInit() - End &lt;/P&gt;&lt;P&gt;ConfigureUsb() End &lt;/P&gt;&lt;P&gt;PchInitRootPorts() Start &lt;/P&gt;&lt;P&gt;Root Port 1 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 2 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 3 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 4 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;PchInitRootPorts() End &lt;/P&gt;&lt;P&gt;ConfigureSata() Start &lt;/P&gt;&lt;P&gt;... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any ideas, whats going on in the PCI init stuff in the &lt;/P&gt;&lt;P&gt;FSP? Or if and how we can influence this PCIe related configuration &lt;/P&gt;&lt;P&gt;to solve this hangup inside of the FSP? Has such a problem or a &lt;/P&gt;&lt;P&gt;similar one been noticed on some BayTrail platforms before?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW: &lt;/P&gt;&lt;P&gt;I've just found a workaround (more ugly hack) to solve this issue. &lt;/P&gt;&lt;P&gt;If I disable the link in the PCIe root port (PCI BDF 0,0x1c,0) &lt;/P&gt;&lt;P&gt;in the LCTL register before jumping into the FSP, the FSP &lt;/P&gt;&lt;P&gt;"survives" the init phase and jumps back into U-Boot. I can &lt;/P&gt;&lt;P&gt;then re-force the link before the U-Boot PCI scan is done &lt;/P&gt;&lt;P&gt;and then everything is fine. The PCIe PLX switch is detected &lt;/P&gt;&lt;P&gt;correctly and all downstream ports seem to be working as &lt;/P&gt;&lt;P&gt;expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Stefan&lt;/P&gt;</description>
    <pubDate>Fri, 03 Nov 2017 06:34:28 GMT</pubDate>
    <dc:creator>SRoes1</dc:creator>
    <dc:date>2017-11-03T06:34:28Z</dc:date>
    <item>
      <title>BayTrail PCIe problems (hangup) in FSP</title>
      <link>https://community.intel.com/t5/Embedded-Intel-Atom-Processors/BayTrail-PCIe-problems-hangup-in-FSP/m-p/234447#M1740</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm facing a PCIe init related problem most likely caused in the &lt;/P&gt;&lt;P&gt;Intel FSP in our BayTrail U-Boot port (not coreboot!).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are currently struggling with an FSP PCIe related issue on our &lt;/P&gt;&lt;P&gt;BayTrail target. We are using U-Boot as the bootloader which also&lt;/P&gt;&lt;P&gt;uses the Intel FSP for HW setup (similar to coreboot etc). Currently&lt;/P&gt;&lt;P&gt;we have the BayTrail-Gold4 FSP version installed. Here we use an&lt;/P&gt;&lt;P&gt;PLX / Avago PCIe switch, connected to the PCIe root port of the CPU&lt;/P&gt;&lt;P&gt;with a PCIe x4 link. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the original board-vendor (congatec) BIOS always boots fine. Only&lt;/P&gt;&lt;P&gt;U-Boot using the Intel FSP shows the PCIe related hangup on some&lt;/P&gt;&lt;P&gt;board types - somehow depending on the PLX switch that is connected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Measuring has shown, that the PCIe clock is only stable for ~20ms &lt;/P&gt;&lt;P&gt;before data is transferred in the U-Boot case. In the BIOS case, &lt;/P&gt;&lt;P&gt;the time between clock stable and data is ~120ms. The PCIe spec &lt;/P&gt;&lt;P&gt;mentions, that  the clock should be asserted for more than 100ms. &lt;/P&gt;&lt;P&gt;So U-Boot is violating the spec here, which might be the root cause. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've now instrumented the U-Boot with many early debug and delay &lt;/P&gt;&lt;P&gt;code and found, that it hangs inside of the FSP code. I then &lt;/P&gt;&lt;P&gt;installed the DEBUG FSP blob and have found, that its stuck (as &lt;/P&gt;&lt;P&gt;expected) in the FSP PCIe init: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;.... &lt;/P&gt;&lt;P&gt;CommonUsbInit() - End &lt;/P&gt;&lt;P&gt;ConfigureUsb() End &lt;/P&gt;&lt;P&gt;PchInitRootPorts() Start &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nothing more. Here the board is completely stuck!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here the log from a different board, with stable and working &lt;/P&gt;&lt;P&gt;4 times x1 PCIe links (different board with 4 times x1 PCIe &lt;/P&gt;&lt;P&gt;links): &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... &lt;/P&gt;&lt;P&gt;CommonUsbInit() - End &lt;/P&gt;&lt;P&gt;ConfigureUsb() End &lt;/P&gt;&lt;P&gt;PchInitRootPorts() Start &lt;/P&gt;&lt;P&gt;Root Port 1 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 2 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 3 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;Root Port 4 device enabled. RpEnableMask: 0xF &lt;/P&gt;&lt;P&gt;PchInitRootPorts() End &lt;/P&gt;&lt;P&gt;ConfigureSata() Start &lt;/P&gt;&lt;P&gt;... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any ideas, whats going on in the PCI init stuff in the &lt;/P&gt;&lt;P&gt;FSP? Or if and how we can influence this PCIe related configuration &lt;/P&gt;&lt;P&gt;to solve this hangup inside of the FSP? Has such a problem or a &lt;/P&gt;&lt;P&gt;similar one been noticed on some BayTrail platforms before?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW: &lt;/P&gt;&lt;P&gt;I've just found a workaround (more ugly hack) to solve this issue. &lt;/P&gt;&lt;P&gt;If I disable the link in the PCIe root port (PCI BDF 0,0x1c,0) &lt;/P&gt;&lt;P&gt;in the LCTL register before jumping into the FSP, the FSP &lt;/P&gt;&lt;P&gt;"survives" the init phase and jumps back into U-Boot. I can &lt;/P&gt;&lt;P&gt;then re-force the link before the U-Boot PCI scan is done &lt;/P&gt;&lt;P&gt;and then everything is fine. The PCIe PLX switch is detected &lt;/P&gt;&lt;P&gt;correctly and all downstream ports seem to be working as &lt;/P&gt;&lt;P&gt;expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Stefan&lt;/P&gt;</description>
      <pubDate>Fri, 03 Nov 2017 06:34:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Embedded-Intel-Atom-Processors/BayTrail-PCIe-problems-hangup-in-FSP/m-p/234447#M1740</guid>
      <dc:creator>SRoes1</dc:creator>
      <dc:date>2017-11-03T06:34:28Z</dc:date>
    </item>
    <item>
      <title>Re: BayTrail PCIe problems (hangup) in FSP</title>
      <link>https://community.intel.com/t5/Embedded-Intel-Atom-Processors/BayTrail-PCIe-problems-hangup-in-FSP/m-p/234448#M1741</link>
      <description>&lt;P&gt;Hello, stroese: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for contacting Intel Embedded Community.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to help you with your third-party design questions, you should address them as a reference to the channels listed at the &lt;A href="http://www.congatec.com/en/support.html"&gt;http://www.congatec.com/en/support.html&lt;/A&gt; congatec AG Technical Support website, because they have all the proper information related to the affected device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the other hand, your Intel(R) Firmware Support Package [Intel(R) FSP] consultations should be addressed by filling out the &lt;A href="https://firmware.intel.com/content/support"&gt;https://firmware.intel.com/content/support&lt;/A&gt; Intel(R) Architecture Firmware Resource Center Support form.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We hope that this information may help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Carlos_A.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Nov 2017 12:32:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Embedded-Intel-Atom-Processors/BayTrail-PCIe-problems-hangup-in-FSP/m-p/234448#M1741</guid>
      <dc:creator>CarlosAM_INTEL</dc:creator>
      <dc:date>2017-11-03T12:32:42Z</dc:date>
    </item>
  </channel>
</rss>

