<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 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 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 style="font-family: 'lucida Grande', Verdana; line-height: 23px; "><br></div><div style="font-family: 'lucida Grande', Verdana; line-height: 23px; "><img src="cid:FFFBB6FB@FAE39A0C.3BE45150.54A34C50" 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><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"<arames@solarflare.com>;</div><div><b>Date: </b> Thu, Sep 13, 2012 08:39 PM</div><div><b>To: </b> "Daniel Li"<354225989@qq.com>; <wbr></div><div><b>Cc: </b> "ipxe-devel"<ipxe-devel@lists.ipxe.org>; <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 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 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 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>