<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">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.03000807.09050703@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 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 class="moz-txt-link-rfc2396E" href="mailto:354225989@qq.com"><354225989@qq.com></a>; <wbr></div>
<div><b>Cc: </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> 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>
</body>
</html>