<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<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 name=Generator content="Microsoft Word 15 (filtered medium)"><!--[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]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
        {mso-style-name:x_msonormal;
        margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.xxmsonormal, li.xxmsonormal, div.xxmsonormal
        {mso-style-name:x_x_msonormal;
        margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.xxmsolistparagraph, li.xxmsolistparagraph, div.xxmsolistparagraph
        {mso-style-name:x_x_msolistparagraph;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.xxpl-plain
        {mso-style-name:x_x_pl-plain;}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:DengXian;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:288315548;
        mso-list-template-ids:1222265948;}
@list l1
        {mso-list-id:1074933252;
        mso-list-template-ids:939565850;}
@list l1:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[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=ZH-CN link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Bret:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>  I suggest to define new macro that follows EDKII style. This MACRO is only used in CommandLib. Its impact should be small. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:DengXian'>Liming<o:p></o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-family:DengXian'>发件人<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:DengXian'> devel@edk2.groups.io <devel@edk2.groups.io> </span><b><span style='font-family:DengXian'>代表 </span></b><span lang=EN-US style='font-family:DengXian'>Bret Barkelew via groups.io<br></span><b><span style='font-family:DengXian'>发送时间<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:DengXian'> 2021</span><span style='font-family:DengXian'>年<span lang=EN-US>8</span>月<span lang=EN-US>13</span>日<span lang=EN-US> 8:24<br></span><b>收件人<span lang=EN-US>:</span></b><span lang=EN-US> Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io; bret@corthon.com; Kinney, Michael D <michael.d.kinney@intel.com><br></span><b>抄送<span lang=EN-US>:</span></b><span lang=EN-US> Wang, Jian J <jian.j.wang@intel.com>; Zhang, Qi1 <qi1.zhang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com><br></span><b>主题<span lang=EN-US>:</span></b><span lang=EN-US> Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib<o:p></o:p></span></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>+ <a id=OWAAM794CFC851FF9466C8FBF246F1E7C4FF9 href="mailto:michael.d.kinney@intel.com"><span style='font-family:"Calibri",sans-serif;text-decoration:none'>@Kinney, Michael D</span></a><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Mike, any thoughts on when “sticking with the file convention” breaks ECC? Should I just ignore the rest of the file and pass ECC at all costs?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>- Bret <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From: </span></b><span lang=EN-US><a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a><br><b>Sent: </b>Thursday, August 12, 2021 5:06 PM<br><b>To: </b><a href="mailto:Bret.Barkelew@microsoft.com">Bret Barkelew</a>; <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:bret@corthon.com">bret@corthon.com</a><br><b>Cc: </b><a href="mailto:jian.j.wang@intel.com">Wang, Jian J</a>; <a href="mailto:qi1.zhang@intel.com">Zhang, Qi1</a>; <a href="mailto:rahul1.kumar@intel.com">Kumar, Rahul1</a><br><b>Subject: </b>RE: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I don’t know the answer about ECC or PatchChecker.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I  just know we need pass CI to merge the patch.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thank you<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Yao Jiewen<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> Bret Barkelew <<a href="mailto:Bret.Barkelew@microsoft.com">Bret.Barkelew@microsoft.com</a>> <br><b>Sent:</b> Friday, August 13, 2021 1:52 AM<br><b>To:</b> <a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:bret@corthon.com">bret@corthon.com</a><br><b>Cc:</b> Yao, Jiewen <<a href="mailto:jiewen.yao@intel.com">jiewen.yao@intel.com</a>>; Wang, Jian J <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>>; Zhang, Qi1 <<a href="mailto:qi1.zhang@intel.com">qi1.zhang@intel.com</a>>; Kumar, Rahul1 <<a href="mailto:rahul1.kumar@intel.com">rahul1.kumar@intel.com</a>><br><b>Subject:</b> RE: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib<o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thoughts?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>- Bret <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal align=center style='text-align:center'><span lang=EN-US><img border=0 width=555 height=2 style='width:5.7833in;height:.025in' id="Horizontal_x0020_Line_x0020_1" src="cid:image001.png@01D79026.D90F8930"></span><span lang=EN-US><o:p></o:p></span></p><div id=divRplyFwdMsg><p class=MsoNormal><b><span lang=EN-US style='color:black'>From:</span></b><span lang=EN-US style='color:black'> <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 Bret Barkelew via groups.io <<a href="mailto:bret.barkelew=microsoft.com@groups.io">bret.barkelew=microsoft.com@groups.io</a>><br><b>Sent:</b> Wednesday, August 11, 2021 12:37:52 PM<br><b>To:</b> <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:bret@corthon.com">bret@corthon.com</a> <<a href="mailto:bret@corthon.com">bret@corthon.com</a>><br><b>Cc:</b> Yao, Jiewen <<a href="mailto:jiewen.yao@intel.com">jiewen.yao@intel.com</a>>; Jian J Wang <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>>; Qi Zhang <<a href="mailto:qi1.zhang@intel.com">qi1.zhang@intel.com</a>>; Rahul Kumar <<a href="mailto:rahul1.kumar@intel.com">rahul1.kumar@intel.com</a>><br><b>Subject:</b> Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</span><span lang=EN-US> <o:p></o:p></span></p><div><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p></div></div><div><div><p class=xmsonormal><span lang=EN-US>Thoughts?<o:p></o:p></span></p><p class=xmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xmsonormal><span lang=EN-US>- Bret <o:p></o:p></span></p><p class=xmsonormal><span lang=EN-US> <o:p></o:p></span></p></div><p class=MsoNormal align=center style='text-align:center'><span lang=EN-US><img border=0 width=555 height=2 style='width:5.7833in;height:.025in' id="Horizontal_x0020_Line_x0020_2" src="cid:image001.png@01D79026.D90F8930"></span><span lang=EN-US><o:p></o:p></span></p><div id="x_divRplyFwdMsg"><p class=MsoNormal><b><span lang=EN-US style='color:black'>From:</span></b><span lang=EN-US style='color:black'> <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 Bret Barkelew via groups.io <<a href="mailto:bret.barkelew=microsoft.com@groups.io">bret.barkelew=microsoft.com@groups.io</a>><br><b>Sent:</b> Wednesday, August 4, 2021 9:32:32 AM<br><b>To:</b> <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:bret@corthon.com">bret@corthon.com</a> <<a href="mailto:bret@corthon.com">bret@corthon.com</a>><br><b>Cc:</b> Yao, Jiewen <<a href="mailto:jiewen.yao@intel.com">jiewen.yao@intel.com</a>>; Jian J Wang <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>>; Qi Zhang <<a href="mailto:qi1.zhang@intel.com">qi1.zhang@intel.com</a>>; Rahul Kumar <<a href="mailto:rahul1.kumar@intel.com">rahul1.kumar@intel.com</a>><br><b>Subject:</b> Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</span><span lang=EN-US> <o:p></o:p></span></p><div><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p></div></div><div><div><p class=xxmsonormal><span lang=EN-US>Poking this one.<o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><ol style='margin-top:0cm' start=1 type=1><li class=xxmsolistparagraph style='margin-left:0cm;mso-list:l1 level1 lfo3'><span lang=EN-US>It’s a easy review with small, obvious code change.<o:p></o:p></span></li><li class=xxmsolistparagraph style='margin-left:0cm;mso-list:l1 level1 lfo3'><span lang=EN-US>I need some answers on “when is it okay to violate ECC/PatchCheck, if the new code matches the style of the existing code. Should I endeavor to pass the PatchCheck and ECCCheck with this patch only, and leave it in conflict with the rest of the file?<o:p></o:p></span></li></ol><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US>Thanks!<o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US>- Bret <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=xxmsonormal><b><span lang=EN-US>From: </span></b><span lang=EN-US><a href="mailto:bret.barkelew=microsoft.com@groups.io">Bret Barkelew via groups.io</a><br><b>Sent: </b>Friday, July 30, 2021 11:08 AM<br><b>To: </b><a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:bret@corthon.com">bret@corthon.com</a><br><b>Cc: </b><a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a>; <a href="mailto:jian.j.wang@intel.com">Jian J Wang</a>; <a href="mailto:qi1.zhang@intel.com">Qi Zhang</a>; <a href="mailto:rahul1.kumar@intel.com">Rahul Kumar</a><br><b>Subject: </b>Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib<o:p></o:p></span></p></div><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US>Note, even though this keeps with the style of the rest of the file, it breaks ECC:<o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F1848&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Ce90f066a5a8c4feae73108d95dee3ec3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644100117879377%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7uX%2FX1sJDbWsxeqYtqfQIFXBbDRVnii7kcJ1nri65T4%3D&reserved=0">SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib by corthon · Pull Request #1848 · tianocore/edk2 (github.com)</a><o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>PROGRESS - --Running SecurityPkg: EccCheck Test NO-TARGET -- </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - EFI coding style error </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - *Error code: 8001 </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - *Only capital letters are allowed to be used for #define declarations </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - *file: //home/vsts/work/1/s/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - *Line number: 27 </span></span><span lang=EN-US><o:p></o:p></span></p></div><div><p class=xxmsonormal style='background:#201F1E'><span class=xxpl-plain><span lang=EN-US style='font-size:9.0pt;font-family:Consolas;color:#E1DFDD'>ERROR - *The #define name [RC_NV_UndefineSpaceSpecial_nvIndex] does no</span></span><span lang=EN-US><o:p></o:p></span></p></div></div><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US>Thoughts?<o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US>- Bret <o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=xxmsonormal><b><span lang=EN-US>From: </span></b><span lang=EN-US><a href="mailto:bret=corthon.com@groups.io">Bret Barkelew via groups.io</a><br><b>Sent: </b>Friday, July 30, 2021 10:55 AM<br><b>To: </b><a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a><br><b>Cc: </b><a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a>; <a href="mailto:jian.j.wang@intel.com">Jian J Wang</a>; <a href="mailto:qi1.zhang@intel.com">Qi Zhang</a>; <a href="mailto:rahul1.kumar@intel.com">Rahul Kumar</a><br><b>Subject: </b>[EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib<o:p></o:p></span></p></div><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><p class=xxmsonormal style='margin-bottom:12.0pt'><span lang=EN-US>Used to provision and maintain certain HW-defined NV spaces.<br><br>REF: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2994&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Ce90f066a5a8c4feae73108d95dee3ec3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644100117889332%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=padkn1C%2BUQzKQSPo5gyurkMYW5ihwyf2Wm2mp2lrRKg%3D&reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2994&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397602953%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=s96M3RvxMOY831Vfr1nt%2Fz1h3cyb6jU9eFzvjKO7Dtc%3D&amp;reserved=0</a><br><br>Signed-off-by: Bret Barkelew <<a href="mailto:bret.barkelew@microsoft.com">bret.barkelew@microsoft.com</a>><br>Cc: Jiewen Yao <<a href="mailto:jiewen.yao@intel.com">jiewen.yao@intel.com</a>><br>Cc: Jian J Wang <<a href="mailto:jian.j.wang@intel.com">jian.j.wang@intel.com</a>><br>Cc: Qi Zhang <<a href="mailto:qi1.zhang@intel.com">qi1.zhang@intel.com</a>><br>Cc: Rahul Kumar <<a href="mailto:rahul1.kumar@intel.com">rahul1.kumar@intel.com</a>><br>---<br> SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c | 122 ++++++++++++++++++++<br> SecurityPkg/Include/Library/Tpm2CommandLib.h       |  22 ++++<br> 2 files changed, 144 insertions(+)<br><br>diff --git a/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c b/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>index 87572de20164..7931fade9190 100644<br>--- a/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>+++ b/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>@@ -24,6 +24,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent<br> #define RC_NV_UndefineSpace_authHandle      (TPM_RC_H + TPM_RC_1)<br><br> #define RC_NV_UndefineSpace_nvIndex         (TPM_RC_H + TPM_RC_2)<br><br> <br><br>+#define RC_NV_UndefineSpaceSpecial_nvIndex  (TPM_RC_H + TPM_RC_1)<br><br>+<br><br> #define RC_NV_Read_authHandle               (TPM_RC_H + TPM_RC_1)<br><br> #define RC_NV_Read_nvIndex                  (TPM_RC_H + TPM_RC_2)<br><br> #define RC_NV_Read_size                     (TPM_RC_P + TPM_RC_1)<br><br>@@ -74,6 +76,20 @@ typedef struct {<br>   TPMS_AUTH_RESPONSE         AuthSession;<br><br> } TPM2_NV_UNDEFINESPACE_RESPONSE;<br><br> <br><br>+typedef struct {<br><br>+  TPM2_COMMAND_HEADER       Header;<br><br>+  TPMI_RH_NV_INDEX          NvIndex;<br><br>+  TPMI_RH_PLATFORM          Platform;<br><br>+  UINT32                    AuthSessionSize;<br><br>+  TPMS_AUTH_COMMAND         AuthSession;<br><br>+} TPM2_NV_UNDEFINESPACESPECIAL_COMMAND;<br><br>+<br><br>+typedef struct {<br><br>+  TPM2_RESPONSE_HEADER       Header;<br><br>+  UINT32                     AuthSessionSize;<br><br>+  TPMS_AUTH_RESPONSE         AuthSession;<br><br>+} TPM2_NV_UNDEFINESPACESPECIAL_RESPONSE;<br><br>+<br><br> typedef struct {<br><br>   TPM2_COMMAND_HEADER       Header;<br><br>   TPMI_RH_NV_AUTH           AuthHandle;<br><br>@@ -506,6 +522,112 @@ Done:<br>   return Status;<br><br> }<br><br> <br><br>+/**<br><br>+  This command removes an index from the TPM.<br><br>+<br><br>+  @param[in]  NvIndex             The NV Index.<br><br>+  @param[in]  IndexAuthSession    Auth session context for the Index auth/policy<br><br>+  @param[in]  PlatAuthSession     Auth session context for the Platform auth/policy<br><br>+<br><br>+  @retval EFI_SUCCESS             Operation completed successfully.<br><br>+  @retval EFI_NOT_FOUND           The command was returned successfully, but NvIndex is not found.<br><br>+  @retval EFI_UNSUPPORTED         Selected NvIndex does not support deletion through this call.<br><br>+  @retval EFI_SECURITY_VIOLATION  Deletion is not authorized by current policy session.<br><br>+  @retval EFI_INVALID_PARAMETER   The command was unsuccessful.<br><br>+  @retval EFI_DEVICE_ERROR        The command was unsuccessful.<br><br>+**/<br><br>+EFI_STATUS<br><br>+EFIAPI<br><br>+Tpm2NvUndefineSpaceSpecial (<br><br>+  IN      TPMI_RH_NV_INDEX          NvIndex,<br><br>+  IN      TPMS_AUTH_COMMAND         *IndexAuthSession OPTIONAL,<br><br>+  IN      TPMS_AUTH_COMMAND         *PlatAuthSession OPTIONAL<br><br>+  )<br><br>+{<br><br>+  EFI_STATUS                              Status;<br><br>+  TPM2_NV_UNDEFINESPACESPECIAL_COMMAND    SendBuffer;<br><br>+  TPM2_NV_UNDEFINESPACESPECIAL_RESPONSE   RecvBuffer;<br><br>+  UINT32                                  SendBufferSize;<br><br>+  UINT32                                  RecvBufferSize;<br><br>+  UINT8                                   *Buffer;<br><br>+  UINT32                                  IndexAuthSize, PlatAuthSize;<br><br>+  TPM_RC                                  ResponseCode;<br><br>+<br><br>+  //<br><br>+  // Construct command<br><br>+  //<br><br>+  SendBuffer.Header.tag = SwapBytes16(TPM_ST_SESSIONS);<br><br>+  SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_NV_UndefineSpaceSpecial);<br><br>+<br><br>+  SendBuffer.NvIndex = SwapBytes32 (NvIndex);<br><br>+  SendBuffer.Platform = SwapBytes32 (TPM_RH_PLATFORM);<br><br>+<br><br>+  //<br><br>+  // Marshall the Auth Sessions for the two handles.<br><br>+  Buffer = (UINT8 *)&SendBuffer.AuthSession;<br><br>+  // IndexAuthSession<br><br>+  IndexAuthSize = CopyAuthSessionCommand (IndexAuthSession, Buffer);<br><br>+  Buffer += IndexAuthSize;<br><br>+  // PlatAuthSession<br><br>+  PlatAuthSize = CopyAuthSessionCommand (PlatAuthSession, Buffer);<br><br>+  Buffer += PlatAuthSize;<br><br>+  // AuthSessionSize<br><br>+  SendBuffer.AuthSessionSize = SwapBytes32(IndexAuthSize + PlatAuthSize);<br><br>+<br><br>+  // Update total command size.<br><br>+  SendBufferSize = (UINT32)(Buffer - (UINT8 *)&SendBuffer);<br><br>+  SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);<br><br>+<br><br>+  //<br><br>+  // send Tpm command<br><br>+  //<br><br>+  RecvBufferSize = sizeof (RecvBuffer);<br><br>+  Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);<br><br>+  if (EFI_ERROR (Status)) {<br><br>+    goto Done;<br><br>+  }<br><br>+<br><br>+  if (RecvBufferSize < sizeof (TPM2_RESPONSE_HEADER)) {<br><br>+    DEBUG ((EFI_D_ERROR, "Tpm2NvUndefineSpaceSpecial - RecvBufferSize Error - %x\n", RecvBufferSize));<br><br>+    Status = EFI_DEVICE_ERROR;<br><br>+    goto Done;<br><br>+  }<br><br>+<br><br>+  ResponseCode = SwapBytes32(RecvBuffer.Header.responseCode);<br><br>+  if (ResponseCode != TPM_RC_SUCCESS) {<br><br>+    DEBUG ((EFI_D_ERROR, "Tpm2NvUndefineSpaceSpecial - responseCode - %x\n", SwapBytes32(RecvBuffer.Header.responseCode)));<br><br>+  }<br><br>+  switch (ResponseCode) {<br><br>+  case TPM_RC_SUCCESS:<br><br>+    // return data<br><br>+    break;<br><br>+  case TPM_RC_ATTRIBUTES:<br><br>+  case TPM_RC_ATTRIBUTES + RC_NV_UndefineSpaceSpecial_nvIndex:<br><br>+    Status = EFI_UNSUPPORTED;<br><br>+    break;<br><br>+  case TPM_RC_NV_AUTHORIZATION:<br><br>+    Status = EFI_SECURITY_VIOLATION;<br><br>+    break;<br><br>+  case TPM_RC_HANDLE + RC_NV_UndefineSpaceSpecial_nvIndex: // TPM_RC_NV_DEFINED:<br><br>+    Status = EFI_NOT_FOUND;<br><br>+    break;<br><br>+  case TPM_RC_VALUE + RC_NV_UndefineSpace_nvIndex:<br><br>+    Status = EFI_INVALID_PARAMETER;<br><br>+    break;<br><br>+  default:<br><br>+    Status = EFI_DEVICE_ERROR;<br><br>+    break;<br><br>+  }<br><br>+<br><br>+Done:<br><br>+  //<br><br>+  // Clear AuthSession Content<br><br>+  //<br><br>+  ZeroMem (&SendBuffer, sizeof(SendBuffer));<br><br>+  ZeroMem (&RecvBuffer, sizeof(RecvBuffer));<br><br>+  return Status;<br><br>+} // Tpm2NvUndefineSpaceSpecial()<br><br>+<br><br> /**<br><br>   This command reads a value from an area in NV memory previously defined by TPM2_NV_DefineSpace().<br><br> <br><br>diff --git a/SecurityPkg/Include/Library/Tpm2CommandLib.h b/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>index ee8eb622951c..8d7b4998d98d 100644<br>--- a/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>+++ b/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>@@ -364,6 +364,28 @@ Tpm2NvUndefineSpace (<br>   IN      TPMS_AUTH_COMMAND         *AuthSession OPTIONAL<br><br>   );<br><br> <br><br>+/**<br><br>+  This command removes an index from the TPM.<br><br>+<br><br>+  @param[in]  NvIndex             The NV Index.<br><br>+  @param[in]  IndexAuthSession    Auth session context for the Index auth/policy<br><br>+  @param[in]  PlatAuthSession     Auth session context for the Platform auth/policy<br><br>+<br><br>+  @retval EFI_SUCCESS             Operation completed successfully.<br><br>+  @retval EFI_NOT_FOUND           The command was returned successfully, but NvIndex is not found.<br><br>+  @retval EFI_UNSUPPORTED         Selected NvIndex does not support deletion through this call.<br><br>+  @retval EFI_SECURITY_VIOLATION  Deletion is not authorized by current policy session.<br><br>+  @retval EFI_INVALID_PARAMETER   The command was unsuccessful.<br><br>+  @retval EFI_DEVICE_ERROR        The command was unsuccessful.<br><br>+**/<br><br>+EFI_STATUS<br><br>+EFIAPI<br><br>+Tpm2NvUndefineSpaceSpecial (<br><br>+  IN      TPMI_RH_NV_INDEX          NvIndex,<br><br>+  IN      TPMS_AUTH_COMMAND         *IndexAuthSession OPTIONAL,<br><br>+  IN      TPMS_AUTH_COMMAND         *PlatAuthSession OPTIONAL<br><br>+  );<br><br>+<br><br> /**<br><br>   This command reads a value from an area in NV memory previously defined by TPM2_NV_DefineSpace().<br><br> <br><br>-- <br>2.31.1.windows.1<br><br><br><br>-=-=-=-=-=-=<br>Groups.io Links: You receive all messages sent to this group.<br>View/Reply Online (#78450): <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F78450&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Ce90f066a5a8c4feae73108d95dee3ec3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644100117889332%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5xF1G1wVYzxVg8d6jArEFdAZnDdNqdWIAOvw8FJV07M%3D&reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F78450&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=CWxLwgp73z2XQEa%2FN77gsCwRF73xha0RZCKwcFTlrRE%3D&amp;reserved=0</a><br>Mute This Topic: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.io%2Fmt%2F84555713%2F1822150&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Ce90f066a5a8c4feae73108d95dee3ec3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644100117899289%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2FYy4OplAG2hC8gFxfV3zySEX4SPryroOsIJ9BpQ8v0%3D&reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.io%2Fmt%2F84555713%2F1822150&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=IWQ6E4yP0ECt3oYLYQa%2BnddGfcQEDMgfASlcxRuda%2BQ%3D&amp;reserved=0</a><br>Group Owner: <a href="mailto:devel+owner@edk2.groups.io">devel+owner@edk2.groups.io</a><br>Unsubscribe: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Funsub&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Ce90f066a5a8c4feae73108d95dee3ec3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644100117909246%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uaOZ7%2FL3FmNlZ%2Fj0jKkSVLWQElFkWKNORPvvZW%2Bu8AM%3D&reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Funsub&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=qor4Y5FZEH8ch0AEmWDbe97FIQk4V1qx7IURcTHzjAU%3D&amp;reserved=0</a> [brbarkel@microsoft.com]<br>-=-=-=-=-=-=<o:p></o:p></span></p><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p><div><p class=xxmsonormal><span lang=EN-US> <o:p></o:p></span></p></div></div></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></div></div><div><p class=MsoNormal></o:p></span></p></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/79224">View/Reply Online (#79224)</a> |    |  <a target="_blank" href="https://groups.io/mt/84854740/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>