<?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: Problems with HAB and SDP in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464510#M73086</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have this same issue on an i.MX6 SoloX. Any update on this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Jan 2017 13:04:47 GMT</pubDate>
    <dc:creator>jubr</dc:creator>
    <dc:date>2017-01-03T13:04:47Z</dc:date>
    <item>
      <title>Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464507#M73083</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 trying to use an i.MX 6 with Serial Download Protocol with our own manufacturing tool running on Linux (similarly to how the Freescale mfgtool v2.0.8 works) to download a manufacturing u-boot.bin and uImage to bootstrap a newly manufactured board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Without attempting to use HAB everything is fine and works as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When signing our shipping u-boot.bin which is loaded by the boot ROM from eMMC then it all works as expected as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, when using our manufacturing u-boot.bin which is loaded via SDP, I always get an "Invalid IVT" failure from the HAB ROM (see below for actual events.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I try to do the same via the Freescale mfgtool I get the same errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've read the HAB4 API RM, AN4581.pdf, the HAB Code Signing Tool User Guide, and all the discussions I could find here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our linux tool speaks to the i.MX 6 and uses the SDP DCD_WRITE command to write the DCD to 0x910000 first, then it uses the SDP command WRITE_FILE to write u-boot.bin to 0x27800000 (with the DCD pointer in the IVT zeroed so the i.MX 6 doesn't attempt to rerun the DCD commands.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The&amp;nbsp; IVT and Boot Data are as follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IVT:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Header: 402000D1 (tag D1, len 32, version 40)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Entry: 278006E0, DCD: 2780042C, Boot Data: 27800420&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Self: 27800400, CSF: 27829000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boot Data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start: 27800000, Length: 177664, Plugin: 00000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The CSF is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[Header]&lt;/P&gt;&lt;P&gt;Version = 4.1&lt;/P&gt;&lt;P&gt;Hash Algorithm = sha256&lt;/P&gt;&lt;P&gt;Engine Configuration = 0&lt;/P&gt;&lt;P&gt;Certificate Format = X509&lt;/P&gt;&lt;P&gt;Signature Format = CMS&lt;/P&gt;&lt;P&gt;[Install SRK]&lt;/P&gt;&lt;P&gt;File = "../crts/SRK_1_2_3_4_table.bin"&lt;/P&gt;&lt;P&gt;Source index = 0&lt;/P&gt;&lt;P&gt;[Install CSFK]&lt;/P&gt;&lt;P&gt;File = "../crts/CSF1_1_sha256_4096_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;[Authenticate CSF]&lt;/P&gt;&lt;P&gt;[Unlock]&lt;/P&gt;&lt;P&gt;Engine = CAAM&lt;/P&gt;&lt;P&gt;Features = RNG&lt;/P&gt;&lt;P&gt;[Install Key]&lt;/P&gt;&lt;P&gt;Verification index = 0&lt;/P&gt;&lt;P&gt;Target index = 2&lt;/P&gt;&lt;P&gt;File = "../crts/IMG1_1_sha256_4096_65537_v3_usr_crt.pem"&lt;/P&gt;&lt;P&gt;# Sign padded u-boot starting at the IVT through to the end with&lt;/P&gt;&lt;P&gt;# length = 0x27000 (padded u-boot length) - 0x400 (IVT offset) = 0x26C00&lt;/P&gt;&lt;P&gt;# This covers the essential parts: IVT, boot data and DCD.&lt;/P&gt;&lt;P&gt;# Blocks have the following definition:&lt;/P&gt;&lt;P&gt;# Image block start address on i.MX, Offset from start of image file,&lt;/P&gt;&lt;P&gt;# Length of block in bytes, image data file&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;Verification index = 2&lt;/P&gt;&lt;P&gt;Blocks = 0x00910000 0x0000042C 0x000002B0 "u-boot-mfg.pad"&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;Verification index = 2&lt;/P&gt;&lt;P&gt;Blocks = 0x27800000 0x400 0x00029000 "u-boot-mfg.pad"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the HAB events are (our u-boot interprets the events:)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HAB Configuration: Open (0xf0) HAB State: Nonsecure (0x66)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x41 0x33 0x05 0x0a 0x00&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid IVT (05)&lt;/P&gt;&lt;P&gt; Context: authenticate_image() (0A), Engine: Any (00)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x41 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Address (22)&lt;/P&gt;&lt;P&gt; Context: authenticate_image() (0A), Engine: Any (00)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x41 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Address (22)&lt;/P&gt;&lt;P&gt; Context: authenticate_image() (0A), Engine: Any (00)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x08 0x41 0x33 0x22 0x0a 0x00&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Address (22)&lt;/P&gt;&lt;P&gt; Context: authenticate_image() (0A), Engine: Any (00)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x04 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x20&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Assertion (0C)&lt;/P&gt;&lt;P&gt; Context: assert() (A0), Engine: Any (00)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 6 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x27 0x80 0x06 0xe0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x04&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Assertion (0C)&lt;/P&gt;&lt;P&gt; Context: assert() (A0), Engine: Any (00)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------- HAB Event 7 -----------------&lt;/P&gt;&lt;P&gt;event data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x00 0x00 0x00 0x91 0x00 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 0x00 0x02 0xb0&lt;/P&gt;&lt;P&gt; Status: Failed (33), Reason: Invalid Assertion (0C)&lt;/P&gt;&lt;P&gt; Context: assert() (A0), Engine: Any (00)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How is the SDP Boot ROM code locating the IVT?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does it look at offset 0x400 from the address the WRITE_FILE command loads the u-boot.bin to?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Todd&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jan 2016 16:03:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464507#M73083</guid>
      <dc:creator>toddgoodman</dc:creator>
      <dc:date>2016-01-04T16:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464508#M73084</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Please check if U-boot for MFG was prepared correctly, as recommended in &lt;/P&gt;&lt;P&gt;recent AN4581 release (Rev. 1, 10/2015), Appendix E (Freescale manufacturing tool)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf" title="http://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jan 2016 05:36:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464508#M73084</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2016-01-05T05:36:32Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464509#M73085</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes it was prepared as described in Appendix E of AN4581.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jan 2016 12:44:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464509#M73085</guid>
      <dc:creator>toddgoodman</dc:creator>
      <dc:date>2016-01-05T12:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464510#M73086</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have this same issue on an i.MX6 SoloX. Any update on this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jan 2017 13:04:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464510#M73086</guid>
      <dc:creator>jubr</dc:creator>
      <dc:date>2017-01-03T13:04:47Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464511#M73087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Please look at the following&amp;nbsp;&lt;A href="https://community.nxp.com/thread/382754"&gt;https://community.nxp.com/thread/382754&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Yuri.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Jan 2017 08:16:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464511#M73087</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2017-01-27T08:16:44Z</dc:date>
    </item>
    <item>
      <title>Re: Problems with HAB and SDP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464512#M73088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please look at the following&amp;nbsp;&lt;A href="https://community.nxp.com/thread/382754"&gt;https://community.nxp.com/thread/382754&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~Yuri.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Jan 2017 08:19:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Problems-with-HAB-and-SDP/m-p/464512#M73088</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2017-01-27T08:19:42Z</dc:date>
    </item>
  </channel>
</rss>

