<?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 Re: i.MX6ULL HAB authenticate_image() events in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790547#M122509</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;1. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; You may create request to get HAB boot log analyzer. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;A class="link-titled" href="https://www.nxp.com/support/support:SUPPORTHOME?tid=sbmenu" title="https://www.nxp.com/support/support:SUPPORTHOME?tid=sbmenu"&gt;Support|NXP&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;2.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; Please try to run signed U-boot without closing the device and analyze&amp;nbsp; log of hab_status command,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;at least to clarify signing process and issues.&amp;nbsp; According to section 4.1 (HAB events) of &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN4581.pdf" title="https://www.nxp.com/docs/en/application-note/AN4581.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN4581.pdf&lt;/A&gt; :&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;U-Boot supplies the hab_status command to read these events and feed them to the console.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;3.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; Use section&amp;nbsp;3.3 (Fuse programming)&amp;nbsp; of the app note how to work with fuses under U-boot. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Have a great day,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Yuri&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Note: If this post answers your question, please click the Correct Answer &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;button. Thank you!&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Sep 2018 05:31:51 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2018-09-25T05:31:51Z</dc:date>
    <item>
      <title>i.MX6ULL HAB authenticate_image() events</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790546#M122508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have two concerns:&lt;/P&gt;&lt;P&gt;I'm targeting a custom i.MX6ULL-based board with a bare bones loader pulled in from SPI FLASH.&amp;nbsp; I have not blown the fuses to closed it, nor written the public keys.&amp;nbsp; Instead I write the shadow register to indicate secure mode,&amp;nbsp;and set the public keys (that should be used to verify the image signature) in the shadow registers.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) What I find odd starts by calling the HAB RVT authenticate_image().&amp;nbsp; It returns a valid address.&amp;nbsp; But, when I later call report_status(), it returns HAB_FAILURE.&amp;nbsp; Subsequent calls to&amp;nbsp;report_event(HAB_STS_&lt;STRONG&gt;ANY&lt;/STRONG&gt;, ...) never return HAB_SUCCESS.&amp;nbsp; This seems contrary to&amp;nbsp;&lt;SPAN&gt;HAB_FAILURE returned by report_status().&amp;nbsp; If I look at the contents of memory @ 0x00904070: I see&amp;nbsp;42F4&lt;STRONG&gt;02&lt;/STRONG&gt;DB 00C02233 04EC02CC (big endian).&amp;nbsp; I believe this indicates two events that are not returned by report_event()...although I'm not sure what they mean.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I realize I may be assuming that writing to the shadow registers should allow for proper authentication.&amp;nbsp; Is this accurate?&amp;nbsp; If not, would this alone explain what I'm seeing?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) I have been avoiding&amp;nbsp;blowing fuses thus far, because I haven't been able to clarify how to setup the OCOTP timing registers (there are 2 for the mx6ull).&amp;nbsp; It's easy enough to infer what should happen by reading the u-boot source for the first timing register only.&amp;nbsp; I have struggled to&amp;nbsp;figure out what to do with OCOTP_TIMING2.&amp;nbsp; The only mention I have found is in the RM.&amp;nbsp; It only says it &lt;EM&gt;specifies the time to add to read/write OTP for complement address enable cycle time&lt;/EM&gt;.&amp;nbsp; Can anyone clarify the timing requirements here?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Stephen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your reference:&lt;/P&gt;&lt;P&gt;[Header]&lt;BR /&gt;Version = 4.1&lt;BR /&gt;Security Configuration = Open&lt;BR /&gt;Hash Algorithm = sha256&lt;BR /&gt;Engine = SW #Engine = SW required for iMX6ull&lt;BR /&gt;Engine Configuration = 0&lt;BR /&gt;Certificate Format = X509&lt;BR /&gt;Signature Format = CMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Install SRK]&lt;BR /&gt;File = "./crts/SRK_1_2_3_4_table.bin"&lt;BR /&gt;Source index = 0 #index of the key location in the SRK table to be installed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Install CSFK]&lt;BR /&gt;File = "./crts/CSF1_1_sha256_2048_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Authenticate CSF]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Install Key]&lt;BR /&gt;Verification index = 0&lt;BR /&gt;Target index = 2&lt;BR /&gt;File = "./crts/IMG1_1_sha256_2048_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Authenticate Data]&lt;BR /&gt;Verification index = 2 #key slot used to authenticate the image data&lt;BR /&gt;Blocks = 0x00907400 0x400 0x3000 "./crts/testBin/image.bin"&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 00:01:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790546#M122508</guid>
      <dc:creator>stephenbialkows</dc:creator>
      <dc:date>2018-09-25T00:01:36Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6ULL HAB authenticate_image() events</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790547#M122509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;1. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; You may create request to get HAB boot log analyzer. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;A class="link-titled" href="https://www.nxp.com/support/support:SUPPORTHOME?tid=sbmenu" title="https://www.nxp.com/support/support:SUPPORTHOME?tid=sbmenu"&gt;Support|NXP&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;2.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; Please try to run signed U-boot without closing the device and analyze&amp;nbsp; log of hab_status command,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;at least to clarify signing process and issues.&amp;nbsp; According to section 4.1 (HAB events) of &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN4581.pdf" title="https://www.nxp.com/docs/en/application-note/AN4581.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN4581.pdf&lt;/A&gt; :&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;U-Boot supplies the hab_status command to read these events and feed them to the console.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;3.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; Use section&amp;nbsp;3.3 (Fuse programming)&amp;nbsp; of the app note how to work with fuses under U-boot. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Have a great day,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Yuri&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Note: If this post answers your question, please click the Correct Answer &lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;button. Thank you!&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 05:31:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790547#M122509</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2018-09-25T05:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6ULL HAB authenticate_image() events</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790548#M122510</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yuri,&lt;/P&gt;&lt;P&gt;I am using the hab portion of u-boot. I understand how to program fuses except for the second opt timing register. Can you please answer my questions?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stephen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, I got a response (per your first suggestion).&amp;nbsp; The response is:&lt;/P&gt;&lt;PRE style="color: #333333; background-color: #f5f5f5; border: 1px solid #cccccc; margin: 0px 0px 10px; padding: 9.5px;"&gt;Please apply to local NXP representative, so that they provide You information&amp;nbsp; from NXP internal resource, linked below.&amp;nbsp; &lt;A href="https://community.nxp.com/docs/DOC-275249" rel="nofollow noopener noreferrer" target="test_blank"&gt;https://community.nxp.com/docs/DOC-275249&lt;/A&gt;
&lt;A href="https://community.nxp.com/docs/DOC-96451" rel="nofollow noopener noreferrer" target="test_blank"&gt;https://community.nxp.com/docs/DOC-96451&lt;/A&gt;

&lt;A href="https://community.nxp.com/docs/DOC-332726" rel="nofollow noopener noreferrer" target="test_blank"&gt;https://community.nxp.com/docs/DOC-332726&lt;/A&gt;&lt;/PRE&gt;&lt;P&gt;Are you a "local NXP representative"?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 08:04:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6ULL-HAB-authenticate-image-events/m-p/790548#M122510</guid>
      <dc:creator>stephenbialkows</dc:creator>
      <dc:date>2018-09-25T08:04:40Z</dc:date>
    </item>
  </channel>
</rss>

