<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 15">
<meta name="Originator" content="Microsoft Word 15">
<link rel="File-List" href="cid:filelist.xml@01D8DD73.9DBDF880"><link rel="Edit-Time-Data" href="cid:editdata.mso"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Zoom>170</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:DocumentKind>DocumentEmail</w:DocumentKind>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" DefSemiHidden="false" DefQFormat="false" DefPriority="99" LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;
        mso-font-alt:"Calisto MT";
        mso-font-charset:0;
        mso-generic-font-family:roman;
        mso-font-pitch:variable;
        mso-font-signature:-536869121 1107305727 33554432 0 415 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;
        mso-font-alt:"MV Boli";
        mso-font-charset:0;
        mso-generic-font-family:swiss;
        mso-font-pitch:variable;
        mso-font-signature:-469750017 -1073732485 9 0 511 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-unhide:no;
        mso-style-qformat:yes;
        mso-style-parent:"";
        margin:0in;
        mso-pagination:widow-orphan;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;
        text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-noshow:yes;
        mso-style-priority:99;
        color:purple;
        text-decoration:underline;
        text-underline:single;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-style-unhide:no;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        mso-pagination:widow-orphan;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        mso-style-noshow:yes;
        mso-style-unhide:no;
        mso-ansi-font-size:11.0pt;
        mso-bidi-font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ascii-font-family:Calibri;
        mso-fareast-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";
        color:windowtext;}
