<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic I think you caught another in Intel Confidential Computing</title>
    <link>https://community.intel.com/t5/Intel-Confidential-Computing/ENCLS-ECREATE-Programming-Reference-Error/m-p/1118970#M1489</link>
    <description>&lt;P&gt;I think you caught another error. I think it should look like:&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;FONT face="Courier New"&gt;IF ( ~(CPUID.(EAX=12H, ECX=0):EBX[31:0]) &amp;amp; DS:TMP_SECS.MISSELECT[31:0] )&lt;/FONT&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 06 May 2016 14:26:50 GMT</pubDate>
    <dc:creator>Francisco_C_Intel</dc:creator>
    <dc:date>2016-05-06T14:26:50Z</dc:date>
    <item>
      <title>ENCLS[ECREATE] Programming Reference Error?</title>
      <link>https://community.intel.com/t5/Intel-Confidential-Computing/ENCLS-ECREATE-Programming-Reference-Error/m-p/1118969#M1488</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;

&lt;P&gt;I'm currently writing a linux kernel extension for ENCLS SGX support. Part of that is trying to find out where I'm #GP(0)-ing during ECREATE.&lt;/P&gt;

&lt;P&gt;Looking at the pseudocode for the ECREATE leaf in Section 5.2 "Intel SGX Instruction Reference" of the&amp;nbsp;Intel® Software Guard Extensions Programming Reference (Ref. # 329298-002) I think I've found a logic error in the pseudocode.&lt;/P&gt;

&lt;P&gt;One of the PF(0) resulting branches pseudocode (directly from the reference) is below. Screenshot is available at&amp;nbsp;http://i.imgur.com/DmzP4WL.png if there are formatting issues.&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;(* Make sure that the SECS does not have any unsupported MISCSELECT options*)
IF ( !(CPUID.(EAX=12H, ECX=0):EBX[31:0] &amp;amp; DS:TMP_SECS.MISSELECT[31:0]) )
    THEN
        EPCM(DS:TMP_SECS).EntryLock.Release();
        #GP(0);
FI;&lt;/PRE&gt;

&lt;P&gt;Firstly, I'm lead to believe that 'DS:TMP_SECS.MISSELECT' is a typo, and should be 'DS:TMP_SECS.MI&lt;STRONG&gt;SCSE&lt;/STRONG&gt;LECT' as I can't find any reference to MISSELECT in the document, but that's not the primary concern.&lt;/P&gt;

&lt;P&gt;The concern is that if&amp;nbsp;CPUID.(EAX=12H, ECX=0):EBX[31:0] = 0 (which it is on my system), indicating that "the bit vector of supported extended features that can be written to the MISC region of the SSA" are none, that the pseudocode above will always page fault, as 0x0 &amp;amp; {anything} == 0x0, and !0x0 == true.&lt;/P&gt;

&lt;P&gt;Is this the actual implementation? I'm not sure whether I'm misunderstanding the pseudocode or whether it's not correctly representing the implementation. Any assistance would be greatly appreciated.&lt;/P&gt;

&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2016 07:47:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Confidential-Computing/ENCLS-ECREATE-Programming-Reference-Error/m-p/1118969#M1488</guid>
      <dc:creator>Mitch_P_</dc:creator>
      <dc:date>2016-05-06T07:47:33Z</dc:date>
    </item>
    <item>
      <title>I think you caught another</title>
      <link>https://community.intel.com/t5/Intel-Confidential-Computing/ENCLS-ECREATE-Programming-Reference-Error/m-p/1118970#M1489</link>
      <description>&lt;P&gt;I think you caught another error. I think it should look like:&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;FONT face="Courier New"&gt;IF ( ~(CPUID.(EAX=12H, ECX=0):EBX[31:0]) &amp;amp; DS:TMP_SECS.MISSELECT[31:0] )&lt;/FONT&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2016 14:26:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Confidential-Computing/ENCLS-ECREATE-Programming-Reference-Error/m-p/1118970#M1489</guid>
      <dc:creator>Francisco_C_Intel</dc:creator>
      <dc:date>2016-05-06T14:26:50Z</dc:date>
    </item>
  </channel>
</rss>

