<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 4/28/2015 1:22 AM, Berth-Olof Bergman wrote:<br>
    <blockquote
      cite="mid:D2C763B3-40F6-4742-A061-2D323B16BEC3@winzenttech.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      That’s truly amazing! So the FSP + coreboot part only takes a
      quarter of a second? Intel FSP must be on steroids!!
      <div class=""><br class="">
      </div>
      <div class="">The total boot time is the sum of components time,
        so if you fix that problem you will have close to a quarter of
        second boot time!! Can we see a video clip of that boot?</div>
    </blockquote>
    <br>
    well, that doesn't count the execution of the payload, which in this
    case also includes the execution of the VGA option rom, so it's
    still close to 2.5s from the time the power button is pressed until
    the system actually boots.  Also, Panther doesn't use FSP.<br>
    <br>
    <blockquote
      cite="mid:D2C763B3-40F6-4742-A061-2D323B16BEC3@winzenttech.com"
      type="cite">
      <div class=""><br class="">
        <div>
          <blockquote type="cite" class="">
            <div class="">27 apr 2015 kl. 22:42 skrev Duncan Laurie <<a
                moz-do-not-send="true"
                href="mailto:dlaurie@chromium.org" class=""><a class="moz-txt-link-abbreviated" href="mailto:dlaurie@chromium.org">dlaurie@chromium.org</a></a>>:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div dir="ltr" class="">
                <div class="gmail_extra">
                  <div class="gmail_quote">On Mon, Apr 27, 2015 at 12:29
                    PM, Matt DeVillier <span dir="ltr" class=""><<a
                        moz-do-not-send="true"
                        href="mailto:matt.devillier@gmail.com"
                        target="_blank" class=""><a class="moz-txt-link-abbreviated" href="mailto:matt.devillier@gmail.com">matt.devillier@gmail.com</a></a>></span>
                    wrote:<br class="">
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000" class="">
                        <div class="">
                          <div class="h5"> On 4/26/2015 3:03 AM, Paul
                            Menzel wrote:<br class="">
                            <blockquote type="cite" class="">
                              <pre class="">Dear coreboot folks,


looking at the time stamps of the Intel Haswell device Google Panther,
which Matt DeVillier thankfully uploaded to the board status repository
[1], it looks odd that it took around a quarter of a second, from after
the SeaBIOS payload was decompressed to starting the payload. This is
almost half of the whole boot time.

        […]
          90:load payload                                      233,302 (216)
          15:starting LZMA decompress (ignore for x86)         233,415 (113)
          16:finished LZMA decompress (ignore for x86)         250,327 (16,912)
          99:selfboot jump                                     493,712 (243,384)

Thanks to Aaron Durbin’s analysis of the code path, the finalize in line
138 of `src/southbridge/intel/lynxpoint/smi.c` calls
`intel_me_mbp_clear()` in line 589 of
`src/southbridge/intel/lynxpoint/me_9.x.c`.

        $ more src/southbridge/intel/lynxpoint/me_9.x.c # line 589
        […]
        #if CONFIG_ME_MBP_CLEAR_LATE
                /* Wait for ME MBP Cleared indicator */
                intel_me_mbp_clear(PCH_ME_DEV);
        #endif
        […]

The issue is even described in the Kconfig option description of
`ME_MBP_CLEAR_LATE` and the commit message of commit 3d299c4b (lynxpoint
me: add support for mbp clear wait in finalize step) [2] adding this
option.

        $ more src/southbridge/intel/lynxpoint/Kconfig
        […]
        config ME_MBP_CLEAR_LATE
                bool "Defer wait for ME MBP Cleared"
                default y
                help
                  If you set this option to y, the Management Engine driver
                  will defer waiting for the MBP Cleared indicator until the
                  finalize step.  This can speed up boot time if the ME takes
                  a long time to indicate this status.
        […]

I guess there is no way to get fixed ME BLOBs from Intel. I heard the ME
BLOB has been fixed for newer Intel devices.</pre>
                            </blockquote>
                            <br class="">
                          </div>
                        </div>
                        The ME firmware that ships with Panther is
                        9.5.13.1706.  I've also tested 9.5.41.1904 (what
                        I'm using in the firmware referenced above) and
                        9.5.45.1922 (which I just came across today) -
                        all display the same behavior in terms of time
                        needed to report MBP cleared.  The 9.6 series ME
                        firmware is also for Haswell/Lynxpoint, but I'm
                        unsure if it's compatible with systems shipped
                        with ME 9.5.  Since I have an external
                        programmer, I suppose I could always give it a
                        try :)  The 10.0 series ME firmware is for
                        Broadwell and is more likely to contain the fix,
                        but less likely to be compatible with
                        Haswell/LP.<span class=""><font class=""
                            color="#888888"><br class="">
                            <br class="">
                            -Matt</font></span><span class=""><br
                            class="">
                          <br class="">
                        </span></div>
                    </blockquote>
                    <div class=""><br class="">
                    </div>
                    <div class=""><br class="">
                    </div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Unfortunately the wait for ME MBP to
                      clear is even worse on Broadwell, but with ME10
                      there is a (gross) boot flow to avoid it thanks to
                      some new commands that do not need
                      acknowledgement:</div>
                    <div class=""><br class="">
                    </div>
                    <div class=""><a moz-do-not-send="true"
href="http://review.coreboot.org/gitweb?p=coreboot.git;a=commit;h=c99681f4f23ddacd64fddbedf060f6443d008090"
                        class="">http://review.coreboot.org/gitweb?p=coreboot.git;a=commit;h=c99681f4f23ddacd64fddbedf060f6443d008090</a><br
                        class="">
                    </div>
                    <div class=""><br class="">
                    </div>
                    <div class="">-duncan</div>
                    <div class=""> </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000" class=""><span
                          class="">
                          <blockquote type="cite" class="">
                            <pre class="">Thanks,

Paul


[1] <a moz-do-not-send="true" href="http://review.coreboot.org/gitweb?p=board-status.git;a=commitdiff;h=3926f95b143b74c0762516df0bdf250c1dd8ba32#patch4" target="_blank" class="">http://review.coreboot.org/gitweb?p=board-status.git;a=commitdiff;h=3926f95b143b74c0762516df0bdf250c1dd8ba32#patch4</a>
[2] <a moz-do-not-send="true" href="http://review.coreboot.org/4375" target="_blank" class="">http://review.coreboot.org/4375</a>
</pre>
                            <br class="">
                            <fieldset class=""></fieldset>
                            <br class="">
                          </blockquote>
                          <br class="">
                        </span></div>
                      <br class="">
                      --<br class="">
                      coreboot mailing list: <a moz-do-not-send="true"
                        href="mailto:coreboot@coreboot.org" class="">coreboot@coreboot.org</a><br
                        class="">
                      <a moz-do-not-send="true"
                        href="http://www.coreboot.org/mailman/listinfo/coreboot"
                        target="_blank" class="">http://www.coreboot.org/mailman/listinfo/coreboot</a><br
                        class="">
                    </blockquote>
                  </div>
                  <br class="">
                </div>
              </div>
              -- <br class="">
              coreboot mailing list: <a moz-do-not-send="true"
                href="mailto:coreboot@coreboot.org" class="">coreboot@coreboot.org</a><br
                class="">
              <a moz-do-not-send="true"
                href="http://www.coreboot.org/mailman/listinfo/coreboot"
                class="">http://www.coreboot.org/mailman/listinfo/coreboot</a></div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
    <br>
  </body>
</html>