span.SpellE
        {mso-style-name:"";
        mso-spl-e:yes;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-default-props:yes;
        font-size:10.0pt;
        mso-ansi-font-size:10.0pt;
        mso-bidi-font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;
        mso-header-margin:.5in;
        mso-footer-margin:.5in;
        mso-paper-source:0;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-priority:99;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman",serif;}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="tab-interval:.5in;word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman"">I do not have a strong opinion either way.<span style="mso-spacerun:yes"> 
</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman"">Some searching indicates there is some debate between use of spaces, underscores, and dashes in filenames.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman"">The filename/<span class="SpellE">dirname</span> requirements for EDK II allow â€˜_’ and â€˜-‘ as long as they are not the first
 or last character.<span style="mso-spacerun:yes">  </span>Spaces â€˜ â€˜ are not allowed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman""><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in">[A-Za-z][_A-Za-z0-9-]*[A-Za-z0-9]+<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Mike<span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman""><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:"Times New Roman""><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="mso-fareast-font-family:"Times New Roman"">From:</span></b><span style="mso-fareast-font-family:"Times New Roman""> Chang, Abner <Abner.Chang@amd.com>
<br>
<b>Sent:</b> Monday, October 10, 2022 7:21 PM<br>
<b>To:</b> Ni, Ray <ray.ni@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io; quic_llindhol@quicinc.com; Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>; Sunil V L <sunilvl@ventanamicro.com><br>
<b>Cc:</b> lichao <lichao@loongson.cn>; Kirkendall, Garrett <Garrett.Kirkendall@amd.com>; Grimes, Paul <Paul.Grimes@amd.com>; He, Jiangang <Jiangang.He@amd.com>; Andrew Fish <afish@apple.com><br>
<b>Subject:</b> Re: [edk2-devel] The principles of EDK2 module reconstruction for archs<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p style="margin:5.0pt"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:blue">[AMD Official Use Only - General]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-font-family:"Times New Roman""><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121">Removing '_' seems make the folder hard to read, but not too bad to me though. I am fine with removing '_'. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121">Leif and Mike, how do you think?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121">Ex:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121">Riscv64Ia32X64 compares Riscv64_Ia32_X64.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;mso-fareast-font-family:"Times New Roman";color:#212121">ArmAArch64 compares to Arm_AArch64.</span><span style="mso-fareast-font-family:"Times New Roman";color:#212121"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="mso-fareast-font-family:"Times New Roman";color:#212121"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;mso-fareast-font-family:"Times New Roman";color:#212121">Abner</span><span style="mso-fareast-font-family:"Times New Roman";color:#212121"><o:p></o:p></span></p>
</div>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal"><span style="mso-fareast-font-family:"Times New Roman""><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="mso-fareast-font-family:"Times New Roman"">Get <a href="https://aka.ms/AAb9ysg">
Outlook for Android</a><o:p></o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="mso-fareast-font-family:"Times New Roman"">
<hr size="2" width="98%" align="center">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal" style="mso-outline-level:1"><b><span style="mso-fareast-font-family:"Times New Roman";color:black">From:</span></b><span style="mso-fareast-font-family:"Times New Roman";color:black"> Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>><br>
<b>Sent:</b> Tuesday, October 11, 2022 9:51:24 AM<br>
<b>To:</b> Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>; Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>>;
<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a> <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Attar, AbdulLateef (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>;
 Sunil V L <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
<b>Cc:</b> lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He,
 Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
<b>Subject:</b> RE: [edk2-devel] The principles of EDK2 module reconstruction for archs</span><span style="mso-fareast-font-family:"Times New Roman"">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="mso-fareast-font-family:"Times New Roman""> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><span style="mso-fareast-font-family:"Times New Roman"">Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.<br>
<br>
<br>
Abner, Mike, Leif,<br>
"Ia32_X64" is the first case in edk2 that underscore "_" is used as part of file path.<br>
Shall we use "Ia32X64" (removing "_")?<br>
<br>
I know that Sunil is following the guideline.<br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F94912%3Fp%3D%252C%252C%252C20%252C0%252C0%252C0%253A%253Arecentpostdate%252Fsticky%252C%252CUefiCpuPkg%252FCpuTimerLib%252C20%252C2%252C0%252C94233015&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=5wOiTArZyySLos4A%2FQHOC3gryUIZ8K4SgNxeTwfANMY%3D&amp;reserved=0">https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F94912%3Fp%3D%252C%252C%252C20%252C0%252C0%252C0%253A%253Arecentpostdate%252Fsticky%252C%252CUefiCpuPkg%252FCpuTimerLib%252C20%252C2%252C0%252C94233015&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=5wOiTArZyySLos4A%2FQHOC3gryUIZ8K4SgNxeTwfANMY%3D&amp;reserved=0</a><br>
<br>
Thanks,<br>
Ray<br>
<br>
> -----Original Message-----<br>
> From: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>><br>
> Sent: Thursday, October 6, 2022 4:37 PM<br>
> To: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> <a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>; Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef<br>
> (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He,<br>
> Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> Subject: RE: [edk2-devel] The principles of EDK2 module reconstruction for<br>
> archs<br>
><br>
> [AMD Official Use Only - General]<br>
><br>
> Here is the update of the Wiki page for the consistency with edk2 C Coding<br>
> Standard Spec.<br>
> <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fchangab%2Ftianocore.github.io%2Fwiki%2FThe-Guidelines-of-&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=i5RSe41cuzD48VB32KeG0M3Vp7T%2FEqe3ncKNfGCjfIU%3D&amp;reserved=0">
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fchangab%2Ftianocore.github.io%2Fwiki%2FThe-Guidelines-of-&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=i5RSe41cuzD48VB32KeG0M3Vp7T%2FEqe3ncKNfGCjfIU%3D&amp;reserved=0</a><br>
> Reconstruct-EDK-II-Modules-for-Processor-Architectures-and-Vendors'-<br>
> Implementation<br>
><br>
> Thanks<br>
> Abner<br>
><br>
> > -----Original Message-----<br>
> > From: Chang, Abner<br>
> > Sent: Wednesday, October 5, 2022 1:39 PM<br>
> > To: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> > <a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>; Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef<br>
> > (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> He,<br>
> > Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > Subject: RE: [edk2-devel] The principles of EDK2 module reconstruction for<br>
> > archs<br>
> ><br>
> > [AMD Official Use Only - General]<br>
> ><br>
> > PR updated<br>
> > <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore-docs%2Fedk2-&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=YDYXODgrQhuLlP8DTsLr%2F4ct2JH3aw8y2SPg8tk5fgg%3D&amp;reserved=0">
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore-docs%2Fedk2-&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C1c6973cf412c4ba09ef908daab2b1ea6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C638010498938218357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=YDYXODgrQhuLlP8DTsLr%2F4ct2JH3aw8y2SPg8tk5fgg%3D&amp;reserved=0</a><br>
> > CCodingStandardsSpecification/pull/2/commits. Please check it.<br>
> ><br>
> > Thanks<br>
> > Abner<br>
> ><br>
> > > -----Original Message-----<br>
> > > From: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > Sent: Tuesday, October 4, 2022 10:18 PM<br>
> > > To: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> > > <a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>; Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar,<br>
> > > AbdulLateef (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>; Kinney, Michael D<br>
> > > <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > He,<br>
> > > Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > Subject: RE: [edk2-devel] The principles of EDK2 module reconstruction<br>
> > > for archs<br>
> > ><br>
> > > Caution: This message originated from an External Source. Use proper<br>
> > > caution when opening attachments, clicking links, or responding.<br>
> > ><br>
> > ><br>
> > > I would not add link to Wiki from EDK II C Coding Standard Specification.<br>
> > ><br>
> > > We want documents published from tianocore-docs to support<br>
> standalone<br>
> > > formats such as PDF and if there is a link in one of those documents,<br>
> > > we want to know that it is a permanent link.  I am concerned we may<br>
> > > reorganize Wiki pages and links in PDF would become stale.<br>
> > ><br>
> > > Links from Wiki to specs makes sense.<br>
> > ><br>
> > > Mike<br>
> > ><br>
> > > > -----Original Message-----<br>
> > > > From: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>><br>
> > > > Sent: Tuesday, October 4, 2022 7:05 AM<br>
> > > > To: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:quic_llindhol@quicinc.com">
quic_llindhol@quicinc.com</a>; Ni, Ray<br>
> > > > <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef (Abdul Lateef)<br>
> > > > <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > He, Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish<br>
> <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > Subject: RE: [edk2-devel] The principles of EDK2 module<br>
> > > > reconstruction for archs<br>
> > > ><br>
> > > > [AMD Official Use Only - General]<br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > > -----Original Message-----<br>
> > > > > From: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > Sent: Tuesday, October 4, 2022 12:54 AM<br>
> > > > > To: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>;<br>
> > > > > <a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>; Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar,<br>
> > > > > AbdulLateef (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>; Kinney, Michael D<br>
> > > > > <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > He, Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish<br>
> > <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > Subject: RE: [edk2-devel] The principles of EDK2 module<br>
> > > > > reconstruction for archs<br>
> > > > ><br>
> > > > > Caution: This message originated from an External Source. Use<br>
> > > > > proper caution when opening attachments, clicking links, or<br>
> responding.<br>
> > > > ><br>
> > > > ><br>
> > > > > Hi Abner,<br>
> > > > ><br>
> > > > > responses below.<br>
> > > > ><br>
> > > > > Mike<br>
> > > > ><br>
> > > > > > -----Original Message-----<br>
> > > > > > From: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>> On Behalf Of<br>
> > > > > > Chang, Abner via groups.io<br>
> > > > > > Sent: Sunday, October 2, 2022 10:37 PM<br>
> > > > > > To: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > > > <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:quic_llindhol@quicinc.com">
quic_llindhol@quicinc.com</a>; Ni, Ray<br>
> > > > > > <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef (Abdul Lateef)<br>
> > > > > > <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > He,<br>
> > > > > > Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > Subject: Re: [edk2-devel] The principles of EDK2 module<br>
> > > > > > reconstruction for archs<br>
> > > > > ><br>
> > > > > > [AMD Official Use Only - General]<br>
> > > > > ><br>
> > > > > > Mike,<br>
> > > > > > Agree. This can be mentioned on the Wiki page. Also, this would<br>
> > > > > > require the discussion between maintainer and contributor. I<br>
> > > > > > would say<br>
> > > > > maintainer has the responsibility to make sure an arch folder is<br>
> > > > > only created when necessary.<br>
> > > > ><br>
> > > > > Agreed<br>
> > > > Ok, I will update Directory and file names section.<br>
> > > > ><br>
> > > > > ><br>
> > > > > > Do you agree with the arch concatenate solution for arch folder?<br>
> > > > > > That<br>
> > > > > means IA32_X64 instead of X86 (I am fine with this)?<br>
> > > > ><br>
> > > > > Yes<br>
> > > > ><br>
> > > > > > However, there is one scenario. Assume there were two arch<br>
> > > > > > folders<br>
> > > > > > IA32_X64 and RISCV64. Then ARM shares the code with IA32_X64,<br>
> we<br>
> > > > > > may<br>
> > > > > rename IA32_X64 to IA32_X64_ARM.<br>
> > > > > > Although the directory naming is not real a problem to the<br>
> > > > > > build, a separate ARM folder seems easier? Or we can just allow<br>
> > > > > > this kind of folder<br>
> > > > > naming structure, however we let maintainer to make the decision?<br>
> > > > ><br>
> > > > > I would let the maintainer make the decision.  For your example,<br>
> > > > > another approach may be to move the IA32_X64 content up a level so<br>
> > > > > it is common and is used by IA32, X64, ARM.  And leave RISCV64<br>
> > > > > folder for an arch that has special requirements.  I think having<br>
> > > > > some flexibility in the guidelines is very beneficial.  The main<br>
> > > > > goal is for consistency when a specific guideline is followed.<br>
> > > > I think we can have the naming rules in the edk2 C coding standard<br>
> > > > spec and<br>
> > > put these guidelines on the Wiki page.<br>
> > > > Is that ok to have a link to Wiki page in the edk2 C coding standard spec?<br>
> > > ><br>
> > > > Abner<br>
> > > ><br>
> > > > ><br>
> > > > > ><br>
> > > > > > Abner<br>
> > > > > ><br>
> > > > > ><br>
> > > > > > > -----Original Message-----<br>
> > > > > > > From: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > > > Sent: Monday, October 3, 2022 1:18 PM<br>
> > > > > > > To: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>;<br>
> > <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> > > > > > > <a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>; Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar,<br>
> > > > > > > AbdulLateef (Abdul Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil<br>
> > > > > > > V L <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>; Kinney, Michael D<br>
> > > > > > > <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He, Jiangang<br>
> <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>;<br>
> > > > > > > Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > Subject: RE: [edk2-devel] The principles of EDK2 module<br>
> > > > > > > reconstruction for archs<br>
> > > > > > ><br>
> > > > > > > Caution: This message originated from an External Source. Use<br>
> > > > > > > proper caution when opening attachments, clicking links, or<br>
> > responding.<br>
> > > > > > ><br>
> > > > > > ><br>
> > > > > > > Abner,<br>
> > > > > > ><br>
> > > > > > > I think another guideline is to minimize the number of<br>
> > subdirectories.<br>
> > > > > > ><br>
> > > > > > > Only create them if it helps with the organization and long<br>
> > > > > > > term maintenance of the component.<br>
> > > > > > ><br>
> > > > > > > Mike<br>
> > > > > > ><br>
> > > > > > ><br>
> > > > > > > > -----Original Message-----<br>
> > > > > > > > From: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>><br>
> > > > > > > > Sent: Sunday, October 2, 2022 8:13 PM<br>
> > > > > > > > To: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > > > > > <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:quic_llindhol@quicinc.com">
quic_llindhol@quicinc.com</a>; Ni, Ray<br>
> > > > > > > > <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef (Abdul Lateef)<br>
> > > > > > > > <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > > > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > > > > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > > > He,<br>
> > > > > > > > Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish<br>
> > > > > > > > <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > Subject: RE: [edk2-devel] The principles of EDK2 module<br>
> > > > > > > > reconstruction for archs<br>
> > > > > > > ><br>
> > > > > > > > [AMD Official Use Only - General]<br>
> > > > > > > ><br>
> > > > > > > > Hi Mike and Leif,<br>
> > > > > > > > First of all, we don't use arch folder if the module is<br>
> > > > > > > > mainly for a specific arch in obviously. So we will  have<br>
> > > > > > > > both common and arch-specific<br>
> > > > > > > files constructed under module/library root.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2F">
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2F</a><br>
> > > > > ed<br>
> > > > > > > k<br>
> > > > > > > 2<br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> > > .groups.io%2Fg%2Fdevel%2Fmessage%2F94567&amp;data=05%7C01%7C<br>
> A<br>
> > > > > > > bner.Chan<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> g%40amd.com%7Cd49cbbe6d3d942bd69a308daa4fea41b%7C3dd8961fe4884<br>
> > > > > > > e608e11a<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 82d994e183d%7C0%7C0%7C638003710850252776%7CUnknown%7CTWFpbGZ<br>
> > > > > > > sb3d8eyJWI<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3<br>
> > > > > > > 000%7<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> ><br>
> C%7C%7C&amp;sdata=eiLOC0G9WZWKqm2ALcAiKr7SPBP5AgDdAxogHlv5pI<br>
> > > > > > > M%3D&amp;r<br>
> > > > > > > > eserved=0<br>
> > > > > > > > SmmCpuFeatureLib\Ia32<br>
> > > > > > > > SmmCpuFeatureLib\X64<br>
> > > > > > > > SmmCpuFeatureLib\SmmCpuFeatureLib.c<br>
> > > > > > > > SmmCpuFeatureLib\SmmCpuFeatureLibCommon.c<br>
> > > > > > > > SmmCpuFeatureLib\IntelSmmCPuFeaturesLib<br>
> > > > > > > > SmmCpuFeatureLib\AmdlSmmCPuFeaturesLib<br>
> > > > > > > ><br>
> > > > > > > ><br>
> > > > > > > > > > Could we concatenate architectures?<br>
> > > > > > > > > > I.e. AARCH64_ARM, IA32_X64, AARCH64_RISCV64... ?<br>
> > > > > > > > Looks like below?<br>
> > > > > > > ><br>
> > > > > > > > CpuDxe\IA32_X64\IA32\abc.nasm<br>
> > CpuDxe\IA32_X64\X64\abc.nasm<br>
> > > > > > > > CpuDxe\IA32_X64\CpuDxe.c CpuDxe\IA32_X64\AmdCpuDxe.c<br>
> > > > > > > > CpuDxe\IA32_X64\IntelCpuDxe.c CpuDxe\RiscV64\CpuDxe.c<br>
> > > > > > > > CpuDxe\ARM\CpuDxe.c CpuDxe\<br>
> > > > > > > >                CpuDxeCommon.c  // If required.<br>
> > > > > > > >                 CpuDxe.inf               // Use INF section arch modifier for<br>
> X86,<br>
> > > > > RISC-V<br>
> > > > > > > and ARM.<br>
> > > > > > > >                 CpuDxeAmd.inf        // Separate INF for AMD.<br>
> > > > > > > ><br>
> > > > > > > > Seems ok, but is AARCH64_RISCV64 a real case?  Or it means<br>
> > > > > > > > we can create a folder "AARCH64_RISCV64" when there are<br>
> some<br>
> > > > > > > > common<br>
> > > > > files<br>
> > > > > > > shared by AARCH64 and RISCV64?<br>
> > > > > > > ><br>
> > > > > > > > For the 32/64 bit support, it can still stay under module<br>
> > > > > > > > root and don't need to assign a folder for them unless the<br>
> > > > > > > > arch has the different<br>
> > > > > > > implementation.<br>
> > > > > > > > Regards,<br>
> > > > > > > > Abner<br>
> > > > > > > ><br>
> > > > > > > ><br>
> > > > > > > ><br>
> > > > > > > > > -----Original Message-----<br>
> > > > > > > > > From: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > > > > > Sent: Saturday, October 1, 2022 2:52 AM<br>
> > > > > > > > > To: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;
<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>;<br>
> > > > > > > > > Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>; Ni, Ray<br>
> > > > > > > > > <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef (Abdul Lateef)<br>
> > > > > > > > > <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > > > > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>; Kinney, Michael D<br>
> > > > > > > > > <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He, Jiangang<br>
> > <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>;<br>
> > > > > > > > > Andrew Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > Subject: RE: [edk2-devel] The principles of EDK2 module<br>
> > > > > > > > > reconstruction for archs<br>
> > > > > > > > ><br>
> > > > > > > > > Caution: This message originated from an External Source.<br>
> > > > > > > > > Use proper caution when opening attachments, clicking<br>
> > > > > > > > > links, or<br>
> > > > > responding.<br>
> > > > > > > > ><br>
> > > > > > > > ><br>
> > > > > > > > > Hi Leif,<br>
> > > > > > > > ><br>
> > > > > > > > > Concatenation is a good idea.  Makes it more obvious and<br>
> > > > > > > > > can be easily adopted for new CPU archs.<br>
> > > > > > > > ><br>
> > > > > > > > > There is an additional case where an implementation does<br>
> > > > > > > > > not have differences based on CPU Arch or Vendor, but it<br>
> > > > > > > > > does have differences based on the bit- width of the CPU.<br>
> > > > > > > > > Take BaseSafeIntLib as<br>
> > > > > > > an example.<br>
> > > > > > > > > It has source files for 32-bit CPUs, 64-bit CPUs, and CPU<br>
> > > > > > > > > arch specific file for Ebc because Ebc adapts to 32-bit or<br>
> > > > > > > > > 64-bit depending on the CPU type the EBC Interpreter is<br>
> running.<br>
> > > > > > > > ><br>
> > > > > > > > > MdePkg/Library/BaseSafeIntLib/<br>
> > > > > > > > >   BaseSafeIntLib.inf<br>
> > > > > > > > >   SafeIntLib.c<br>
> > > > > > > > >   SafeIntLib32.c<br>
> > > > > > > > >   SafeIntLib64.c<br>
> > > > > > > > >   SafeIntLibEbc.c<br>
> > > > > > > > ><br>
> > > > > > > > > Should we add "32" and "64" as supported suffices in file<br>
> names?<br>
> > > > > > > > ><br>
> > > > > > > > > If we wanted to put type content into a subdirectory, what<br>
> > > > > > > > > would be the suggested directory name for "32" and "64".<br>
> > > > > > > > > Or do we want to require this type of difference to always<br>
> > > > > > > > > be files in top level directory of<br>
> > > > > > > the modules/library?<br>
> > > > > > > > ><br>
> > > > > > > > > Best regards,<br>
> > > > > > > > ><br>
> > > > > > > > > Mike<br>
> > > > > > > > ><br>
> > > > > > > > ><br>
> > > > > > > > > > -----Original Message-----<br>
> > > > > > > > > > From: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>> On<br>
> > > > > > > > > > Behalf Of Leif Lindholm<br>
> > > > > > > > > > Sent: Friday, September 30, 2022 9:09 AM<br>
> > > > > > > > > > To: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; Kinney, Michael D<br>
> > > > > > > > > > <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>; Chang, Abner<br>
> > > > > > > <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>;<br>
> > > > > > > > > > Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef (Abdul<br>
> > > > > > > > > > Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > > > > > > <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > > > > > > > > > Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > > > > > > He, Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Andrew Fish<br>
> > > > > > > <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > Subject: Re: [edk2-devel] The principles of EDK2 module<br>
> > > > > > > > > > reconstruction for archs<br>
> > > > > > > > > ><br>
> > > > > > > > > > I agree similar things will certainly happen for<br>
> > > > > > > > > > ARM/AARCH64, which will probably be noticeable when I<br>
> > > > > > > > > > start eradicating ArmPkg and putting the arch-standard<br>
> > > > > > > > > > bits into<br>
> > > (mostly) MdePkg.<br>
> > > > > > > > > ><br>
> > > > > > > > > > But I like the ability to see already at the filesystem<br>
> > > > > > > > > > level which files belong to the architecture I'm<br>
> > > > > > > > > > currently working on and<br>
> > > > > > > which don't.<br>
> > > > > > > > > ><br>
> > > > > > > > > > Could we concatenate architectures?<br>
> > > > > > > > > > I.e. AARCH64_ARM, IA32_X64, AARCH64_RISCV64... ?<br>
> > > > > > > > > ><br>
> > > > > > > > > > /<br>
> > > > > > > > > >      Leif<br>
> > > > > > > > > ><br>
> > > > > > > > > > On 2022-09-30 08:28, Michael D Kinney wrote:<br>
> > > > > > > > > > > Hi Abner,<br>
> > > > > > > > > > ><br>
> > > > > > > > > > > One comment is on adding a new CPU type dir name of<br>
> 'X86'<br>
> > > > > > > > > > > for content that is common for IA32/X64.<br>
> > > > > > > > > > ><br>
> > > > > > > > > > > I can imagine a similar case for ARM/AARCH64 and for<br>
> > > > > > > > > > > the RISCV (32, 64, 128) cases.<br>
> > > > > > > > > > ><br>
> > > > > > > > > > > I think I would prefer to drop X86 and if there are<br>
> > > > > > > > > > > files that are common to multiple CPU architectures<br>
> > > > > > > > > > > then they are considered common and are in top<br>
> > > > > > > > > > > directory of module and the file header and INF file<br>
> > > > > > > > > > > can clearly document which CPU archs the file<br>
> > > > > > > applies.<br>
> > > > > > > > > > ><br>
> > > > > > > > > > > Mike<br>
> > > > > > > > > > ><br>
> > > > > > > > > > >> -----Original Message-----<br>
> > > > > > > > > > >> From: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>><br>
> > > > > > > > > > >> Sent: Friday, September 30, 2022 12:11 AM<br>
> > > > > > > > > > >> To: Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>>; Attar, AbdulLateef<br>
> > > > > > > > > > >> (Abdul<br>
> > > > > > > > > > >> Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Sunil V L<br>
> > > > > > > > > > >> <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> > > > > > > > > > >> Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>><br>
> > > > > > > > > > >> Cc: lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > >> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > > >> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He, Jiangang<br>
> > > > > <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>;<br>
> > > > > > > Leif<br>
> > > > > > > > > > >> Lindholm <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Andrew Fish<br>
> > > > > > > > > > >> <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > >> Subject: RE: [edk2-devel] The principles of EDK2<br>
> > > > > > > > > > >> module reconstruction for archs<br>
> > > > > > > > > > >><br>
> > > > > > > > > > >> [AMD Official Use Only - General]<br>
> > > > > > > > > > >><br>
> > > > > > > > > > >> Thanks Ray, here are my responses.<br>
> > > > > > > > > > >> <a href="https://nam11.safelinks.protection.outlook.com/?url=h">
https://nam11.safelinks.protection.outlook.com/?url=h</a><br>
> > > > > > > > > > >> tt<br>
> > > > > > > > > > >> ps%3<br>
> > > > > > > > > > >> A%2F<br>
> > > > > > > > > > >> %2Fg<br>
> > > > > > > > > > >> ithub.com%2Ftianocore-docs%2Fedk2-<br>
> > > > > > > CCodingStandardsSpecification<br>
> > > > > > > > > > >> %2Fp<br>
> > > > > > > > > > >><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> ull%2F2&amp;data=05%7C01%7CAbner.Chang%40amd.com%7C7c3292c8bd2<br>
> > > > > > > f4<br>
> > > > > > > > > 86f<br>
> > > > > > > > > > >><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 920908daa314e8e6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6<br>
> > > > > > > > > 3800<br>
> > > > > > > > > > >><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 1607445876768%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLC<br>
> > > > > > > JQ<br>
> > > > > > > > > IjoiV<br>
> > > > > > > > > > >><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata<br>
> > > > > > > =<br>
> > > > > > > > > HAq<br>
> > > > > > > > > > >><br>
> > > > > > ><br>
> > > > ><br>
> > ou4JyY1yxDthuQ1dEKcF7Q3o4W77Oo9rOOvkXNWU%3D&amp;reserved=0<br>
> > > > > > > > > > >><br>
> > > > > > > > > > >> @Kinney, Michael D we may also need your<br>
> > > > > > > > > > >> clarification on the<br>
> > > > > > > comments.<br>
> > > > > > > > > > >><br>
> > > > > > > > > > >><br>
> > > > > > > > > > >>> -----Original Message-----<br>
> > > > > > > > > > >>> From: Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>><br>
> > > > > > > > > > >>> Sent: Thursday, September 29, 2022 3:42 PM<br>
> > > > > > > > > > >>> To: Attar, AbdulLateef (Abdul Lateef)<br>
> > > > > > > > > > >>> <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Chang, Abner<br>
> > > > > > > > > > >>> <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>; Sunil V L<br>
> > > > > > > > > > >>> <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a><br>
> > > > > > > > > > >>> Cc: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > > > > > > > >>> lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > >>> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > > >>> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He, Jiangang<br>
> > > > > <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>;<br>
> > > > > > > > > > >>> Leif Lindholm <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Andrew<br>
> > > > > > > > > > >>> Fish <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > >>> Subject: RE: [edk2-devel] The principles of EDK2<br>
> > > > > > > > > > >>> module reconstruction for archs<br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>> Caution: This message originated from an External<br>
> Source.<br>
> > > > > > > > > > >>> Use proper caution when opening attachments,<br>
> > > > > > > > > > >>> clicking links, or<br>
> > > > > > > responding.<br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>> Abner,<br>
> > > > > > > > > > >>> Comments in<br>
> > > > > > > > > > >>> <a href="https://nam11.safelinks.protection.outlook.com/?url=">
https://nam11.safelinks.protection.outlook.com/?url=</a><br>
> > > > > > > > > > >>> ht<br>
> > > > > > > > > > >>> tps%<br>
> > > > > > > > > > >>> 3A%2<br>
> > > > > > > > > > >>> F%2F<br>
> > > > > > > > > > >>> gith<br>
> > > > > > > > > > >>> ub.com%2Ftianocore-docs%2Fedk2-<br>
> > > > > > > > > > >>><br>
> CCodingStandardsSpecification%2Fpull%2F2%23pullreque<br>
> > > > > > > > > > >>> st<br>
> > > > > > > > > > >>> revi<br>
> > > > > > > > > > >>> ew-<br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 1124763311&amp;data=05%7C01%7CAbner.Chang%40amd.com%7Cd825e24<br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 8625541e3f43e08daa1ee2883%7C3dd8961fe4884e608e11a82d994e183d%7C0<br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> > %7C0%7C638000341502885565%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiM<br>
> C<br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> > 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%<br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> ><br>
> 7C%7C%7C&amp;sdata=RXxgpbEr6ivbqP1R6%2B3Rxl%2ByJAnaUJuaYYKdfCH<br>
> > > > > > > > > > >>> 8jo8%3D&amp;reserved=0<br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>> We can discuss more in tomorrow's meeting.<br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>><br>
> > > > > > > > > > >>>> -----Original Message-----<br>
> > > > > > > > > > >>>> From: Attar, AbdulLateef (Abdul Lateef)<br>
> > > > > > > > > > >>>> <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>><br>
> > > > > > > > > > >>>> Sent: Thursday, September 29, 2022 3:11 PM<br>
> > > > > > > > > > >>>> To: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>; Sunil V L<br>
> > > > > > > > > > >>>> <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>;
<a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;<br>
> > > > > > > > > > >>>> Ni, Ray <<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a>><br>
> > > > > > > > > > >>>> Cc: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > > > > > > > >>>> lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > >>>> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > > >>>> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > > > > > > >>> He,<br>
> > > > > > > > > > >>>> Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Leif Lindholm<br>
> > > > > > > > > > >>>> <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Andrew Fish<br>
> > > > > > > > > > >>>> <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > >>>> Subject: RE: [edk2-devel] The principles of EDK2<br>
> > > > > > > > > > >>>> module reconstruction for archs<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> Hi Abner,<br>
> > > > > > > > > > >>>>      Looks good to me.<br>
> > > > > > > > > > >>>> Reviewed-by:  Abdul Lateef Attar <<a href="mailto:abdattar@amd.com">abdattar@amd.com</a>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> Thanks<br>
> > > > > > > > > > >>>> AbduL<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> -----Original Message-----<br>
> > > > > > > > > > >>>> From: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>><br>
> > > > > > > > > > >>>> Sent: 28 September 2022 20:31<br>
> > > > > > > > > > >>>> To: Sunil V L <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>>;<br>
> > > > > > > > > > >>>> <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;
<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a><br>
> > > > > > > > > > >>>> Cc: Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>;<br>
> > > > > > > > > > >>>> lichao <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > >>>> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > > >>>> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>;<br>
> > > > > > > > > > >>> He,<br>
> > > > > > > > > > >>>> Jiangang <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Attar, AbdulLateef<br>
> > > > > > > > > > >>>> (Abdul<br>
> > > > > > > > > > >>>> Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Leif Lindholm<br>
> > > > > > > > > > >>>> <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Andrew Fish<br>
> > > > > > > > > > >>>> <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > >>>> Subject: RE: [edk2-devel] The principles of EDK2<br>
> > > > > > > > > > >>>> module reconstruction for archs<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> [AMD Official Use Only - General]<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> I just had created PR to update edkII C coding<br>
> > > > > > > > > > >>>> standard spec for the file and directory naming. We<br>
> > > > > > > > > > >>>> can review and confirm this update first and then<br>
> > > > > > > > > > >>>> go back to the principles of EDK2 module<br>
> > > > > > > > > reconstruction for archs.<br>
> > > > > > > > > > >>>> Here is the PR:<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>> <a href="https://nam11.safelinks.protection.outlook.com/?url=">
https://nam11.safelinks.protection.outlook.com/?url=</a><br>
> > > > > > > > > > >>> ht<br>
> > > > > > > > > > >>> tps%<br>
> > > > > > > > > > >>> 3A%2<br>
> > > > > > > > > > >>> F%2F<br>
> > > > > > > > > > >>> gith<br>
> > > > > > > > > > >>>> ub.com%2Ftianocore-docs%2Fedk2-<br>
> > > > > > > > > > >>> &amp;data=05%7C01%7CAbner.Chang%40amd.c<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> om%7Cd825e248625541e3f43e08daa1ee2883%7C3dd8961fe4884e608e11a82<br>
> > > > > > > > > > >>> d994e18<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 3d%7C0%7C0%7C638000341502885565%7CUnknown%7CTWFpbGZsb3d8eyJ<br>
> > > > > > > > > > >>> WIjoiMC4wLj<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> > AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%<br>
> > > > > > > > > > >>> 7C%7C&a<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> mp;sdata=X4z9puj81nIGTqtMxC9igDZyBPOT6OTWSU%2BjoIowo%2BE%3D&a<br>
> > > > > > > > > > >>> mp;reserv<br>
> > > > > > > > > > >>>> ed=0<br>
> > > > > > > > > > >>>> CCodingStandardsSpecification/pull/2<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> The naming rule is mainly for the new module or new<br>
> file<br>
> > IMO.<br>
> > > > > > > > > > >>>> Some existing module may not meet the guidelines<br>
> > > > > > > > > > >>>> mentioned in this<br>
> > > > > > > > > spec.<br>
> > > > > > > > > > >>>> Thus we need the principles of EDK2 module<br>
> > > > > > > > > > >>>> reconstruction on the existing module to support<br>
> > > > > > > > > > >>>> other processor archs and not impacting the<br>
> > > > > > > > > > >>> existing platforms (e.g.<br>
> > > > > > > > > > >>>> rename the INF file or directory to meet the<br>
> guidelines).<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> Sunil, seems RISC-V CpuDxe meet the guideline.<br>
> > > > > > > > > > >>>> Please check<br>
> > > > > it.<br>
> > > > > > > > > > >>>> Just feel that having  CpuDxe.c to Riscv64 folder<br>
> > > > > > > > > > >>>> is not quite a best solution. I think at least we<br>
> > > > > > > > > > >>>> can abstract the protocol structure and protocol<br>
> > > > > > > > > > >>>> installation under CpuDxe\ and have the arch<br>
> > > > > > > > > > >>>> implementation under arch folder. We can discuss<br>
> > > > > > > > > > >>>> this later after we confirming the<br>
> > > > > > > > > > >>> guideline and principles.<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>> Thanks<br>
> > > > > > > > > > >>>> Abner<br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>>>> -----Original Message-----<br>
> > > > > > > > > > >>>>> From: Sunil V L <<a href="mailto:sunilvl@ventanamicro.com">sunilvl@ventanamicro.com</a>><br>
> > > > > > > > > > >>>>> Sent: Wednesday, September 28, 2022 3:34 PM<br>
> > > > > > > > > > >>>>> To: <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>;
<a href="mailto:ray.ni@intel.com">ray.ni@intel.com</a><br>
> > > > > > > > > > >>>>> Cc: Chang, Abner <<a href="mailto:Abner.Chang@amd.com">Abner.Chang@amd.com</a>>; Kinney,<br>
> > > > > Michael<br>
> > > > > > > > > > >>>>> D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>>; lichao<br>
> > > > > > > > > > >>>>> <<a href="mailto:lichao@loongson.cn">lichao@loongson.cn</a>>; Kirkendall, Garrett<br>
> > > > > > > > > > >>>>> <<a href="mailto:Garrett.Kirkendall@amd.com">Garrett.Kirkendall@amd.com</a>>; Grimes, Paul<br>
> > > > > > > > > > >>>>> <<a href="mailto:Paul.Grimes@amd.com">Paul.Grimes@amd.com</a>>; He, Jiangang<br>
> > > > > > > > > > >>>>> <<a href="mailto:Jiangang.He@amd.com">Jiangang.He@amd.com</a>>; Attar, AbdulLateef (Abdul<br>
> > > > > > > > > > >>>>> Lateef) <<a href="mailto:AbdulLateef.Attar@amd.com">AbdulLateef.Attar@amd.com</a>>; Leif<br>
> Lindholm<br>
> > > > > > > > > > >>>>> <<a href="mailto:quic_llindhol@quicinc.com">quic_llindhol@quicinc.com</a>>; Andrew Fish<br>
> > > > > > > > > > >>>>> <<a href="mailto:afish@apple.com">afish@apple.com</a>><br>
> > > > > > > > > > >>>>> Subject: Re: [edk2-devel] The principles of EDK2<br>
> > > > > > > > > > >>>>> module reconstruction for archs<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> Caution: This message originated from an External<br>
> > Source.<br>
> > > > > > > > > > >>>>> Use proper caution when opening attachments,<br>
> > > > > > > > > > >>>>> clicking links, or<br>
> > > > > > > responding.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> On Wed, Sep 28, 2022 at 03:33:45AM +0000, Ni, Ray<br>
> > wrote:<br>
> > > > > > > > > > >>>>> Hi Ray,<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>>>    1.  When a new arch's implementation is<br>
> > > > > > > > > > >>>>>> introduced to the existing<br>
> > > > > > > > > > >>>>> module which was developed for the specific arch:<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>>>    1.  The folder reconstruction:<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>>>    *   Create arch folder for the existing arch<br>
> > implementation<br>
> > > > > > > > > > >>>>>> [Ray] Do you move existing arch implementation to<br>
> > > > > > > > > > >>>>>> that arch<br>
> > > > > > > folder?<br>
> > > > > > > > > > >>>>>> It will<br>
> > > > > > > > > > >>>>> break existing platforms a lot.<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>>>    *   Create the arch folder for the new introduced<br>
> > arch<br>
> > > > > > > > > > >>>>>> [Ray] I agree. But if we don't create arch folder<br>
> > > > > > > > > > >>>>>> for existing arch<br>
> > > > > > > > > > >>>>> implementation, the pkg layout will be a mess.<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>>> [Ray] Hard for me to understand all the principles<br>
> here.<br>
> > > > > > > > > > >>>>>> Maybe we review<br>
> > > > > > > > > > >>>>> existing code including to-be-upstreamed code and<br>
> > > > > > > > > > >>>>> decide how<br>
> > > > > > > to go.<br>
> > > > > > > > > > >>>>>><br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> Could you please take a look below changes which<br>
> > > > > > > > > > >>>>> is trying to add RISC-V support for CpuDxe?<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>> <a href="https://nam11.safelinks.protection.outlook.com/?url=">
https://nam11.safelinks.protection.outlook.com/?url=</a><br>
> > > > > > > > > > >>> ht<br>
> > > > > > > > > > >>> tps%<br>
> > > > > > > > > > >>> 3A%2<br>
> > > > > > > > > > >>> F%2F<br>
> > > > > > > > > > >>> gith<br>
> > > > > > > > > > >>>>> ub.com%2Ftianocore%2Fedk2-<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> staging%2Fcommit%2Fbba1a11be47dd091734e185afbed73ea75708749&amp;<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> data=05%7C01%7Cabner.chang%40amd.com%7Ca419e6a010d34fde464b08d<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> aa123e080%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C63799947<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 2732494527%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIj<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> oiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sd<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> ><br>
> ata=Vq6pJLnn8yJrJhFZn7LfLbZzrtpG4n1VLWgAil6J38U%3D&amp;reserved=0<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>> <a href="https://nam11.safelinks.protection.outlook.com/?url=">
https://nam11.safelinks.protection.outlook.com/?url=</a><br>
> > > > > > > > > > >>> ht<br>
> > > > > > > > > > >>> tps%<br>
> > > > > > > > > > >>> 3A%2<br>
> > > > > > > > > > >>> F%2F<br>
> > > > > > > > > > >>> gith<br>
> > > > > > > > > > >>>>> ub.com%2Ftianocore%2Fedk2-<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> staging%2Fcommit%2F7fccf92a97a6d0618a20f10622220e78b3687906&amp;da<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> ta=05%7C01%7Cabner.chang%40amd.com%7Ca419e6a010d34fde464b08daa1<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 23e080%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C63799947273<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 2494527%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> > ><br>
> ><br>
> 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>><br>
> > > > > > > > > > >>><br>
> > > > > > > > ><br>
> > > > > > ><br>
> > > > ><br>
> ><br>
> =xFmvUv58vh4AUAM17Qy9G5jZWFZlK2Ozt3njpG1e8%2BY%3D&amp;reserv<br>
> > > > > > > > > > >>>>> ed=0<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> What do you suggest with above example?<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> 1) Common INF for all architectures - but modify<br>
> > > > > > > > > > >>>>> INF alone, no<br>
> > > > > > > > > > >>>>> X86 folder creation.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> This is what I have done in the commit above. May<br>
> > > > > > > > > > >>>>> be of least impact to existing code since it is only INF<br>
> > change.<br>
> > > > > > > > > > >>>>> But like you mentioned this is bit weird that X86<br>
> > > > > > > > > > >>>>> files will remain in root folder directly along<br>
> > > > > > > > > > >>>>> with some common<br>
> > > > > files.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> 2) Common INF (CpuDxe.inf) + create arch folders<br>
> > > > > > > > > > >>>>> X86, X64, IA32,<br>
> > > > > > > > > > >>>>> RiscV64 etc<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> IMO, this is probably the best approach. What<br>
> > > > > > > > > > >>>>> would be the challenges with this?<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> 3) Separate INF for arch like CpuDxe.inf for x86,<br>
> > > > > > > > > > >>>>> CpuDxeRiscV64.inf for<br>
> > > > > > > > > > >>>> RISC-V.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> This again probably is not a good idea.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> 4) If the module/library is specific to one arch (ex:<br>
> > > > > > > > > > >>>>> SMM(X86), SBI(RISC-V)), then create separate INF.<br>
> > > > > > > > > > >>>>><br>
> > > > > > > > > > >>>>> Thanks!<br>
> > > > > > > > > > >>>>> Sunil<br>
> > > > > > > > > > ><br>
> > > > > > > > > > ><br>
> > > > > > > > > > ><br>
> > > > > > > > > > ><br>
> > > > > > > > > > ><br>
> > > > > > > > > ><br>
> > > > > > > > > ><br>
> > > > > > > > > ><br>
> > > > > > > > > ><br>
> > > > > > > > > ><br>
> > > > > ><br>
> > > > > ><br>
> > > > > > <br>
> > > > > ><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/95010">View/Reply Online (#95010)</a> |    |  <a target="_blank" href="https://groups.io/mt/93872791/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>