<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">For info I attached a screenshot of the
      driver loading. It was compiled with<br>
      DEBUG=efi_init,efi_snp,efi_pci,efi_driver_health,netdevice,sfc9000<br>
      <br>
      On 14/09/12 09:59, Alexandre Rames wrote:<br>
    </div>
    <blockquote cite="mid:5052F20C.70304@solarflare.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">Hello Daniel,<br>
        <br>
        <br>
        <br>
        On 13/09/12 14:48, Daniel Li wrote:<br>
      </div>
      <blockquote cite="mid:tencent_71F736237160EB45749F6506@qq.com"
        type="cite">
        <meta http-equiv="Content-Type" content="text/html;
          charset=ISO-8859-1">
        <div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; ">Hi Alexandre,</div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; ">Thanks for your quickly reply.Did you
            built a *.efi and detected device under uefi enviroment?Did
            you network boot succeed?</div>
        </div>
      </blockquote>
      <br>
      Yes. I can detect my pci device (UEFI 'pci' command), and load the
      driver. On a real UEFI machine I can successfully PXE boot.<br>
      <br>
      I am not sure if that makes a difference with your command I see
      in the screenshot, but I use a command like <br>
      fs0:\> load <driver name>.efidrv<br>
      to load the driver. Not a simple invocation of a *.efi file.<br>
      From what I mentioned in my previous email yours may be:<br>
      ipxe/src $ ls bin-x86_64-efi/*.efidrv<br>
      bin-x86_64-efi/82579lm.efidrv<br>
      Check the output of 'pci' in your UEFI shell (see previous email).<br>
      <br>
      <blockquote cite="mid:tencent_71F736237160EB45749F6506@qq.com"
        type="cite">
        <div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; ">I have debug this issue more than one
            week,but i can't find the root cause,my deubg information
            like following figure.</div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; ">The call flow is
            efipci_supported()->efipci_create()->OpenProtocol(),unfortunately,OpenProtocol

            return EFI_UNSUPPORTED error code and the log is "EFIPCI
            device 0x3dbf5398 is not a PCI device",I think ipxe can't
            enum the pci device.Could you tell me the right step or ut
            pass machine. I get the faile result after boot ipxe via
            uefi shell on Thinkpad T420 and VMare 8.0,it's network
            device is intel.</div>
        </div>
      </blockquote>
      If the steps I described previously don't work you may try to
      better undestrand why EFI_UNSUPPORTED is returned. Check the
      parameters provided to OpenProtocol; maybe list the protocols
      available on your handle.<br>
      <blockquote cite="mid:tencent_71F736237160EB45749F6506@qq.com"
        type="cite">
        <div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; "><font color="#ff0000">BTW,Could you
              tell me whether ipxe is supported in uefi enviroment,if
              not,could you tell me your plan.</font></div>
        </div>
      </blockquote>
      I don't really understand the question here. You can compile a
      UEFI driver for you card if it is supported in iPXE.<br>
      <blockquote cite="mid:tencent_71F736237160EB45749F6506@qq.com"
        type="cite">
        <div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; "><br>
          </div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; "><img
              src="cid:part1.05050202.04060201@solarflare.com"
              style="border-top-style: none; border-right-style: none;
              border-bottom-style: none; border-left-style: none;
              border-width: initial; border-color: initial;
              vertical-align: middle; "></div>
          <div style="font-family: 'lucida Grande', Verdana;
            line-height: 23px; ">
            <div style="color: rgb(144, 144, 144); font-family: 'Arial
              Narrow'; font-size: 12px; ">------------------</div>
          </div>
        </div>
        <div><br>
        </div>
        <div>
          <div style="color:#909090;font-family:Arial
            Narrow;font-size:12px">------------------</div>
          <div style="font-size:14px;font-family:Verdana;color:#000;">Best

            Regards,
            <div>Daniel Li </div>
          </div>
        </div>
        <div> </div>
      </blockquote>
      Alexandre<br>
      <blockquote cite="mid:tencent_71F736237160EB45749F6506@qq.com"
        type="cite">
        <div><includetail>
            <div><br>
            </div>
            <div><br>
            </div>
            <div style="font-size: 12px;font-family: Arial
              Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div>
            <div style="font-size: 12px;background:#efefef;padding:8px;">
              <div><b>From: </b> "Alexandre Rames"<a
                  moz-do-not-send="true" class="moz-txt-link-rfc2396E"
                  href="mailto:arames@solarflare.com"><arames@solarflare.com></a>;</div>
              <div><b>Date: </b> Thu, Sep 13, 2012 08:39 PM</div>
              <div><b>To: </b> "Daniel Li"<a moz-do-not-send="true"
                  class="moz-txt-link-rfc2396E"
                  href="mailto:354225989@qq.com"><354225989@qq.com></a>;
                <wbr></div>
              <div><b>Cc: </b> "ipxe-devel"<a moz-do-not-send="true"
                  class="moz-txt-link-rfc2396E"
                  href="mailto:ipxe-devel@lists.ipxe.org"><ipxe-devel@lists.ipxe.org></a>;
                <wbr></div>
              <div><b>Subject: </b> Re: [ipxe-devel] UEFI SCT patch</div>
            </div>
            <div><br>
            </div>
            <div class="moz-cite-prefix">My patch will potentially fix
              some errors reported by <a moz-do-not-send="true"
                href="http://www.uefi.org/specs/">SCT</a>. It probably
              won't fix your problem.<br>
              <br>
              I have little experience with UEFI or iPXE, but here are a
              few suggestions:<br>
              <br>
              The commands you listed don't work for me, and I could not
              find matching vendor / device id for the first 3 devices
              you mention:<br>
              $ cd <ipxe_repo>/src/<br>
              $ grep -RHIin 8086 drivers/net/ | grep -i 2000<br>
              $ grep -RHIin 8086 drivers/net/ | grep -i 2001<br>
              $ grep -RHIin 8086 drivers/net/ | grep -i 2625<br>
              <br>
              I could build a efi-driver for the last device your
              mention:<br>
              <br>
              Commands:<br>
              $ cd <ipxe_repo>/src/<br>
              $ grep -RHIin 8086 drivers/net/ | grep -i 1502<br>
              gives me:<br>
              ./intel.c:926:    PCI_ROM ( 0x8086, 0x1502, "82579lm",
              "82579LM", 0 )<br>
              <br>
              So I could build your UEFI driver with the command:<br>
              $ make bin-x86_64-efi/82579lm.efidrv -j6<br>
              (replace efidrv with efirom to build a rom)<br>
              <br>
              <br>
              I am wondering if your other devices are supported. Maybe
              the way I am looking for devices is not appropriate
              though.<br>
              <br>
              Here is an example procedure to load the driver built
              previously (very verbose).<br>
              <br>
              cd to the filesystem<br>
              > fs0:<br>
              Check that your device exist. Here look for your device
              0x8086, 0x1502<br>
              > pci<br>
              Check what drivers are loaded. Write down the index of the
              last driver loaded.<br>
              > drivers<br>
              List devices. Write down the index of the last device<br>
              > devices<br>
              Load your driver manually (this is the file compiled
              previously)<br>
              > load driver\82579lm.efidrv<br>
              Now check if your driver is loaded<br>
              > drivers<br>
              and if your device is present.<br>
              > devices<br>
              <br>
              If that does not work maybe try to enable debug in some
              iPXE files.<br>
              For example:<br>
              make bin-x86_64-efi/82579lm.efidrv -j6
              DEBUG=intel,efi_snp,efi_init<br>
              Enabling debug in files related to your device may give
              you some useful info.<br>
              <br>
              Hope this helps,<br>
              <br>
              Alexandre<br>
              <br>
              On 13/09/12 12:54, Daniel Li wrote:<br>
            </div>
            <blockquote
              cite="mid:tencent_49A6ED8A6B8AE85A6386FC46@qq.com"
              type="cite">
              <div>Hi Alexandre,</div>
              <div>Could you tell me which issue was be fixed by your
                patch?</div>
              <div><br>
              </div>
              <div>I have some issue like following about ipxe with
                uefi,I think you are good well with uefi.</div>
              <div><br>
              </div>
              <div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; ">Our
                      product will import ipxe,but efi file can't found
                      network device,I built efi file according to the
                      below steps.<o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">1.I have undef PXE_STACK and  PXE_MENU in
                      src\config\general.h.</span><span
                      style="font-family: Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">2.Built EFI version as vendor/product
                      specific:</span><span style="font-family: Verdana,
                      sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">$ make bin-x86-64/10222000.efi
                      bin-x86-64/10222001.efi
                      bin-x86-64/10222625.efi.(computer vendor is 1022
                      ,device id is 2001).</span><span
                      style="font-family: Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">$make bin-x86-64-efi/80861502(computer
                      vendor is 8086,device id is 1502).</span><span
                      style="font-family: Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">3.insert usb drive and enter uefi shell.</span><span
                      style="font-family: Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">4.fs0:</span><span style="font-family:
                      Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">5.run above efi file.</span><span
                      style="font-family: Verdana, sans-serif; "><o:p></o:p></span></p>
                </div>
                <div style="font-family: 'lucida Grande', Verdana;
                  line-height: 23px; ">
                  <p class="MsoNormal" style="line-height: 17.25pt;
                    margin-top: 0in; margin-right: 0in; margin-left:
                    0in; margin-bottom: 0.0001pt; font-size: 12pt;
                    font-family: 'Times New Roman', serif; "><span
                      style="font-family: Verdana, sans-serif; color:
                      red; ">6.All commands are Show the tip </span><span
                      style="font-size: 14.5pt; font-family: Tahoma,
                      sans-serif; color: red; ">"No more network
                      devices".</span></p>
                </div>
              </div>
              <div><br>
              </div>
              <div>
                <div style="color:#909090;font-family:Arial
                  Narrow;font-size:12px">------------------</div>
                <div
                  style="font-size:14px;font-family:Verdana;color:#000;">Best


                  Regards,
                  <div>Daniel Li </div>
                </div>
              </div>
              <div> </div>
              <div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div style="font-size: 12px;font-family: Arial
                  Narrow;padding:2px 0 2px 0;">------------------
                  Original ------------------</div>
                <div style="font-size:
                  12px;background:#efefef;padding:8px;">
                  <div><b>From: </b> "Alexandre Rames"<a
                      moz-do-not-send="true"
                      class="moz-txt-link-rfc2396E"
                      href="mailto:arames@solarflare.com"><arames@solarflare.com></a>;</div>
                  <div><b>Date: </b> Thu, Sep 13, 2012 06:15 PM</div>
                  <div><b>To: </b> "ipxe-devel"<a
                      moz-do-not-send="true"
                      class="moz-txt-link-rfc2396E"
                      href="mailto:ipxe-devel@lists.ipxe.org"><ipxe-devel@lists.ipxe.org></a>;
                    <wbr></div>
                  <div><b>Subject: </b> [ipxe-devel] UEFI SCT patch</div>
                </div>
                <div><br>
                </div>
                Hello,<br>
                <br>
                I recently started working on our UEFI driver, and some
                of my changes <br>
                may be useful for iPXE upstream.<br>
                <br>
                So here is a first patch dealing with NIC independent
                code. Can you have <br>
                a look and let me know if it needs some modifications.<br>
                It includes:<br>
                  - changes to be more UEFI compliant and pass SCT tests
                (most changes <br>
                in efi_snp.c)<br>
                  - initial support for the driver health protocol<br>
                  - initial support for the firmware management protocol<br>
                <br>
                You'll probably want to verify the additional checks for
                UEFI versions:<br>
                  - I added the DRIVER_EFI_SUPPORTED_VERSION protocol,
                as required by <br>
                the UEFI spec.<br>
                " Provides information about the version of the EFI
                specification that a <br>
                driver is following. This<br>
                protocol is required for EFI drivers that are on PCI and
                other plug in <br>
                cards. "<br>
                - In efi_init.c I added a check for a minimal version of
                UEFI required <br>
                to use the driver. I am not sure you want to keep that.<br>
                <br>
                <br>
                Alexandre<br>
                <br>
              </div>
            </blockquote>
            <br>
          </includetail></div>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>