<p>Werner Zeh has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/21933">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">siemens/mc_bdx1: Add delay to wait for legacy devices<br><br>Like happend in commit efd0eb35af5e5620331d885d3140c734a6fc9098<br>(siemens/mc_apl1: Add delay to wait for legacy devices) add the<br>feature to mc_bdx1 as it uses the same legacy devices.<br><br>Change-Id: I355a53ce7aea70098d7bc08f24dc6a4e43d1d618<br>Signed-off-by: Werner Zeh <werner.zeh@siemens.com><br>---<br>M src/mainboard/siemens/mc_bdx1/mainboard.c<br>1 file changed, 30 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/33/21933/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/mainboard/siemens/mc_bdx1/mainboard.c b/src/mainboard/siemens/mc_bdx1/mainboard.c<br>index d4d84b5..ea525d4 100644<br>--- a/src/mainboard/siemens/mc_bdx1/mainboard.c<br>+++ b/src/mainboard/siemens/mc_bdx1/mainboard.c<br>@@ -35,6 +35,9 @@<br> #include <soc/pci_devs.h><br> #include <soc/irq.h><br> #include <soc/lpc.h><br>+#include <bootstate.h><br>+#include <timer.h><br>+#include <timestamp.h><br> <br> #define MAX_PATH_DEPTH                12<br> #define MAX_NUM_MAPPINGS   10<br>@@ -214,6 +217,33 @@<br>      return CB_ERR;<br> }<br> <br>+static void wait_for_legacy_dev(void *unused)<br>+{<br>+    uint32_t legacy_delay, us_since_boot;<br>+        struct stopwatch sw;<br>+<br>+      /* Open main hwinfo block. */<br>+        if (hwilib_find_blocks("hwinfo.hex") != CB_SUCCESS)<br>+                return;<br>+<br>+   /* Get legacy delay parameter from hwinfo. */<br>+        if (hwilib_get_field(LegacyDelay, (uint8_t *) &legacy_delay,<br>+                           sizeof(legacy_delay)) != sizeof(legacy_delay))<br>+         return;<br>+<br>+   us_since_boot = get_us_since_boot();<br>+ /* No need to wait if the time since boot is already long enough.*/<br>+  if (us_since_boot > legacy_delay)<br>+         return;<br>+      stopwatch_init_msecs_expire(&sw, (legacy_delay - us_since_boot) / 1000);<br>+ printk(BIOS_NOTICE, "Wait remaining %d of %d us for legacy devices...",<br>+                    legacy_delay - us_since_boot, legacy_delay);<br>+ stopwatch_wait_until_expired(&sw);<br>+       printk(BIOS_NOTICE, "done!\n");<br>+}<br>+<br>+BOOT_STATE_INIT_ENTRY(BS_DEV_ENUMERATE, BS_ON_ENTRY, wait_for_legacy_dev, NULL);<br>+<br> struct chip_operations mainboard_ops = {<br>     .enable_dev = mainboard_enable,<br>       .init = mainboard_init,<br></pre><p>To view, visit <a href="https://review.coreboot.org/21933">change 21933</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/21933"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I355a53ce7aea70098d7bc08f24dc6a4e43d1d618 </div>
<div style="display:none"> Gerrit-Change-Number: 21933 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Werner Zeh <werner.zeh@siemens.com> </div>