<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="State"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:261108505;
        mso-list-type:hybrid;
        mso-list-template-ids:81285096 1324009544 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"\(%1\)";
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:857042665;
        mso-list-type:hybrid;
        mso-list-template-ids:1861934230 1324009544 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-text:"\(%1\)";
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>Hi, All.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>I am figuring out and developing (U)EFI payload for LB referring
to the TianoCore(<a href="https://www.tianocore.org/">https://www.tianocore.org/</a>),
which is one of the GSoC ideas(<a
href="http://code.google.com/soc/coresystems/appinfo.html?csaid=83B941F46A422F1A">http://code.google.com/soc/coresystems/appinfo.html?csaid=83B941F46A422F1A</a>
).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>I feel it’s necessary to make you know what I’ve
got till now and also get some suggestions and feedbacks from you.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>(1)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>   </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>The EDK
project of TianoCore includes the full (U)EFI implementation for NT32
emulation, which can be debugged and tracked using VC 7.0. This would be my top
reference.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:18.0pt'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>(2)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>   </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>The EDK
implements EFI as the following phases orderly: SEC(security), PEI(Pre EFI
Initialization), DXE(Driver eXecution Environment), BDS(Boot Device Selection).
The BDS phase indicates the EFI has already been boot up and shows the
interfaces to users. Actually, The SEC and PEI phases are not the EFI implementation;
they just do the basic platform preparation (check the system memory, IO space,
Boot Mode etc.) for the EFI execution. And the DXE is the pure EFI
implementation. All information gathered in the SEC and <st1:State w:st="on"><st1:place
 w:st="on">PEI</st1:place></st1:State> is formed into HOB (Hand-Off Block:<a
href="http://download.intel.com/technology/framework/docs/Hob.pdf">http://download.intel.com/technology/framework/docs/Hob.pdf</a>)
data structure, which is only parameter to the DXE phase. The DXE phase parses
the HOB list for EFI running preparation.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:18.0pt'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>(3)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>   </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>The
LinuxBIOS collects resource and platform information to LB table; that is similar
to what the SEC and PEI do (collect resource information to HOB list). Thus the
DXE phase would be the start point of my EFI payload. There are two alternative
solutions for this purpose: Firstly to parse the LB table and transform to HOB
format; then the DXE gets the HOB list transformed by LB table. Secondly: to parse
LB table directly for DXE use and discard the HOB data structure from EDK. The
former can reuse the EDK source codes to more extent; the latter can thin the (U)EFI
payload more. I have not determined which solution to choose. Maybe you can
give me some suggestions.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:18.0pt'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>(4)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>   </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>Another
issue is about the binary image. The binary of EDK follows its special specifications,
including <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>            Firmware
Volume(<a href="http://download.intel.com/technology/framework/docs/Fv.pdf">http://download.intel.com/technology/framework/docs/Fv.pdf</a>),
<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>           
Firmware Volume Block(<a
href="http://download.intel.com/technology/framework/docs/FvBlock.pdf">http://download.intel.com/technology/framework/docs/FvBlock.pdf</a>)
and<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>           
Firmware File system (<a
href="http://download.intel.com/technology/framework/docs/Ffs.pdf">http://download.intel.com/technology/framework/docs/Ffs.pdf</a>).
The EDK provides the tools (open source) to build and <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>            parse
its binary image (flash) in its source codes package. <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>(5)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>   </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>The solution
to load (U)EFI payload from LB is needed although I have not got the clear idea
for this. Generally speaking, I may develop the special tools to transfer (U)EFI
payload binary to ELF that the LB can load( just like the Linux kernel payload
loading), or add the feature of loading (U)EFI binary to LB source codes.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>I am focusing on (3) this time; and I plan to finish parsing
LB table for DXE phase(my payload) use, and porting EFI special features in the
SEC and PEI phases(such as EFI image load/unload, EFI compression/decompression
interfaces) to the payload(DXE phase) before the mid-check(July, 9<sup>th</sup>)
of GSoc. The solution to load (U)EFI payload from LB will be the main point
after mid-check.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>Any feedbacks or suggestions are appreciated very much.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>Thanks & Best regards,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>Xiong Yi<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

</div>

</body>

</html>