<?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>i.MX Processors中的主题 Re: HAB signature failure on i.MX6</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/HAB-signature-failure-on-i-MX6/m-p/276310#M30845</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following may be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/message/332405#332405"&gt;https://community.freescale.com/message/332405#332405&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 02 Aug 2013 09:43:36 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2013-08-02T09:43:36Z</dc:date>
    <item>
      <title>HAB signature failure on i.MX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HAB-signature-failure-on-i-MX6/m-p/276309#M30844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm getting HAB signature failures, and I haven't found the cause yet. I'd appreciate any help in this matter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've added the hab_status command to u-boot, following riselab's neat documentation of HAB on i.MX6 with u-boot. The first HAB event I see when I run hab_status command is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HAB Configuration: 0xf0 HAB State: 0x66&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x1c 0x41 0x33 0x18 0xc0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xca 0x00 0x14 0x00 0x02 0xc5 0x1b 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x0d 0x34 0x27 0x80 0x04 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x03 0x2c 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the HAB API, this means a HAB Failure due to invalid signature with context of CSF (or DCD), where the start address is 0x27800400 and block length is 0x32C00. I'm using TEXT_BASE = 0x27800000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The padded u-boot size I'm using is 0x33000 bytes, adding to this 8KB of CSF data makes u-boot-signed-pad.bin size 0x35000 bytes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The IVT (and boot_data struct) in the u-boot image, at offset 0x400 is:&lt;/P&gt;&lt;P&gt;00000400&amp;nbsp; d1 00 20 40 20 08 80 27&amp;nbsp; 00 00 00 00 2c 04 80 27&amp;nbsp; |.. @ ..'....,..'|&lt;/P&gt;&lt;P&gt;00000410&amp;nbsp; 20 04 80 27 00 04 80 27&amp;nbsp; 00 30 83 27 00 00 00 00&amp;nbsp; | ..'...'.0.'....|&lt;/P&gt;&lt;P&gt;00000420&amp;nbsp; 00 00 80 27 00 50 03 00&amp;nbsp; 00 00 00 00 d2 03 f0 40&amp;nbsp; |...'.P.........@|&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see the u-boot's data on address 0x27800820, and it's the same as the data in u-boot's 0x820 offset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, there's no trace of the IVT on address 0x27800400:&lt;/P&gt;&lt;P&gt;U-Boot &amp;gt; md 0x27800400 0xc &lt;/P&gt;&lt;P&gt;27800400: 00000000 00000000 00000000 00000000&amp;nbsp;&amp;nbsp;&amp;nbsp; ................&lt;/P&gt;&lt;P&gt;27800410: 00000000 00000000 00000000 00000000&amp;nbsp;&amp;nbsp;&amp;nbsp; ................&lt;/P&gt;&lt;P&gt;27800420: 00000000 00000000 00000000 00000000&amp;nbsp;&amp;nbsp;&amp;nbsp; ................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A couple of questions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. What is the value that the HAB event data of the 5th word (0x00 0x00 0x0d 0x34) means? It says in the HAB API example that this is a "signature start address (relative offset from CSF address in IVT)". This puts is on address of 0x33d34. is that the signature of the CSF file? What's its size? 256 bits? Is that suppose to match the SRK[255:0] OTP fuse values?&lt;/P&gt;&lt;P&gt;2. How do I see the link between the SRK hash I burned and the CSF signature?&lt;/P&gt;&lt;P&gt;3. Why doesn't 0x27800400 contain the IVT, as exists on offset 0x400 in the u-boot.bin file?&lt;/P&gt;&lt;P&gt;4. How do I get HAB to work correctly? what am I missing here? :smileyhappy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Mickey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More details:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HAB Configuration: 0xf0 HAB State: 0x66&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 1 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x1c 0x41 0x33 0x18 0xc0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xca 0x00 0x14 0x00 0x02 0xc5 0x1b 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x0d 0x34 0x27 0x80 0x04 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x03 0x2c 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 2 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x04 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 3 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x04 0x2c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x03 0xf0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 4 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x04 0x20&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 5 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x08 0x20&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CSF file used:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Header]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version = 4.0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hash Algorithm = sha256&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine = ANY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine Configuration = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Certificate Format = X509&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Signature Format = CMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Install SRK]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File = "../crts/SRK_1_2_3_4_table.bin"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source index = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Install CSFK]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File = "../crts/CSF1_1_sha256_2048_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;[Install Key]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification index = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target index = 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File = "../crts/IMG1_1_sha256_2048_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Authenticate Data]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verification index = 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine = ANY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blocks = 0x27800400 0x400 0x32C00 "/my/path/to/u-boot/u-boot-pad.bin"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jun 2013 14:18:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HAB-signature-failure-on-i-MX6/m-p/276309#M30844</guid>
      <dc:creator>MickeyI</dc:creator>
      <dc:date>2013-06-05T14:18:52Z</dc:date>
    </item>
    <item>
      <title>Re: HAB signature failure on i.MX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HAB-signature-failure-on-i-MX6/m-p/276310#M30845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following may be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/message/332405#332405"&gt;https://community.freescale.com/message/332405#332405&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Aug 2013 09:43:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HAB-signature-failure-on-i-MX6/m-p/276310#M30845</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2013-08-02T09:43:36Z</dc:date>
    </item>
  </channel>
</rss>

